在我目前的项目中,我需要制作一个可见的聚光灯,就像一个叫蝙蝠侠的聚光灯。我的意思是那个光锥,你可以在夜空中看到。 我没有任何图形或3D体验,我只是无法使光线可见。 如果你能告诉我这是怎么做的,或者给出一些建议,那就太好了。
以下是codepen的实验。 非常感谢。
P.S。我需要可见的整个圆锥体,而不仅仅是盒子的反射。
答案 0 :(得分:2)
JSFiddle Demo of batsignal-type spotlight
由于许多原因,灯光(和阴影)可能很棘手。它们有很多参数,需要进行大量调整才能看起来正确。只是让光线显示出来可能有点反直觉,这就是为什么这行代码是你最好的朋友:
light.shadowMapVisible = true;
灯光对象不可见。如果你看一眼,你就不会看到任何东西。如果你想让天空中的太阳照亮你的场景,你必须创建光源和太阳对象,如果你想要看到的东西。
让光线显现通常意味着提供光线可以照射的表面。在上面的例子中,该表面是围绕着我们的球体。在我们的例子中,我们还构建了一个黄色透明锥体来伪造光束。尝试在此锥体中添加纹理以获得更大的真实感。在现实生活中,这个锥体可以看作来自聚光灯的光线,反射出空气中的微小颗粒。在我们的3D世界中,除非我们将它们放在那里,否则没有可以反射的粒子,因此锥体。祝你好运!
提示:
请记住,有很多种灯。有些人可以投下阴影,有些则不能。有些只影响某些材料。
渲染器有一个名为" maxLights"默认为4。