2017-04-26 4 views

答えて

0

はジャストライン#8228でthree.js viewer implementationにソースコードを見てください。ジオメトリで使用

三角顔:

// File:src/core/Face3.js 

    /** 
    * @author mrdoob/http://mrdoob.com/ 
    * @author alteredq/http://alteredqualia.com/ 
    */ 

    THREE.Face3 = function (a, b, c, normal, color, materialIndex) { 

    this.a = a; 
    this.b = b; 
    this.c = c; 

    this.normal = normal instanceof THREE.Vector3 ? normal : new THREE.Vector3(); 
    this.vertexNormals = normal instanceof Array ? normal : []; 

    this.color = color instanceof THREE.Color ? color : new THREE.Color(); 
    this.vertexColors = color instanceof Array ? color : []; 

    this.vertexTangents = []; 

    this.materialIndex = materialIndex !== undefined ? materialIndex : 0; 

    }; 

    THREE.Face3.prototype = { 

    constructor: THREE.Face3, 

    clone: function() { 

     var face = new THREE.Face3(this.a, this.b, this.c); 

     face.normal.copy(this.normal); 
     face.color.copy(this.color); 

     face.materialIndex = this.materialIndex; 

     for (var i = 0, il = this.vertexNormals.length; i < il; i ++) { 

     face.vertexNormals[ i ] = this.vertexNormals[ i ].clone(); 

     } 

     for (var i = 0, il = this.vertexColors.length; i < il; i ++) { 

     face.vertexColors[ i ] = this.vertexColors[ i ].clone(); 

     } 

     for (var i = 0, il = this.vertexTangents.length; i < il; i ++) { 

     face.vertexTangents[ i ] = this.vertexTangents[ i ].clone(); 

     } 

     return face; 

    } 

    }; 

もthree.js Face3のドキュメントを見てみましょう。これらはすべての標準ジオメトリタイプに対して自動的に作成されますが、カスタムジオメトリを作成する場合は手動で作成する必要があります。

+0

'hitTestViewport'から返す目的は何ですか?この場合には何が使用されますか? – shinzou

+0

これは、交差するFace3エンティティだけです。あなたは何を正確に達成したいですか? –

0

私はそれをオフハンドにすることはできません。しかし、私が確実に言うことができるのは、ビューアにレイトレーシングを実装する方法、つまりショットを作成するレイを定義する方法と、Forgeモデルで交差するthree.jsオブジェクトを決定する方法です。これはGitHubの上ForgeFaderプロジェクトによって実証されています

https://github.com/jeremytammik/forgefader

+0

その顔が何であるか知っているといいかもしれません。多分私は何かのためにそれを使うことができます。 – shinzou

関連する問題