SpotLight.html 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="list.js"></script>
  7. <script src="page.js"></script>
  8. <link type="text/css" rel="stylesheet" href="page.css" />
  9. </head>
  10. <body>
  11. [page:Object3D] &rarr; [page:Light] &rarr;
  12. <h1>聚光灯([name])</h1>
  13. <p class="desc">
  14. 聚光灯是从一个方向上的一个点发出,沿着一个圆锥体,它离光越远,它的尺寸就越大。 <br /><br />
  15. 该光源可以投射阴影 - 跳转至 [page:SpotLightShadow] 查看更多细节。
  16. </p>
  17. <h2>示例</h2>
  18. <iframe src='../examples/webgl_lights_spotlight.html'></iframe>
  19. <p>
  20. [example:webgl_lights_spotlight View in Examples ]
  21. </p>
  22. <h2>其他例子</h2>
  23. <p>
  24. [example:webgl_interactive_cubes_gpu interactive / cubes / gpu ]<br />
  25. [example:webgl_interactive_draggablecubes interactive / draggablecubes ]<br />
  26. [example:webgl_materials_bumpmap_skin materials / bumpmap / skin ]<br />
  27. [example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]<br />
  28. [example:webgl_loader_md2 loader / md2 ]<br />
  29. [example:webgl_shading_physical shading / physical ]<br />
  30. [example:webgl_materials_bumpmap materials / bumpmap]<br/>
  31. [example:webgl_shading_physical shading / physical]<br/>
  32. [example:webgl_shadowmap shadowmap]<br/>
  33. [example:webgl_shadowmap_performance shadowmap / performance]<br/>
  34. [example:webgl_shadowmap_viewer shadowmap / viewer]
  35. </p>
  36. <h2>代码示例</h2>
  37. <code>
  38. // white spotlight shining from the side, casting a shadow
  39. var spotLight = new THREE.SpotLight( 0xffffff );
  40. spotLight.position.set( 100, 1000, 100 );
  41. spotLight.castShadow = true;
  42. spotLight.shadow.mapSize.width = 1024;
  43. spotLight.shadow.mapSize.height = 1024;
  44. spotLight.shadow.camera.near = 500;
  45. spotLight.shadow.camera.far = 4000;
  46. spotLight.shadow.camera.fov = 30;
  47. scene.add( spotLight );
  48. </code>
  49. <h2>构造器(Constructor)</h2>
  50. <h3>[name]( [param:Integer color], [param:Float intensity], [param:Float distance], [param:Radians angle], [param:Float penumbra], [param:Float decay] )</h3>
  51. <p>
  52. [page:Integer color] - (可选参数) 十六进制光照颜色。 缺省值 0xffffff (白色)。<br />
  53. [page:Float intensity] - (可选参数) 光照强度。 缺省值 1。<br /><br />
  54. [page:Float distance] - 从光源发出光的最大距离,其强度根据光源的距离线性衰减。 <br />
  55. [page:Radians angle] - 光线散射角度,最大为Math.PI/2。<br />
  56. [page:Float penumbra] - 聚光锥的半影衰减百分比。在0和1之间的值。默认为0。<br />
  57. [page:Float decay] - 沿着光照距离的衰减量。<br /><br />
  58. 创建一个新的聚光灯。
  59. </p>
  60. <h2>属性(Properties)</h2>
  61. 公共属性请查看基类[page:Light Light]。
  62. <h3>[property:Float angle]</h3>
  63. <p>
  64. 从聚光灯的位置以弧度表示聚光灯的最大范围。应该不超过 *Math.PI/2*。默认值为 *Math.PI/3*。
  65. </p>
  66. <h3>[property:Boolean castShadow]</h3>
  67. <p>
  68. 此属性设置为 *true* 聚光灯将投射阴影。警告: 这样做的代价比较高而且需要一直调整到阴影看起来正确。
  69. 查看 [page:SpotLightShadow] 了解详细信息。
  70. 默认值为 *false*
  71. </p>
  72. <h3>[property:Float decay]</h3>
  73. <p>
  74. 沿着光照距离的衰减量<br />
  75. 在 [page:WebGLRenderer.physicallyCorrectLights physically correct] 模式下,decay 设置为等于2将实现现实世界的光衰减。<br/>
  76. 缺省值为 *1*。
  77. </p>
  78. <h3>[property:Float distance]</h3>
  79. <p>
  80. 如果非零,那么光强度将会从最大值当前灯光位置处按照距离线性衰减到0。
  81. 缺省值为 *0.0*。
  82. </p>
  83. <h3>[property:Boolean isSpotLight]</h3>
  84. <p>
  85. 用来校验这个类或者它的派生类是不是聚光灯光源。缺省值是 *true*。<br /><br />
  86. 不应该去改变这个变量,因为内部使用这个变量做了些优化的工作。
  87. </p>
  88. <h3>[property:Float penumbra]</h3>
  89. <p>
  90. 聚光锥的半影衰减百分比。在0和1之间的值。
  91. 默认值 — 0.0。
  92. </p>
  93. <h3>[property:Vector3 position]</h3>
  94. <p>
  95. 假如这个值设置等于 [page:Object3D.DefaultUp] (0, 1, 0),那么光线将会从上往下照射。
  96. </p>
  97. <h3>[property:Float power]</h3>
  98. <p>
  99. 光功率<br />
  100. 在 [page:WebGLRenderer.physicallyCorrectLights physically correct] 模式中,
  101. 表示以"流明(光通量单位)"为单位的光功率。 缺省值 - *4Math.PI*。 <br /><br />
  102. 该值与 [page:.intensity intensity] 直接关联
  103. <code>
  104. power = intensity * 4&pi;
  105. </code>
  106. 修改该值也会导致光强度的改变。
  107. </p>
  108. <h3>[property:SpotLightShadow shadow]</h3>
  109. <p>
  110. [page:SpotLightShadow]用与计算此光照的阴影。
  111. </p>
  112. <h3>[property:Object3D target]</h3>
  113. <p>
  114. 平行光的方向是从它的位置到目标位置.默认的目标位置为原点 *(0,0,0)*。<br />
  115. 注意: 对于目标的位置,要将其更改为除缺省值之外的任何位置,它必须被添加到 [page:Scene scene]
  116. 场景中去。
  117. <code>
  118. scene.add( light.target );
  119. </code>
  120. 这使得属性target中的 [page:Object3D.matrixWorld matrixWorld] 会每帧自动更新。<br /><br />
  121. 它也可以设置target为场景中的其他对象(任意拥有 [page:Object3D.position position] 属性的对象), 示例如下:
  122. <code>
  123. var targetObject = new THREE.Object3D();
  124. scene.add(targetObject);
  125. light.target = targetObject;
  126. </code>
  127. 完成上述操作后,聚光灯现在就可以追踪到目标对像了。
  128. </p>
  129. <h2>方法(Methods)</h2>
  130. 公共方法请查看基类 [page:Light Light]。
  131. <h3>[method:SpotLight copy]( [param:SpotLight source] )</h3>
  132. <p>
  133. 将所有属性的值从源 [page:SpotLight source] 复制到此聚光灯光源对象。
  134. </p>
  135. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  136. </body>
  137. </html>