Three.js - 为BufferGeometry实现FlatShading

时间:2013-06-18 17:18:33

标签: three.js webgl

似乎为材料设置THREE.FlatShading不适用于BufferGeometry。它实施了吗?

我正在使用BufferGeometry创建CTMLoader (useBuffers = true)并使用MeshLambertMaterial应用MeshNormalMaterialshading: 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来使其工作。

1 个答案:

答案 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