111 three.js下雨进阶版,面只旋转y轴朝向相机
之前实现过,是利用的sprite永久朝向相机的特性实现的效果。但是这种效果对于雪还比较好,如果贴图修改成长条形的雨的话,从上往下看,就会有一种说不出的感觉,不真实。 而我也通过修改shader和自己拼接渲染数据,实现了一个比较简单的渲染效果。接下来讲解一下实现逻辑: 第一步,创建一个包围盒,来设置范围 const box = new THREE.Box3( new THREE.Vector3(-2000, -2000, -2000), new THREE.Vector3(2000, 2000, 2000) ); 第二步,创建一个默认材质,并修改材质的shader 这里简单的提一句,three.js的材质对象是生成webgl的原生的program的工具,内置的那些材质都有相应的字符串拼接组成。 相应的,我们也可以通过拼接的方式,修改材质的默认着色器代码,从而达到自己的需求。 material = new THREE . MeshBasicMaterial ( { transparent : true , opacity : .8 , map : new THREE . TextureLoader ( ) . load ( "./color.png" ) , depthWrite : false , } ) ; material . onBeforeCompile = function