【发布时间】:2020-02-16 21:03:50
【问题描述】:
我有一个简单的动画模型,通过蒙皮动画,我给它一个 ShaderMaterial 来显示它的法线:
gl_FragColor = vec4(vNormal, 1.0);
https://codepen.io/marco_fugaro/pen/ZEEBjKz?editors=0010
问题是法线不会随着模型的蒙皮而更新,并且它们在对象的非动画位置始终保持不变(请参阅VertexNormalsHelper)。
如何更新法线,或者如何获得动画顶点的法线?
model.geometry.computeVertexNormals() 不起作用
【问题讨论】:
-
使用
ShaderMaterial似乎不会显示正常情况。也许使用MeshNormalMaterial。否则,如果您想修改标准材质,您需要使用Material.onBeforeCompile,以便获得所有蒙皮和其他功能。有使用onBeforeCompilehere的例子 -
我正在用法线做其他事情,所以我需要使用自定义着色器。你知道我应该在
onBeforeCompile的着色器中注入什么吗? -
完成,谢谢!您的回答很有帮助!
标签: animation three.js shader normals