LightShadow.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  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>[name]</h1>
  11. <p class="desc">
  12. 该类作为其他阴影类的基类来使用。
  13. </p>
  14. <h2>构造函数</h2>
  15. <h3>[name]( [param:Camera camera] )</h3>
  16. <p>
  17. [page:Camera camera] - 在光的世界里<br /><br />
  18. 创建一个新的[name]。这不能直接调用的 - 它由其他阴影用作基类。
  19. </p>
  20. <h2>属性</h2>
  21. <h3>[property:Boolean autoUpdate]</h3>
  22. <p>
  23. 启用光源阴影的自动更新。默认值为 *true*。如果您不需要动态光照/阴影,可以将其设置为 *false*。
  24. </p>
  25. <h3>[property:Camera camera]</h3>
  26. <p>
  27. 光的世界里。这用于生成场景的深度图;从光的角度来看,其他物体背后的物体将处于阴影中。
  28. </p>
  29. <h3>[property:Float bias]</h3>
  30. <p>
  31. 阴影贴图偏差,在确定曲面是否在阴影中时,从标准化深度添加或减去多少。<br />
  32. 默认值为0.此处非常小的调整(大约0.0001)可能有助于减少阴影中的伪影
  33. </p>
  34. <h3>[property:Integer blurSamples]</h3>
  35. <p>
  36. 模糊 VSM 阴影贴图时使用的样本数量。
  37. </p>
  38. <h3>[property:Float intensity]</h3>
  39. <p>
  40. 阴影的强度。默认值为 `1`。有效值范围为 `[0, 1]`。
  41. </p>
  42. <h3>[property:WebGLRenderTarget map]</h3>
  43. <p>
  44. 使用内置相机生成的深度图;超出像素深度的位置在阴影中。在渲染期间内部计算。
  45. </p>
  46. <h3>[property:WebGLRenderTarget mapPass]</h3>
  47. <p>
  48. 使用内部相机生成的分布图;遮挡是根据深度分布计算的。渲染期间进行内部计算。
  49. </p>
  50. <h3>[property:Vector2 mapSize]</h3>
  51. <p>
  52. 一个[Page:Vector2]定义阴影贴图的宽度和高度。<br /><br />
  53. 较高的值会以计算时间为代价提供更好的阴影质量。值必须是2的幂,直到给定设备的[page:WebGLRenderer.capabilities].maxTextureSize,
  54. 虽然宽度和高度不必相同(例如,(512,1024)有效)。
  55. 默认值为*(512,512)*。
  56. </p>
  57. <h3>[property:Matrix4 matrix]</h3>
  58. <p>
  59. 模拟阴影相机空间,计算阴影贴图中的位置和深度。存储在[page:Matrix4 Matrix4]中。这是在渲染期间内部计算的。
  60. </p>
  61. <h3>[property:Boolean needsUpdate]</h3>
  62. <p>
  63. 设置为 *true* 时,阴影贴图将在下一次渲染调用中更新。
  64. 默认值为 *false*。如果您已将 [page:.autoUpdate] 设置为 *false*,则需要将此属性设置为 *true*,然后进行渲染调用来更新光源的阴影。
  65. </p>
  66. <h3>[property:Float normalBias]</h3>
  67. <p>
  68. 定义用于查询阴影贴图的位置沿对象法线的偏移量。默认值为 0。
  69. 增加此值可用于减少阴影瑕疵,尤其是在光线以较小角度照射几何体的大型场景中。但代价是阴影可能会出现扭曲。
  70. </p>
  71. <h3>[property:Float radius]</h3>
  72. <p>
  73. 将此值设置为大于1的值将模糊阴影的边缘。<br />
  74. 较高的值会在阴影中产生不必要的条带效果 - 更大的[page:.mapSize mapSize]将允许在这些效果变得可见之前使用更高的值。<br />
  75. 如果 [page:WebGLRenderer.shadowMap.type] 设置为 [page:Renderer PCFSoftShadowMap],则半径无效,建议通过减小 [page:.mapSize mapSize] 来增加柔和度。<br /><br />
  76. 请注意,如果[page:WebGLRenderer.shadowMap.type]设置为[page:Renderer BasicShadowMap],将会无效。
  77. </p>
  78. <h2>方法</h2>
  79. <h3>[method:Vector2 getFrameExtents]()</h3>
  80. <p>
  81. 由渲染器内部使用,以扩展阴影贴图以包含所有视口。
  82. </p>
  83. <h3>[method:undefined updateMatrices]( [param:Light light] )</h3>
  84. <p>
  85. 更新渲染器内部使用的相机和阴影的矩阵。<br /><br />
  86. light -- 渲染阴影的光源。
  87. </p>
  88. <h3>[method:Frustum getFrustum]()</h3>
  89. <p>
  90. 获取阴影摄像机的视锥体。渲染器内部使用它来剔除对象。
  91. </p>
  92. <h3>[method:number getViewportCount]()</h3>
  93. <p>
  94. 由渲染器内部使用,以获取需要为此阴影渲染的视口数量。
  95. </p>
  96. <h3>[method:this copy]( [param:LightShadow source] )</h3>
  97. <p>
  98. 将[page:LightShadow source]中的所有属性的值复制到该Light。
  99. </p>
  100. <h3>[method:LightShadow clone]()</h3>
  101. <p>
  102. 克隆与此相同属性的新LightShadow。
  103. </p>
  104. <h3>[method:Object toJSON]()</h3>
  105. <p>
  106. 序列化这个LightShadow。
  107. </p>
  108. <h2>源码</h2>
  109. <p>
  110. [link:https://github.com/mrdoob/three.js/blob/master/src/lights/[name].js src/lights/[name].js]
  111. </p>
  112. </body>
  113. </html>
粤ICP备19079148号