Materials.html 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="page.js"></script>
  7. <link type="text/css" rel="stylesheet" href="page.css" />
  8. </head>
  9. <body>
  10. <h1>材质常量(Material Constants)</h1>
  11. <p class="desc">
  12. 由这些常量定义的属性对所有的材质类型都生效,除了Texture Combine Operations只应用于
  13. [page:MeshBasicMaterial.combine MeshBasicMaterial],[page:MeshLambertMaterial.combine MeshLambertMaterial]和[page:MeshPhongMaterial.combine MeshPhongMaterial]。<br />
  14. </p>
  15. <h2>面</h2>
  16. <code>
  17. THREE.FrontSide
  18. THREE.BackSide
  19. THREE.DoubleSide
  20. THREE.TwoPassDoubleSide
  21. </code>
  22. <p>
  23. 定义了哪一边的面将会被渲染 —— 正面,或是反面,还是两个面都渲染。
  24. 默认值是[page:Constant FrontSide](只渲染正面)。
  25. </p>
  26. <p>
  27. [page:Materials TwoPassDoubleSide] will renderer double-sided transparent materials in two passes in back-front order to mitigate transparency artifacts.
  28. </p>
  29. <h2>混合模式</h2>
  30. <code>
  31. THREE.NoBlending
  32. THREE.NormalBlending
  33. THREE.AdditiveBlending
  34. THREE.SubtractiveBlending
  35. THREE.MultiplyBlending
  36. THREE.CustomBlending
  37. </code>
  38. <p>
  39. 这些值控制着源和目标材质中,被发送到WebGLRenderer,来给WebGL使用的包含有RGB和Alpha数据的混合方程。<br />
  40. 默认值是[page:Constant NormalBlending]。<br />
  41. 请注意,[page:Constant CustomBlending]必须被设置为自定义混合方程([page:CustomBlendingEquation Custom Blending Equations])常量中的值。<br />
  42. 请查看示例:[example:webgl_materials_blending materials / blending]。<br />
  43. </p>
  44. <h2>深度模式</h2>
  45. <code>
  46. THREE.NeverDepth
  47. THREE.AlwaysDepth
  48. THREE.LessDepth
  49. THREE.LessEqualDepth
  50. THREE.GreaterEqualDepth
  51. THREE.GreaterDepth
  52. THREE.NotEqualDepth
  53. </code>
  54. <p>
  55. 材质使用这些深度函数来比较输入像素和缓冲器中Z-depth的值。
  56. 如果比较的结果为true,则将绘制像素。<br />
  57. [page:Materials NeverDepth] 永远不返回true。<br />
  58. [page:Materials AlwaysDepth] 总是返回true。<br />
  59. [page:Materials LessDepth] 当输入像素Z-depth小于当前缓冲器Z-depth时,返回true。<br />
  60. [page:Materials LessEqualDepth] 为默认值,当输入像素Z-depth小于或等于当前缓冲器Z-depth时,返回true。<br />
  61. [page:Materials GreaterEqualDepth] 当输入像素Z-depth大于或等于当前缓冲器Z-depth时,返回true。 <br />
  62. [page:Materials GreaterDepth] 当输入像素Z-depth大于当前缓冲器Z-depth时,返回true。<br />
  63. [page:Materials NotEqualDepth] 当输入像素Z-depth不等于当前缓冲器Z-depth时,返回true。<br />
  64. </p>
  65. <h2>纹理结合操作</h2>
  66. <code>
  67. THREE.MultiplyOperation
  68. THREE.MixOperation
  69. THREE.AddOperation
  70. </code>
  71. <p>
  72. 这些常量定义了物体表面颜色与环境贴图(如果存在的话)相结合的结果,
  73. 用在[page:MeshBasicMaterial.combine MeshBasicMaterial]、[page:MeshLambertMaterial.combine MeshLambertMaterial]和[page:MeshPhongMaterial.combine MeshPhongMaterial]当中。<br />
  74. [page:Constant MultiplyOperation] 是默认值,它将环境贴图和物体表面颜色进行相乘。<br />
  75. [page:Constant MixOperation] 使用反射率来混和两种颜色。uses reflectivity to blend between the two colors.<br />
  76. [page:Constant AddOperation] 用于对两种颜色进行相加。</p>
  77. <h2>模板函数</h2>
  78. <code>
  79. THREE.NeverStencilFunc
  80. THREE.LessStencilFunc
  81. THREE.EqualStencilFunc
  82. THREE.LessEqualStencilFunc
  83. THREE.GreaterStencilFunc
  84. THREE.NotEqualStencilFunc
  85. THREE.GreaterEqualStencilFunc
  86. THREE.AlwaysStencilFunc
  87. </code>
  88. <p>
  89. 材质使用的模板函数,用于决定是否执行一项模板操作.<br />
  90. [page:Materials NeverStencilFunc] 一定会返回true.<br />
  91. [page:Materials LessStencilFunc] 当模板基准值比当前模板值小的时候返回true.<br />
  92. [page:Materials EqualStencilFunc] 当模板基准值和当前模板值一样的时候返回true.<br />
  93. [page:Materials LessEqualStencilFunc] 当模板基准值小于等于当前模板值的时候返回true.<br />
  94. [page:Materials GreaterStencilFunc] 当模板基准值比当前模板值大的时候返回true.<br />
  95. [page:Materials NotEqualStencilFunc] 当模板基准值与当前模板值不相等的时候返回true.<br />
  96. [page:Materials GreaterEqualStencilFunc] 当模板基准值比当前模板值大的时候返回true.<br />
  97. [page:Materials AlwaysStencilFunc] 一定会返回true.<br />
  98. </p>
  99. <h2>模板操作</h2>
  100. <code>
  101. THREE.ZeroStencilOp
  102. THREE.KeepStencilOp
  103. THREE.ReplaceStencilOp
  104. THREE.IncrementStencilOp
  105. THREE.DecrementStencilOp
  106. THREE.IncrementWrapStencilOp
  107. THREE.DecrementWrapStencilOp
  108. THREE.InvertStencilOp
  109. </code>
  110. <p>
  111. 当提供的模板函数通过的时候,材质会在模板缓冲像素上执行怎样的模板操作.<br />
  112. [page:Materials ZeroStencilOp] 将模板值设置为0。<br />
  113. [page:Materials KeepStencilOp] 不会对模板值进行任何操作。<br />
  114. [page:Materials ReplaceStencilOp] 使用模板基准值覆盖模板值。<br />
  115. [page:Materials IncrementStencilOp] 将当前模板值加1。<br />
  116. [page:Materials DecrementStencilOp] 将当前模板值减1。<br />
  117. [page:Materials IncrementWrapStencilOp] 将当前模板值加1,如果这个值超过了255则会设置为0。<br />
  118. [page:Materials DecrementWrapStencilOp] 将当前模板值减1,如果这个值低于0则会设置为255<br />
  119. [page:Materials InvertStencilOp] 将当前模板值按位反转.<br />
  120. </p>
  121. <h2>GLSL Version</h2>
  122. <code>
  123. THREE.GLSL1
  124. THREE.GLSL3
  125. </code>
  126. <h2>源代码</h2>
  127. <p>
  128. [link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
  129. </p>
  130. </body>
  131. </html>