JSRUN 用代码说话

材质常量(Material Constants)

编辑教程

材质常量(Material Constants)

由这些常量定义的属性对所有的材质类型都生效,除了Texture Combine Operations只应用于 MeshBasicMaterial,MeshLambertMaterial和MeshPhongMaterial。

THREE.FrontSide
THREE.BackSide
THREE.DoubleSide

定义了哪一边的面将会被渲染 —— 正面,或是反面,还是两个面都渲染。 默认值是FrontSide(只渲染正面)。

颜色

THREE.NoColors
THREE.FaceColors
THREE.VertexColors

NoColors 是默认值,且会将材质的颜色应用到所有面。

FaceColors 根据每个Face3的Color值来对面进行着色。

VertexColors 根据每个 Face3的vertexColors(顶点颜色)值来对面进行着色。 这是一个包含有三个Color的数组,数组中每一项都对应着面中的每一个顶点。

混合模式

THREE.NoBlending
THREE.NormalBlending
THREE.AdditiveBlending
THREE.SubtractiveBlending
THREE.MultiplyBlending
THREE.CustomBlending

这些值控制着源和目标材质中,被发送到WebGLRenderer,来给WebGL使用的包含有RGB和Alpha数据的混合方程。

默认值是NormalBlending。

请注意,CustomBlending必须被设置为自定义混合方程(Custom Blending Equations)常量中的值。

深度模式

THREE.NeverDepth
THREE.AlwaysDepth
THREE.LessDepth
THREE.LessEqualDepth
THREE.GreaterEqualDepth
THREE.GreaterDepth
THREE.NotEqualDepth

材质使用这些深度函数来比较输入像素和缓冲器中Z-depth的值。 如果比较的结果为true,则将绘制像素。

  • NeverDepth 永远不返回true。
  • AlwaysDepth 总是返回true。
  • LessDepth 当输入像素Z-depth小于当前缓冲器Z-depth时,返回true。
  • LessEqualDepth 为默认值,当输入像素Z-depth小于或等于当前缓冲器Z-depth时,返回true。
  • GreaterEqualDepth 当输入像素Z-depth大于或等于当前缓冲器Z-depth时,返回true。
  • GreaterDepth 当输入像素Z-depth大于当前缓冲器Z-depth时,返回true。
  • NotEqualDepth 当输入像素Z-depth不等于当前缓冲器Z-depth时,返回true。

纹理结合操作

THREE.MultiplyOperation
THREE.MixOperation
THREE.AddOperation

这些常量定义了物体表面颜色与环境贴图(如果存在的话)相结合的结果, 用在MeshBasicMaterial、MeshLambertMaterial和MeshPhongMaterial当中。

  • MultiplyOperation 是默认值,它将环境贴图和物体表面颜色进行相乘。
  • MixOperation 使用反射率来混和两种颜色。
  • AddOperation 用于对两种颜色进行相加。

模具功能

THREE.NeverStencilFunc
THREE.LessStencilFunc
THREE.EqualStencilFunc
THREE.LessEqualStencilFunc
THREE.GreaterStencilFunc
THREE.NotEqualStencilFunc
THREE.GreaterEqualStencilFunc
THREE.AlwaysStencilFunc

材质用于确定是否执行模具操作的模具函数。

  • NeverStencilFunc永远不会返回true
  • 如果模具引用值小于当前模具值,LessStencilFunc将返回true。
  • 如果模具引用值等于当前模具值,EqualStencilFunc将返回true。
  • 如果模具引用值小于或等于当前模具值,LessEqualStencilFunc将返回true。
  • 如果模具引用值大于当前模具值,则GreaterStencilFunc将返回true。
  • 如果模具引用值不等于当前模具值,则NotEqualStencilFunc将返回true。
  • 如果模具引用值大于或等于当前模具值,则GreaterEqualStencilFunc将返回true。
  • AlwaysStencilFunc将始终返回true。

模板操作

THREE.ZeroStencilOp
THREE.KeepStencilOp
THREE.ReplaceStencilOp
THREE.IncrementStencilOp
THREE.DecrementStencilOp
THREE.IncrementWrapStencilOp
THREE.DecrementWrapStencilOp
THREE.InvertStencilOp

如果提供的模具函数通过,材质将对模具缓冲区像素执行哪个模具操作。

ZeroStencilOp 会将模具值设置为0。
KeepStencilOp 不会更改当前模具值。
ReplaceStencilOp 将用指定的模具引用值替换模具值。
IncrementStencilOp 将使当前模具值增加1。
DecrementStencilOp 将使当前模具值减少1。
IncrementWrapstenciop 将使当前模具值增加1。如果该值增量超过255,则将其设置为0。
DecrementWrapStencilOp 将使当前模具值增加1。如果该值递减到0以下,则将被设置为255。
InvertStencilOp 将执行当前模具值的逐位转换。
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