在这里:https://jsfiddle.net/q703Lzsu/,jpg图像用于耀斑,相机在camera.position.z=80
或更少,一切正常。
camera.position.z = 80;
new THREE.TextureLoader().load(
/*"https://ibin.co/3apA1ybsZXgx.png"*/
"https://upload.wikimedia.org/wikipedia/commons/9/99/Map_of_the_full_sun.jpg", (texture3) => {
console.log('hereAAA');
var flareColor = new THREE.Color( 0xffffff );
var lensFlare = new THREE.LensFlare( texture3, 200, 0.0, THREE.AddieAAA');
var flareColor = new THREE.Color( 0xffffff );
var lensFlare = new THREE.LensFlare( texture3, 200, 0.0, THREE.AdditiveBlending, flareColor );
lensFlare.position.set( 0,0,10 );
scene.add( lensFlare );
});
但是,如果我使用camera.position.z=110
或更高级别的闪光没有出现!
如果我在80到110之间使用某个数字(例如100),那么当以小角度(相机y-rotation
cca。<-0.4, 0.4>
)观察时,闪光会变得不可见。
答案 0 :(得分:0)
three.js中的摄像机有近距离和远距离剪切。
OrthographicCamera( left, right, top, bottom, near, far )
left — Camera frustum left plane.
right — Camera frustum right plane.
top — Camera frustum top plane.
bottom — Camera frustum bottom plane.
near — Camera frustum near plane.
far — Camera frustum far plane.
尝试增加最后一个参数的值。
答案 1 :(得分:0)
那只是一次日食:)
当你放置camera.position.z=110
因为被太阳隐藏时,你不会看到镜片褶皱。
注释将太阳网格添加到场景的线条,您将更好地理解。 lensflare源点不得位于任何可见的对象后面。
答案 2 :(得分:0)
这被发现是three.js中的一个错误。它在当前开发版本的three.js库中解决。