Three.js PointLight失败超过2盏灯

时间:2012-10-16 21:20:40

标签: html5 webgl three.js

看看这个小提琴:

http://jsfiddle.net/PRz4G/

你可以看到关于蓝色的四个白点。这些点中的每一个都应该在同一个地方有一盏灯,但其中三个都无法工作。

在小提琴中查看这个数组:

var lights = {
    0: [712699, 0, 0],
    1: [732699, 0, 0],
    2: [722699, 10000, 0],
    3: [722699, -10000, 0],
    //4:[722699, 0, 10000],
    //5:[722699, 0, -10000]
};

如果你注释掉2和3,你可以看到两个灯成功渲染。取消评论2,我们回到了一个工作的角度。取消注释3和4,现在我们有一个完整的着色器初始化错误。

我做错了什么?

更新 问题是显示驱动程序特定,现在正在为我工​​作

2 个答案:

答案 0 :(得分:1)

编辑:这个答案是指旧版本的three.js,不再相关。 maxLights参数已被删除。


首先,您需要设置maxLights参数:

renderer: new THREE.WebGLRenderer( { maxLights: 6 } );

默认为4,否则为。通过这个改变,我看到了6个灯。

你的演示,正如所写,也适合我。 (4盏灯投射到球体上。)

您可能遇到硬件问题,防止超过2个灯光。它可能是一个劣质的GPU。

好消息是您的代码适用于此更改。 : - )

答案 1 :(得分:0)

您可以使用Chrome解决此问题,但必须编辑快捷方式并添加

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --use-gl=desktop

这样你可以随意投射任何光线。