得到galaxy中各星球的球心坐标后,基于这些点集合进行shader材质的渲染:
具体地,是通过设置几何体的顶点,再将该几何体通过shader材质渲染出Three.Points:
var stars=new THREE.Geometry();
stars.vertices=verts;
galaxy=new THREE.Points(stars,galaxyMaterial);
scene.add(galaxy);
其中galaxyMaterial为shader材质,用vertex shader和fragment shader进行了着色:
galaxyMaterial=new THREE.ShaderMaterial({
vertexShader:document.getElementById('vShader').textContent,
fragmentShader:document.getElementById('fShader').textContent,
uniforms:{
size:{type:'f',value:3.3},
t:{type:"f",value:0},
z:{type:"f",value:0},
pixelRatio:{type:"f",value:10000 }
},
transparent:true,
depthTest:false,
blending:THREE.AdditiveBlending
});