1

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

4

1 回答 1

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

三.js r.56

于 2013-03-13T15:45:54.187 回答