Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Rekod3DBuildings.Engine.prototype.setSnowParticles = function() {
- var map = THREE.ImageUtils.loadTexture( 'images/textures/snowflake.png' );
- var attributes = {
- size: { type: 'f', value: [] },
- customColor: { type: 'c', value: [] },
- time: { type: 'f', value: [] },
- };
- this.snowUniforms = {
- color: { type: "c", value: new THREE.Color( 0x777777 ) },
- texture: { type: "t", value: 0, texture: map },
- globalTime: { type: "f", value: 0.0 },
- };
- var shaderMaterial = new THREE.ShaderMaterial( {
- uniforms: this.snowUniforms,
- attributes: attributes,
- vertexShader: document.getElementById( 'fragmentshader-airplane' ).textContent,
- fragmentShader: document.getElementById( 'vertexshader-airplane' ).textContent,
- blending: THREE.AdditiveBlending,
- depthTest: false,
- transparent: true,
- });
- var geometry = new THREE.Geometry();
- for ( var i = 0; i < 10000; i++ )
- geometry.vertices.push( new THREE.Vector3( Math.random() * 18000 - 1500, -5000, Math.random() * 18000 ) );
- var particles = new THREE.PointCloud( geometry, shaderMaterial );
- particles.position.x = -5000;
- particles.position.y = 5000;
- particles.position.z = -5000;
- var vertices = particles.geometry.vertices;
- var values_size = attributes.size.value;
- var values_color = attributes.customColor.value;
- var values_time = attributes.time.value;
- for( var v = 0; v < vertices.length; v++ ) {
- values_size[ v ] = 50 + Math.random() * 80;
- values_color[ v ] = new THREE.Color( 0xffffff );
- values_time[ v ] = Math.random();
- }
- this.scene.add( particles );
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement