因此,对于我的地形,我有一个着色器来混合多种纹理在一起(如草,沙,岩石)。这一切都工作得很好,但唯一的问题是着色器与Three.js照明引擎不兼容,所有顶点都是明亮的。我可以手动计算一些照明,如太阳/月亮,但如果我可以只使用Three.js照明引擎和我的着色器,那就更好了。有没有办法结合,例如,兰伯特材质着色器(使用Three.js照明)和我的自定义着色器?
发布于 2013-03-13 23:45:54
您可以做的是将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
https://stackoverflow.com/questions/15383422
复制相似问题