1

three.js では、Blender からインポートされたメッシュの色をターゲット/変更する方法がわかりません。どんな助けでも大歓迎です。

さらに、上記の面 (またはその点については任意のメッシュからの面) を「オーバーラップ」または他のすべての面の上に最初に表示する方法を知っておくとよいでしょう。

        loader = new THREE.JSONLoader();
        var callbackDice   = function( geometry ) { createMesh(geometry); };
        loader.load( "js/untitled.js", callbackDice );

function createMesh(geometry){
        material = new THREE.MeshNormalMaterial();
        mesh = new THREE.Mesh( geometry, material);
        mesh.scale.set( 75, 75, 75 );
        mesh.position.x = -1;
        scene.add( mesh);
    }

これが、必要なメッシュをシーンに挿入する方法です。特定の顔をターゲットにしてその色を変更したいのですが、それは THREE オブジェクトのインスタンスではないため、その方法がわかりません。

4

1 に答える 1

1

THREE.Mesh実際にもございTHREE.Object3Dます。しかし、それが直接あなたを助けるとは思いません。

Updates wiki ページを削除しました。

ジオメトリ チャンクに使用するマテリアルは自由に変更できますが、オブジェクトをチャンクに分割する方法 (面のマテリアルによる) を変更することはできません。

ランタイム中に異なるマテリアルの構成が必要な場合、マテリアル/チャンクの数が少ない場合は、事前にオブジェクトを分割することができます (例: 髪/顔/体/上着/人間のズボン、正面/側面/上/ガラス) / タイヤ / 車の内装)。

数が多い場合 (たとえば、各面が異なる可能性がある場合)、属性/テクスチャを使用して面ごとに異なる外観を実現する別のソリューションを検討してください。

そこから推測して、選択可能な面ごとに独自のマテリアルを使用する (選択時に変更できるようにする) か、テクスチャの関連部分を動的に色付けできるカスタム ソリューションを作成するか、カスタム アトリビュート バッファを使用して色付きの面を伝達します。

私が考えることができるもう 1 つのオプションは、色を頂点の色に焼き付けて使用することです。おそらく色の補間が得られますが、変更されたバッファが GPU にアップロードされることを確認する必要があります。

「片面を前面に出す」ということに関しては、あなたが何を望んでいるのかよくわかりません。メッシュから面を「分解」したり、回転させてカメラの方を向いたり、面が正しい深さの順序になっていることを確認したりしますか?

于 2012-10-31T07:02:12.277 に答える