我希望看到每个顶点指定颜色的图表,并且还要获得一点阴影。
但是,如果我使用MeshBasicMaterial
,我只能获得没有动态着色的VertexColor。
另一方面,如果我使用MeshPhongMaterial
,我只会得到阴影,但没有顶点颜色的放射性。
答案 0 :(得分:0)
由于THREE.JS PhongMaterial支持vertexColors
,为您提供动态光照和顶点颜色的完美组合,我不太清楚我理解您的问题。也许这是你应该调查的更多内容?
但是,作为编写自定义着色器的替代方法,您可以尝试多次传递模型。
这不会让你尽可能多地控制顶点颜色和phong光照作为着色器组合的方式,但通常简单的加/混合可以提供相当不错的结果。
算法:
- create two meshes for the BufferGeometry, one with the BasicMaterial and one with the PhongMaterial
- for the PhongMaterial, set
depthFunc = THREE.EqualDepth
transparent = true;
blending = THREE.AdditiveBlending(or MultiplyBlending)
- render the first mesh
- render the second mesh at the exact same spot