three.js skydome与渐变

时间:2013-01-19 16:42:19

标签: 2d three.js gradient

我想添加一个带有2d渐变的球体作为纹理来创建天幕。我在openGL中看到,这通常是通过在附加传递中渲染没有深度测试的天空盒来解决的。 我在我的球体上禁用了depthTest,所以其他所有东西都在它前面绘制,它有点让我产生了令人失望的效果,但根据相机的角度,它会剪切到我场景中的其他物体。

我正在看几个使用THREE.EffectComposer和第二个场景的例子,我可能完全在错误的事情之后,但我认为这可以解决这个问题。事情是我没有触及过effectComposer,根本不知道如何使用它以及我需要哪些东西。

我会对这方面的任何意见表示感谢,也许我完全没错。

2 个答案:

答案 0 :(得分:6)

这里有两个three.js示例,其中创建了一个带渐变的天幕。它们不涉及EffectComposer或禁用深度测试。

http://mrdoob.github.com/three.js/examples/webgl_lights_hemisphere.html

http://mrdoob.github.com/three.js/examples/webgl_materials_lightmap.html

three.js r.55

答案 1 :(得分:0)

您不必使用圆锥或其他3D几何来模拟渐变天空。 我用画布解决了它(有3个渐变斑点,浅蓝色 - >白色(地平线) - >深蓝色)并将它作为精灵画在我的相机前面,与它的距离正确(雾距离)。 您只需在移动/旋转凸轮时管理距离。 提示:使用mesh.scale.set(xx,xx,1)将画布纹理缩放到所需大小。