2016-07-01 2 views
0

インデックスを設定せずにBufferGeometryを作成したいとします。 (hereと書かれていますが、この場合、レンダラは3つの連続した位置が1つの三角形を表しているとみなします)、警告が表示されます。レンダリング数またはプリムカウントは0です。とジオメトリは表示されません。 私は何が間違っていますか?Three.js - BufferGeometry警告インデックスが指定されていない場合、レンダーカウントまたはプリムカウントは0です

ここに問題を再現するコードを示します。ここ

var buffGeometry = new THREE.BufferGeometry(); 
buffGeometry.attributes = 
{ 
    position: 
    { 
     itemSize: 3, array: new Float32Array([10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 10, 0, 10, 0, 0, 10, 10, 0]), 
     numItems: 18  
    } 
}; 

indexArray = new Uint32Array([0, 1, 2, 3, 4, 5]); 

< !--it works adding the index array with the following line-- > 
// buffGeometry.setIndex(new THREE.BufferAttribute(indexArray, 1)); 

material = new THREE.MeshBasicMaterial({ color: 0xff0000 });  
var mesh = new THREE.Mesh(buffGeometry, material);  
scene.add(mesh); 

three.js R77

Here完全なサンプル)

+0

JsFiddleはデバッグに便利です。しかし、私はあなたが属性を直接設定しないと確信しています。 – ShuberFu

答えて

1

ドキュメント:要するに http://threejs.org/docs/index.html#Reference/Core/BufferGeometry

、あなたは直接attributeプロパティを設定することになっていません。 代わりに、あなたがTHREE.BufferAttributeを作成し、.addAttribute('position', bufferAttribute)

EDITを呼び出すことにより、ジオメトリに追加することになっている:わからないどのようにsetIndex仕事を、それが実際には何もレンダリングしたりしないクラッシュ?

+0

あなたは正しいです... thnxたくさん – ilCosmico

+0

EDIT:最新のリリースでは、_setIndex_が.addAttribute( 'index'、bufferAttribute)を置き換えました。 – ilCosmico

+0

ああ、忘れていました。ヘッドアップをありがとう。 – ShuberFu

関連する問題