我正在制作一个Three.js场景,在这个场景中我有星星对象,我希望能够让它们“发光”。
我所说的发光是指让它们真正发光,而不仅仅是在它们周围放置一个“光环”效果。
我试着将一个PointLight
对象放在与星星相同的位置,这使得光线从对象中发射出来,但正如你所看到的,它不会使对象“发光”,从而产生奇怪的效果。
我当前的代码如下所示:
class Marker extends THREE.Object3D {
constructor() {
super();
// load obj model
const loader = new OBJLoader();
loader.load(
"https://supersecretdomain.com/star.obj",
object => {
object.traverse(child => {
if (child instanceof THREE.Mesh) {
// child.material.map = texture;
child.material = new THREE.MeshLambertMaterial({
color: 0xffff00
});
child.scale.set(0.01, 0.01, 0.01);
}
});
this.add(object);
}
);
const light = new THREE.PointLight(0xffff00, 0.5, 5);
this.add(light);
}
}
你知道怎么做吗?;)
发布于 2018-06-21 03:05:18
向星形添加点光源是使其他对象受其光源影响的正确方法。要使星体本身发光,可以将材质的emissive
颜色设置为除黑色之外的其他颜色(为了获得最佳效果,您可能希望它与灯光的颜色相同)。
发布于 2018-06-21 07:57:50
除了设置您的灯光,并设置材质的发射属性,如上面的Jave所提到的。
您可能需要查看以下三个PostProcessing示例。特别是虚幻的布卢姆通行证。如果你能让它工作,它真的能卖出效果。
https://threejs.org/examples/webgl_postprocessing_unreal_bloom.html
请注意高光辉光实际上是如何渗入对象周围的场景中的…
https://stackoverflow.com/questions/50948014
复制相似问题