从Three.js中的几何体发出光

时间:2017-06-01 18:44:59

标签: three.js

是否可以让自定义几何体在Three.js中发光?

5年前有一个类似的问题here

在我的特定情况下,我创建了一个TorusGeometry。我希望这个圆环也能发光。这可能吗?

1 个答案:

答案 0 :(得分:1)

唯一真正做到这一点的方法是光线追踪,在这种情况下,你的圆环成为一个发射器"光子及其几何形状用于计算所述光子的初始方向。

否则,光在技术上并不存在。仅存在光的(数学)描述。 (请记住,除非您使用LightHelper,否则灯光不可见/不会被渲染。)这些描述由材质着色器使用,它使用灯光描述(以及其他对象)场景,在阴影的情况下),以确定当前片段应该为像素贡献的颜色。

考虑到这一点,如果您可以编写着色器来处理圆环形灯,那么您需要做的就是将着色信息提供给着色器。您可以通过扩展THREE.js灯光类来使自己的TorusLight添加到场景中,然后为场景中的对象提供自定义着色器来实现此目的。

这就是说,如果你对模拟圆环光线感到满意,并想要一个可见的环面,你总是可以在圆环的位置添加一个PointLight(或者整个体内的几个torus),给你的圆环带来某种发光效果。