我正在使用three.js创建地形编辑器,我遇到了一些问题。
第一。阴影在MeshLambertMaterial上渲染,但它不会在ShaderMaterial上渲染。
第二。如何在运行时更改对象的材质(从lambert到着色器)?
这是我的编辑器的演示:http://78.62.160.169/webgl/editor/
源代码:http://78.62.160.169/webgl/editor/script.js
答案 0 :(得分:1)
LambertMaterial
是一个内置素材,受插件支持。因此,shadow插件支持在LambertMaterial
上呈现,而ShaderMaterial
是您自己的着色器/材质,应该手动启用阴影支持,它不是默认设置。
答案 1 :(得分:0)
这是带有阴影和雾的ShaderMaterial的示例
https://gist.github.com/wmcmurray/6696fc95f25bbd2401d72a74e9493261
或者您也可以从LambertMaterial或其他重写着色器,
使其支持您自己的着色器