1

Pythonツールを使用してobjファイルをjsonモデルに変換しましたが、ここにコードをロードしようとしています

var camera, scene, renderer;
var mesh, aircraft;

function addModelToScene( geometry, materials )
{
    aircraft = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( materials ) );
    scene.add( aircraft );
}

function init()
{
    camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 0.1, 20000 );
    camera.position.z = 30;
    scene = new THREE.Scene();

var jsonLoader = new THREE.JSONLoader( true );
jsonLoader.load( "XA-20.js", addModelToScene );
renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
}

function animate()
{
    requestAnimationFrame( animate );
    aircraft.rotation.y += 0.02;
    renderer.render( scene, camera );
}

モデルを読み込んでいますが、テクスチャがありませんモデルファイルが大きいため、ここに投稿できませんが、マテリアルがあります

"materials": [  {
"DbgColor" : 15658734,
"DbgIndex" : 0,
"DbgName" : "plane",
"colorAmbient" : [0.117647, 0.117647, 0.117647],
"colorDiffuse" : [1.0, 1.0, 1.0],
"colorSpecular" : [0.75294099999999997, 0.75294099999999997, 0.75294099999999997],
"illumination" : 2,
"mapBump" : "XA-20_Razorback_Strike_Fighter_N.png",
"mapDiffuse" : "XA-20_Razorback_Strike_Fighter_P01.png",
"specularCoef" : 8.0
},

{
"DbgColor" : 15597568,
"DbgIndex" : 1,
"DbgName" : "glass",
"colorAmbient" : [0.117647, 0.117647, 0.117647],
"colorDiffuse" : [1.0, 1.0, 1.0],
"colorSpecular" : [0.75294099999999997, 0.75294099999999997, 0.75294099999999997],
"illumination" : 2,
"mapDiffuse" : "Glass_Cockpit.png",
"specularCoef" : 8.0
},.......

とuvsも

"uvs": [[0.72626,-0.65659,0.72655,-0.62558,0.72427,-0.6262,0.72391,-0.66141,0.73223,-0.62103,0.73212,.......

私が解決策を探すことができる手がかりはありますか?

4

2 に答える 2

0

jsonLoader.loadには、texturepathを設定する3番目の引数があります。このtexturePathを、テクスチャが含まれているフォルダに設定すると、機能するはずです。

https://github.com/mrdoob/three.js/blob/master/src/loaders/JSONLoader.js#L16

于 2012-12-31T10:24:42.457 に答える
0

私の場合、問題は、照明を適切に追加しなかったため、モデルにカラフルに表示するのに十分な光がなく、テクスチャが読み込まれていましたが、照明のために視覚的に見えなかったことです。

したがって、同様の問題が発生した場合は、最初に照明を確認してください

于 2013-04-29T11:24:09.230 に答える