答案 0 :(得分:1)
唯一真正做到这一点的方法是光线追踪,在这种情况下,你的圆环成为一个发射器"光子及其几何形状用于计算所述光子的初始方向。
否则,光在技术上并不存在。仅存在光的(数学)描述。 (请记住,除非您使用LightHelper
,否则灯光不可见/不会被渲染。)这些描述由材质着色器使用,它使用灯光描述(以及其他对象)场景,在阴影的情况下),以确定当前片段应该为像素贡献的颜色。
考虑到这一点,如果您可以编写着色器来处理圆环形灯,那么您需要做的就是将着色信息提供给着色器。您可以通过扩展THREE.js
灯光类来使自己的TorusLight
添加到场景中,然后为场景中的对象提供自定义着色器来实现此目的。
这就是说,如果你对模拟圆环光线感到满意,并想要一个可见的环面,你总是可以在圆环的位置添加一个PointLight
(或者整个体内的几个torus),给你的圆环带来某种发光效果。