材质的抽象基类。
材质描述了对象[page:Object objects]的外观。它们的定义方式与渲染器无关,
因此,如果您决定使用不同的渲染器,不必重写材质。
所有其他材质类型都继承了以下属性和方法(尽管它们可能具有不同的默认值)。
该方法创建一个通用材质。
设置运行alphaTest时要使用的alpha值。如果不透明度低于此值,则不会渲染材质。默认值为*0*。
混合目标。默认值为[page:CustomBlendingEquation OneMinusSrcAlphaFactor]。
目标因子所有可能的取值请参阅[page:CustomBlendingEquation constants]。
必须将材质的[page:Constant blending]设置为[page:Materials CustomBlending]才能生效。
[page:.blendDst]的透明度。 默认值为 *null*.
使用混合时所采用的混合方程式。默认值为[page:CustomBlendingEquation AddEquation]。
混合方程式所有可能的取值请参阅[page:CustomBlendingEquation constants]。
必须将材质的[page:Constant blending]设置为[page:Materials CustomBlending]才能生效。
[page:.blendEquation] 的透明度. 默认值为 *null*.
在使用此材质显示对象时要使用何种混合。
必须将其设置为[page:Materials CustomBlending]才能使用自定义[page:Constant blendSrc], [page:Constant blendDst] 或者 [page:Constant
blendEquation]。
混合模式所有可能的取值请参阅[page:Materials constants]。默认值为[page:Materials NormalBlending]。
混合源。默认值为[page:CustomBlendingEquation SrcAlphaFactor]。
源因子所有可能的取值请参阅[page:CustomBlendingEquation constants]。
必须将材质的[page:Constant blending]设置为[page:Materials CustomBlending]才能生效。
[page:.blendSrc]的透明度。 默认值为 *null*.
更改剪裁平面的行为,以便仅剪切其交叉点,而不是它们的并集。默认值为 *false*。
用户定义的剪裁平面,在世界空间中指定为THREE.Plane对象。这些平面适用于所有使用此材质的对象。空间中与平面的有符号距离为负的点被剪裁(未渲染)。 这需要[page:WebGLRenderer.localClippingEnabled]为*true*。 示例请参阅[example:webgl_clipping_intersection WebGL / clipping /intersection]。默认值为 *null*。
定义是否根据此材质上指定的剪裁平面剪切阴影。默认值为 *false*。
是否渲染材质的颜色。 这可以与网格的[page:Integer renderOrder]属性结合使用,以创建遮挡其他对象的不可见对象。默认值为*true*。
注入shader的自定义对象。 以键值对形式的对象传递,{ MY_CUSTOM_DEFINE: '' , PI2: Math.PI * 2 }。 这些键值对在顶点和片元着色器中定义。默认值为*undefined*。
使用何种深度函数。默认为[page:Materials LessEqualDepth]。 深度模式所有可能的取值请查阅[page:Materials constants]。
是否在渲染此材质时启用深度测试。默认为 *true*。
渲染此材质是否对深度缓冲区有任何影响。默认为*true*。
在绘制2D叠加时,将多个事物分层在一起而不创建z-index时,禁用深度写入会很有用。
Whether rendering this material has any effect on the stencil buffer. Default is *false*.
The bit mask to use when writing to the stencil buffer. Default is *0xFF*.
The stencil comparison function to use. Default is [page:Materials AlwaysStencilFunc]. See stencil function [page:Materials constants] for all possible values.
The value to use when performing stencil comparisons or stencil operations. Default is *0*.
The bit mask to use when comparing against the stencil buffer. Default is *0xFF*.
Which stencil operation to perform when the comparison function returns false. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
Which stencil operation to perform when the comparison function returns true but the depth test fails. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
Which stencil operation to perform when the comparison function returns true and the depth test passes. Default is [page:Materials KeepStencilOp]. See the stencil operations [page:Materials constants] for all possible values.
定义材质是否使用平面着色进行渲染。默认值为false。
材质是否受雾影响。默认为*true*。
此材质实例的唯一编号。
用于检查此类或派生类是否为材质。默认值为 *true*。
因为其通常用在内部优化,所以不应该更改该属性值。
对象的可选名称(不必是唯一的)。默认值为空字符串。
指定需要重新编译材质。
实例化新材质时,此属性自动设置为true。
在0.0 - 1.0的范围内的浮点数,表明材质的透明度。值*0.0*表示完全透明,*1.0*表示完全不透明。
如果材质的[page:Boolean transparent]属性未设置为*true*,则材质将保持完全不透明,此值仅影响其颜色。
默认值为*1.0*。
是否使用多边形偏移。默认值为*false*。这对应于WebGL的*GL_POLYGON_OFFSET_FILL*功能。
设置多边形偏移系数。默认值为*0*。
设置多边形偏移单位。默认值为*0*。
重写此材质渲染器的默认精度。可以是"*highp*", "*mediump*" 或 "*lowp*"。默认值为*null*。
是否预乘alpha(透明度)值。有关差异的示例,请参阅[Example:webgl_materials_transparency WebGL / Materials / Transparency]。 默认值为*false*。
是否对颜色应用抖动以消除条带的外观。默认值为 *false*。
定义投影的面。设置时,可以是[page:Materials THREE.FrontSide], [page:Materials THREE.BackSide], 或[page:Materials]。默认值为 *null*。
如果为*null*, 则面投射阴影确定如下:
[page:Material.side] | Side casting shadows |
---|---|
THREE.FrontSide | 背面 |
THREE.BackSide | 前面 |
THREE.DoubleSide | 双面 |
定义将要渲染哪一面 - 正面,背面或两者。 默认为[page:Materials THREE.FrontSide]。其他选项有[page:Materials THREE.BackSide]和[page:Materials THREE.DoubleSide]。
Defines whether this material is tone mapped according to the renderer's [page:WebGLRenderer.toneMapping toneMapping] setting. Default is *true*.
定义此材质是否透明。这对渲染有影响,因为透明对象需要特殊处理,并在非透明对象之后渲染。
设置为true时,通过设置材质的[page:Float opacity]属性来控制材质透明的程度。
默认值为*false*。
值是字符串'Material'。不应该被更改,并且可以用于在场景中查找此类型的所有对象。
此材质实例的[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID],会自动分配,不应该被更改。
是否使用顶点着色。默认值为[page:Materials THREE.NoColors]。 其他选项有[page:Materials THREE.VertexColors] 和 [page:Materials THREE.FaceColors]。
Defines whether precomputed vertex tangents, which must be provided in a vec4 "tangent" attribute, are used. When disabled, tangents are derived automatically. Using precomputed tangents will give more accurate normal map details in some cases, such as with mirrored UVs. Default is false.
此材质是否可见。默认为*true*。
一个对象,可用于存储有关Material的自定义数据。它不应该包含对函数的引用,因为这些函数不会被克隆。
返回与此材质具有相同参数的新材质。
将被传入材质中的参数复制到此材质中。
处理材质。材质的纹理不会被处理。需要通过[page:Texture Texture]处理。
在编译shader程序之前立即执行的可选回调。此函数使用shader源码作为参数。用于修改内置材质。
values -- 具有参数的容器。
根据*values*设置属性。
meta -- 包含有元数据的对象,例如该对象的纹理或图片。 将material对象转换为 three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format](three.js JSON 物体/场景格式)。
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]