材質常量(Texture Constants)

2021-09-23 05:58:11 字數 4317 閱讀 6743

three.js 中文文件鏈結

其它的值定義了環境對映的型別。

請檢視示例:materials / envmaps 。

這些常量定義了紋理貼圖的 wraps 和 wrapt 屬性,定義了水平和垂直方向上紋理的包裹方式。

three.nearestfilter

three.linearfilter

這些常量用於紋理的magfilter屬性,它們定義了當被紋理化的畫素對映到小於或者等於1紋理元素(texel)的區域時,將要使用的紋理放大函式。

nearestfilter返回與指定紋理座標(在曼哈頓距離之內)最接近的紋理元素的值。

three.nearestfilter

three.nearestmipmapnearestfilter

three.nearestmipmaplinearfilter

three.linearfilter

three.linearmipmapnearestfilter

three.linearmipmaplinearfilter

這些常量用於紋理的minfilter屬性,它們定義了當被紋理化的畫素對映到大於1紋理元素(texel)的區域時,將要使用的紋理縮小函式。

除了nearestfilter 和 linearfilter, 下面的四個函式也可以用於縮小:

nearestmipmapnearestfilter選擇與被紋理化畫素的尺寸最匹配的mipmap,並以[page:constant nearestfilter](最靠近畫素中心的紋理元素)為標準來生成紋理值。

nearestmipmaplinearfilter選擇與被紋理化畫素的尺寸最接近的兩個mipmap,並以[page:constant nearestfilter]為標準來從每個mipmap中生成紋理值。最終的紋理值是這兩個值的加權平均值。

linearmipmapnearestfilter選擇與被紋理化畫素的尺寸最匹配的mipmap,並以[page:constant linearfilter](最靠近畫素中心的四個紋理元素的加權平均值)為標準來生成紋理值。

linearmipmaplinearfilter是預設值,它選擇與被紋理化畫素的尺寸最接近的兩個mipmap,並以[page:constant linearfilter]為標準來從每個mipmap中生成紋理值。最終的紋理值是這兩個值的加權平均值。

請檢視示例:materials / texture / filters。

three.unsignedbytetype

three.bytetype

three.shorttype

three.unsignedshorttype

three.inttype

three.unsignedinttype

three.floattype

three.halffloattype

three.unsignedshort4444type

three.unsignedshort5551type

three.unsignedshort565type

three.unsignedint248type

這些常量用於紋理的type屬性,這些屬性必須與正確的格式相對應。詳情請檢視下方。

unsignedbytetype 是預設值。

three.alphaformat

three.rgbformat

three.rgbaformat

three.luminanceformat

three.luminancealphaformat

three.rgbeformat

three.depthformat

three.depthstencilformat

這些常量用於紋理的format屬性,它們定義了shader(著色器)將如何讀取的2d紋理或者texels(紋理元素)的元素。.

alphaformat 丟棄紅、綠、藍分量,僅讀取alpha分量。

rgbformat 丟棄alpha分量,僅讀取紅、綠、藍分量。

rgbaformat 是預設值,它將讀取紅、綠、藍和alpha分量。

luminanceformat 將每個元素作為單獨的亮度分量來讀取。 將其轉換為範圍限制在[0,1]區間的浮點數,然後通過將亮度值放入紅、綠、藍通道,並將1.0賦給alpha通道,來組裝成乙個rgba元素。

luminancealphaformat 將每個元素同時作為亮度分量和alpha分量來讀取。 和上面luminanceformat的處理過程是一致的,除了alpha分量具有除了1.0以外的值。

rgbeformat 與 rgbaformat 是相同的。

depthformat將每個元素作為單獨的深度值來讀取,將其轉換為範圍限制在[0,1]區間的浮點數。 它是depthtexture的預設值。

depthstencilformat將每個元素同時作為一對深度值和模板值來讀取。 其中的深度分量解釋為depthformat。 模板分量基於深度+模板的內部格式來進行解釋。

