###前提・実現したいこと
Three.jsのOBJLoader/MTLLoaderで読み込んだOBJ形式の3Dモデルを
表示したときスムーズな表面の表示にしたい。
OBJLoaderで読み込んだモデルに対するスムーズシェーディング、
ジオメトリの法線補完計算の正しい適用方法を知りたい。
###発生している問題・エラーメッセージ
Three.jsのOBJLoader/MTLLoaderで読み込んだOBJ形式の3Dモデルを
表示したとき、ごつごつしたポリゴンの線が目立ってしまう。
試したこと(1)(2)を実施すると3Dモデルが表示できなくなった。
エラーメッセージ
とくにありません。
###該当のソースコード
// 3Dmodel
var material = new THREE.MeshPhongMaterial({ shading: THREE.SmoothShading });
mtlLoader.load( 'iwamoto.mtl', function( materials ) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials( materials );
objLoader.setMaterials( material );
objLoader.setPath( 'mmd/' );
objLoader.load( 'iwamoto.obj', function ( mesh ) {
mesh.geometry.computeFaceNormals();
mesh.geometry.computeVertexNormals();
scene.add( mesh );
}, onProgress, onError );
});
###試したこと
(1) マテリアルの属性でスムーズシェーディングを適用しようとした。
var material = new THREE.MeshPhongMaterial({shading: THREE.SmoothShading });
(2) ジオメトリの法線を補完計算させようとした。
geometry.computeFaceNormals();
geometry.computeVertexNormals();
###補足情報(言語/FW/ツール等のバージョンなど)
Three.jp r77
あなたの回答
tips
プレビュー