Aly*_*ssa 2 javascript three.js
平滑着色似乎对我的模型没有影响 - 多边形清晰可见,并且在三个检查器中的平滑着色和平面着色之间切换无效.obj中有顶点法线数据,因此不需要使用geometry.computeVertexNormals(),就像其他一些帖子所建议的那样.
使用THREE.WebGLRenderer
任何领导赞赏:)
这是我的装载机功能:
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setBaseUrl(pathToLoad);
mtlLoader.setPath(pathToLoad);
mtlLoader.load('model_mesh.obj.mtl', function (materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.setPath(pathToLoad);
objLoader.load('model_mesh.obj', function (obj) {
obj.name = pathToLoad.substring(12, 17);
testArray.push(obj);
scene.add(obj);
loadNextPath();
});
});
Run Code Online (Sandbox Code Playgroud)
问题出在您的模型上.它具有"平坦的"顶点法线.
如果您不想修复模型,可以使用如下模式重新计算平滑顶点法线:
loader.load( 'model_mesh.obj', function( object ) {
var mesh = object.children[ 0 ];
mesh.geometry = new THREE.Geometry().fromBufferGeometry( mesh.geometry );
mesh.geometry.mergeVertices();
mesh.geometry.computeVertexNormals();
// convert back to BufferGeometry prior to rendering
mesh.geometry = new THREE.BufferGeometry().fromGeometry( mesh.geometry );
scene.add( object );
});
Run Code Online (Sandbox Code Playgroud)
three.js r.95
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |