Class: Material

Material

new Material(params)

材质基类,一般不直接使用

Name Type Description
params object optional

初始化参数,所有params都会复制到实例上

Members Show Inherited

Name Type Default Description
isMaterial boolean true
className string Material
name string

name

shaderCacheId string null

shader cache id

shaderName string null

shader name,会在 shader 中加个 SHADER_NAME 宏,不填用 className 代替。

lightType string NONE

光照类型

wireframe boolean false

是否开启网格模式

frontFace GLenum CCW

front face winding orientation

depthTest boolean true

是否开启深度测试

sampleAlphaToCoverage Boolean false

SAMPLE_ALPHA_TO_COVERAGE

depthMask boolean true

是否开启depthMask

depthRange Array [0, 1]

深度测试Range

depthFunc GLenum LESS

深度测试方法

normalMap Texture null

法线贴图

parallaxMap Texture null

视差贴图

normalMapScale Number 1

法线贴图scale

ignoreTranparent Boolean false

是否忽略透明度

gammaCorrection Boolean false

是否开启 gamma 矫正

usePhysicsLight Boolean false

是否使用物理灯光

isDiffuesEnvAndAmbientLightWorkTogether Boolean false

是否环境贴图和环境光同时生效

userData any null

用户数据

renderOrder Number 0

渲染顺序数字小的先渲染(透明物体和不透明在不同的队列)

premultiplyAlpha Boolean true

是否预乘 alpha

gammaOutput Boolean false

gammaOutput

gammaFactor Number 2.2

gamma值

castShadows Boolean true

是否投射阴影

receiveShadows Boolean true

是否接受阴影

uvMatrix Matrix3

uv transform eg:new Matrix3().fromRotationTranslationScale(Math.PI/2, 0, 0, 2, 2)

uvMatrix1 Matrix3

uv1 transform eg:new Matrix3().fromRotationTranslationScale(Math.PI/2, 0, 0, 2, 2)

cullFace boolean true

是否开启 CullFace

cullFaceType GLenum BACK

CullFace 类型

side GLenum FRONT

显示面,可选值 FRONT, BACK, FRONT_AND_BACK

blend boolean false

是否开启颜色混合

blendEquation GLenum FUNC_ADD

颜色混合方式

blendEquationAlpha GLenum FUNC_ADD

透明度混合方式

blendSrc GLenum ONE

颜色混合来源比例

blendDst GLenum ZERO

颜色混合目标比例

blendSrcAlpha GLenum ONE

透明度混合来源比例

blendDstAlpha GLenum ONE

透明度混合目标比例

stencilTest boolean 1

stencilTest

stencilMask number 0xff

stencilMask

stencilFunc GLenum ALWAYS

stencilFunc func

stencilFuncRef number 1

stencilFunc ref

stencilFuncMask number 0xff

stencilFunc mask

stencilOpFail GLenum KEEP

stencilOp fail

stencilOpZFail GLenum KEEP

stencilOp zfail

stencilOpZPass GLenum KEEP

stencilOp zpass

isDirty boolean false

当前是否需要强制更新

transparency number 1

透明度 0~1

transparent boolean false

是否需要透明

alphaCutoff number 0

透明度剪裁,如果渲染的颜色透明度大于等于这个值的话渲染为完全不透明,否则渲染为完全透明

useHDR Boolean false

是否使用HDR

exposure Number 1

曝光度,仅在 useHDR 为 true 时生效

enableTextureLod Boolean false

是否开启 texture lod

enableDrawBuffers Boolean false

是否开启 drawBuffers

needBasicUnifroms Boolean true

是否需要加基础 uniforms

needBasicAttributes Boolean true

是否需要加基础 attributes

id string
uniforms object {}

可以通过指定,semantic来指定值的获取方式,或者自定义get方法

attributes object {}

可以通过指定,semantic来指定值的获取方式,或者自定义get方法

Methods Show Inherited

addBasicAttributes()

增加基础 attributes

addBasicUniforms()

增加基础 uniforms

addTextureUniforms(textureUniforms)

增加贴图 uniforms

Name Type Description
textureUniforms Object

textureName:semanticName 键值对

getRenderOption(option){Object}

获取渲染选项值

Name Type Default Description
option Object {} optional

渲染选项值

Returns:
Type Description
Object 渲染选项值

clone 当前Material

Returns:
Type Description
Material 返回clone的Material

destroyTextures(){Material}

销毁贴图

Returns:
Type Description
Material this

getTextures(){Array.<Texture>}

获取材质全部贴图

Returns:
Type Description
Array.<Texture>

getShadowMaterial(shadowMaterial){Material}

获取阴影材质,子类可重写

Name Type Description
shadowMaterial Material

通用阴影材质

Returns:
Type Description
Material