似乎为材料设置THREE.FlatShading
不适用于BufferGeometry
。它实施了吗?
我正在使用BufferGeometry
创建CTMLoader (useBuffers = true)
并使用MeshLambertMaterial
应用MeshNormalMaterial
或shading: THREE.FlatShading
。
Three.js仍然将所有内容呈现为SmoothShading。
如果我切换到ClassicGeometry(useBuffers = false),一切都按预期工作。不幸的是,这对我们不起作用,因为我们的模型非常庞大,这正是使用BufferGeometry
的原因。
它是否刚刚实施,是否非常困难/耗时/不可能实施?
提前感谢您提供任何提示或建议。我正在使用最新的r58版本。
P.S。
我在同一主题http://rix.si/2013/04/15/threejs-ctm-and-you/上找到了最近Ryan Rix的帖子,他不得不切换到ClassicGeometry来使其工作。
答案 0 :(得分:0)
在three.js r73 平面着色确实与eval(parse(text = paste0("variable", 1:10, "=",1:10, collapse = ";") ))
一起使用。您可以像这样使用它:
THREE.MeshPhongMaterial
这对geometry = new THREE.BufferGeometry();
//... make your geometry
material = new THREE.MeshPhongMaterial({
color: 0xff0000,
shading: THREE.FlatShading
});
mesh = new THREE.Mesh( geometry, material );
尚不起作用。但他们正在努力。检查相关问题here on GitHUB。