0

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

我正在使用或使用创建BufferGeometryCTMLoader (useBuffers = true)应用。Three.js 仍然将所有内容呈现为 SmoothShading。MeshLambertMaterialMeshNormalMaterialshading: THREE.FlatShading

如果我切换到 ClassicGeometry (useBuffers = false),一切都会按预期工作。不幸的是,这对我们不起作用,因为我们的模型很大,而这正是使用BufferGeometry.

它只是没有实施还是非常困难/耗时/不可能实施?

提前感谢您的任何提示或建议。我正在使用最新的 r58 版本。

附言

我在同一主题上找到了最近 Ryan Rix 的帖子http://rix.si/2013/04/15/threejs-ctm-and-you/,他必须切换到 ClassicGeometry 才能使其工作。

4

1 回答 1

0

在 three.js r73 中,平面着色THREE.MeshPhongMaterial肯定可以使用。你可以像这样使用它:

geometry = new THREE.BufferGeometry();

//... make your geometry

material = new THREE.MeshPhongMaterial({ 
    color: 0xff0000, 
    shading: THREE.FlatShading
});

mesh = new THREE.Mesh( geometry, material );

这暂时THREE.MeshLambertMaterial还不行。但他们正在努力。在 GitHub 上查看相关问题。

于 2016-02-04T14:40:19.700 回答