如何在使用JSONLoader()加载的模型上应用THREE.FlatShading?

问题描述 投票:3回答:1

我正在使用three.js的JSONLoader()加载模型。加载工作正常,但是模型看起来有点奇怪。我猜这是因为它会自动使用平滑阴影而不是平坦阴影。我尝试了几种方法来应用平面着色,但是没有一种有效。那就是我最后尝试过的:

loader.load("model.js", function(geometry, materials){
    var mat = new THREE.MeshFaceMaterial( materials );
    mat.shading = THREE.FlatShading;
    var object = new THREE.Mesh( geometry, mat);
    scene.add( object );
});

无论我正在尝试什么,它都是平滑阴影或产生错误。任何想法如何正确完成?

three.js shader
1个回答
4
投票

THREE.MeshFaceMaterial( materials )中,materials是一个数组。

您需要将阴影样式应用于该数组的每个元素,如下所示:

materials[ i ].shading = THREE.FlatShading;

three.js r.63

© www.soinside.com 2019 - 2024. All rights reserved.