我尝试使用Three.js,我试图增加可在场景中使用的灯光数量。从理论上讲,这个数字应仅限于GPU,导致帧速率下降,但显然如果我尝试放置超过128个灯光,整个材料就会变白。
我正在使用MeshPhongMaterial并且我添加了简单的PointLights
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 );
}
我认为限制是用于寻址灯的位数。
如果我的假设是正确的,这种限制是否有某些原因?如果我有足够的实施时间,如果我试图解决这个限制,我将面临哪些挑战?
谢谢。