4

私は Phong マテリアル (光に反応する) のプロパティを持つパーティクルを作成しようとしています。これを達成するために、「createMultiMaterialObject」を使用しました。これは、パーティクル サイズを無視する以外のほとんどの部分で機能しました。奇妙な三角形のようです。以下を参照してください。

ここに画像の説明を入力

これは私が使用しているコードです:

var ringGeometry = new THREE.TorusGeometry( rad, ringSize, 1, 200, Math.PI * 2);
materials = [
p2paterial = new THREE.MeshPhongMaterial({shading: THREE.SmoothShading, blending:     THREE.AdditiveBlending, transparent: true, color: ringColour, ambient: 0x000000, specular:     0xffffff, shininess: 1, vertexColors: false  } ),
pmaterial = new THREE.ParticleBasicMaterial( { size: 1, transparent: true,     vertexColors: true  } )
        ];
singleRing = new THREE.SceneUtils.createMultiMaterialObject(ringGeometry, materials);

最後のビットを達成し、粒子のサイズをそれぞれ 1 にする方法を誰か教えてもらえますか?

4

2 に答える 2

0

three.js を使用したことはありませんが、あなたのフィドルをいじっていて、TorusGeometry 宣言の RadialSegments の値を調整することで、より粒子のように見えるものを得ました....

var geometry = new THREE.TorusGeometry( 10, 10, .5, 200, Math.PI * 2);

http://jsfiddle.net/sJZeH/

于 2013-09-13T23:19:46.833 に答える
0

代わりにこれを試してください:

var geometry = new THREE.TorusGeometry( rad, ringSize, 1, 200, Math.PI * 2);

var material = new THREE.MeshPhongMaterial({shading: THREE.SmoothShading, blending:     THREE.AdditiveBlending, transparent: true, color: ringColour, ambient: 0x000000, specular:     0xffffff, shininess: 1, vertexColors: false  } );
var mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

var material = new THREE.ParticleBasicMaterial( { size: 1, transparent: true,     vertexColors: true  } );
var particles = new THREE.ParticleSystem( geometry, material );
scene.add( particles );
于 2013-09-09T20:19:33.613 に答える