Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何增加Three.js中的最大灯光数?_Javascript_Graphics_Three.js - Fatal编程技术网

Javascript 如何增加Three.js中的最大灯光数?

Javascript 如何增加Three.js中的最大灯光数?,javascript,graphics,three.js,Javascript,Graphics,Three.js,我正在试用Three.js,并试图增加场景中可以使用的灯光数量。理论上,这个数字应该只受GPU的限制,从而导致帧速率下降,但显然,如果我尝试放置超过128个灯光,整个材质将变为白色 我正在使用MeshPhongMaterial并添加简单的点光源 for(var i=0; i < maxLights; i++) { var alpha = 2 * Math.PI / maxLights * i; var pointLight = new THREE.PointLight(

我正在试用Three.js,并试图增加场景中可以使用的灯光数量。理论上,这个数字应该只受GPU的限制,从而导致帧速率下降,但显然,如果我尝试放置超过128个灯光,整个材质将变为白色

我正在使用MeshPhongMaterial并添加简单的点光源

for(var i=0; i < maxLights; i++) {
    var alpha = 2 * Math.PI / maxLights * i;

    var pointLight = new THREE.PointLight( 0x376cf5, 1, 0.3 );

    pointLight.position.x = Math.cos(alpha) * lightRadius;
    pointLight.position.z = Math.sin(alpha) * lightRadius;
    pointLights.push(pointLight);

    scene.add( pointLight );
}
for(变量i=0;i
我认为限制是用于寻址灯光的位数

如果我的假设是正确的,那么这种限制有什么原因吗?如果我有足够的实施时间,那么如果我试图修复这个限制,我将面临哪些挑战


谢谢。

如果我不得不猜测的话,我会说u(three.js)已经达到了GPU可以同时使用的最大制服数量。如果你想支持这么多的灯光,你需要
three.WebGLDeferredRenderer