2016-06-18 7 views
0

私はthree.jsが初めてです。私はあなたが1つのメッシュに複数のメッシュ材料を組み合わせることができます知っている。メッシュが同じ素材の場合はどうなりますか?それは詳細を追加するか?それ以外の場合は、mesh = new THREE.Mesh(geometry, material); scene.add(mesh);は何か有益ですか?肉眼では私には分かりにくいです。Three.js - 同じ材質の余分なメッシュ材が有益でしょうか?

mesh = new THREE.Mesh(geometry, material); 
    scene.add(mesh); 

    mesh = new THREE.Mesh(geometry, material); 
    mesh.position.z = - 1500; 
    scene.add(mesh); 

答えて

2

用語には多少の混乱があるようです。メッシュは、シーン内の実際のオブジェクトです。マテリアルは、シェーディングに影響を与えるメッシュのプロパティを記述します。したがって、第2メッシュを作成してシーンに追加すると、提供されたジオメトリとマテリアル(つまりプレゼンテーション)を持つ第2オブジェクトが作成されます。あなたがZ軸に沿って遠くにあり、カメラの遠方のクリッピング平面(a.k.a Z far)によって選択されたために、それが見えない可能性が高い理由が考えられます。

「それは有益です」という部分に。実装に依存しますが、素材を共有するメッシュ(したがってシェーダプログラムとそのパラメータ)の描画呼び出しは、冗長な状態変更なしで一緒にまとめることができるため、パフォーマンスをレンダリングすると有益です.WebGL(およびOpenGl)その問題)。

+0

Three.jsの文脈で間違っています。メッシュがオブジェクトであることに加えて、メッシュ用語は 'MeshBasicMaterial'のようなマテリアルで使用できます。さらに、1つのメッシュオブジェクトに対して複数のマテリアルを持つことができます。 – dman

+0

@dman私に反対することができます。 「MeshBasicMaterial」中の「mesh」という語は、それが**適用**されていることを意味する。すなわち、具体的には、メッシュが描画される方法に結びついている。 –

+0

はい、私は '複数のメッシュ素材を1つのメッシュに入れました'と言っています – dman

関連する問題