請注意,紋理必須具有正確的type設定,正如上一節所描述的那樣。 請參閱[link: webglrenderingcontext.teximage2d]來獲得有關詳細資訊。

three.rgb_s3tc_dxt1_format

three.rgba_s3tc_dxt1_format

three.rgba_s3tc_dxt3_format

three.rgba_s3tc_dxt5_format

要使用compressedtexture中的[page:texture.format format]屬性,需要獲得[link: webgl_compressed_texture_s3tc]擴充套件的支援。

通過這個擴充套件,這裡的四種s3tc格式將可以使用:

rgb_s3tc_dxt1_format:rgb影象格式的dxt1壓縮影象。 rgba_s3tc_dxt1_format:rgb影象格式的dxt1壓縮影象,alpha僅具有是/否透明兩個值。

rgba_s3tc_dxt3_format:rgba影象格式的dxt3壓縮影象,和32位rgba紋理貼圖相比,它提供了4:1的壓縮比。

rgba_s3tc_dxt5_format:rgba影象格式的dxt5壓縮影象,它也提供了4:1的壓縮比,但與dx3格式的不同之處在於其alpha是如何被壓縮的。

three.rgb_pvrtc_4bppv1_format

three.rgb_pvrtc_2bppv1_format

three.rgba_pvrtc_4bppv1_format

three.rgba_pvrtc_2bppv1_format

要使用compressedtexture中的format屬性,需要獲得 [link: webgl_compressed_texture_pvrtc]擴充套件的支援。

pvrtc通常只在具有powervr晶元的移動裝置上可用,這些裝置主要是蘋果裝置。

通過這個擴充套件,這裡的四種pvrtc格式將可以使用:

rgb_pvrtc_4bppv1_format:4位模式下的rgb壓縮,每4x4畫素乙個塊。

rgb_pvrtc_2bppv1_format:2位模式下的rgb壓縮,每8x4畫素乙個塊。

rgba_pvrtc_4bppv1_format: 4位模式下的rgba壓縮,每4x4畫素乙個塊。

rgba_pvrtc_2bppv1_format: 2位模式下的rgb壓縮,每8x4畫素乙個塊。

three.rgb_etc1_format
要使用compressedtexture中的format屬性,需要獲得 [link: webgl_compressed_texture_etc1]擴充套件的支援。

three.linearencoding

three.srgbencoding

three.gammaencoding

three.rgbeencoding

three.logluvencoding

three.rgbm7encoding

three.rgbm16encoding

three.rgbdencoding

three.basicdepthpacking

three.rgbadepthpacking

這些常量用於紋理的encoding屬性。

如果編碼型別在紋理已被乙個材質使用之後發生了改變, 你需要來設定material.needsupdate為true來使得材質重新編譯。

linearencoding是預設值。 除此之外的其他值僅在材質的貼圖、envmap和emissivemap中有效。

UE4Material 常量 動態材質例項

材質例項 普通材質,每次修改都會導致重新編譯,開發效率不高。把普通材質的某些數值引數化,然後基於這個材質建立可以修改引數 不能修改節點關係的材質,這就是材質例項。材質例項分為兩種,常量和動態。常量材質例項 通常所說的材質例項,就是指常量材質例項。常量材質例項,在contentbrowser中建立 一...

紋理與材質

紋理更偏向於 圖 而材質更偏向於 屬性 打個比方說,對同乙個立方體模型進行處理 加紋理資訊,可以認為是貼上圖,比如木頭的紋理圖,大理石的紋理圖。加材質資訊,可以認為是為這個立方體加上屬性 這些屬性主要是指反射係數 折射係數等 比如木頭的屬性或大理石的屬性。從另乙個角度來看,加了紋理的模型是靜態的和表...

Ogre材質指令碼

ogre sdk版本 1.9.0 ogre sdk的media materials scripts 目錄下的example.mateiral,示例材質。ogre材質指令碼語法 注釋 單行注釋 多行注釋 關鍵字 texture 定義紋理 如 ambient 設定環境光如 ambient 1.0 1.0...