保持默认照明的地形着色器

时间:2013-03-13 11:02:00

标签: javascript three.js webgl shader

因此,对于我的地形,我有一个着色器可以将多个纹理混合在一起(如草,沙,岩石)。这一切都很好用,但唯一的问题是着色器与Three.js照明引擎不兼容,所有顶点都是明亮的。我可以手动计算一些像太阳/月亮这样的照明,但如果我可以在我的着色器上使用Three.js照明引擎那就太好了。有没有办法合并,例如lambert材质着色器(使用Three.js光照)和我的自定义着色器?

1 个答案:

答案 0 :(得分:2)

您可以将ShaderMaterial.lights属性设置为true。您仍然需要自己处理照明计算,但您可以通过制服访问您创建的灯光。

例如,请参阅http://mrdoob.github.com/three.js/examples/webgl_materials_normalmap.html

示例来源:https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLShaders.js

three.js r.56