Kaynağa Gözat

Example: Fix and optimize snow compute demo. (#33833)

Co-authored-by: sunag <sunagbrasil@gmail.com>
Michael Herzog 2 hafta önce
ebeveyn
işleme
1af10f07e7

BIN
examples/screenshots/webgpu_compute_particles_snow.jpg


+ 4 - 2
examples/webgpu_compute_particles_snow.html

@@ -85,12 +85,14 @@
 				collisionCamera.layers.enable( 1 );
 
 				collisionPosRT = new THREE.RenderTarget( 1024, 1024 );
+				collisionPosRT.texture.format = THREE.RedFormat;
 				collisionPosRT.texture.type = THREE.HalfFloatType;
 				collisionPosRT.texture.magFilter = THREE.NearestFilter;
 				collisionPosRT.texture.minFilter = THREE.NearestFilter;
 				collisionPosRT.texture.generateMipmaps = false;
 
 				collisionPosMaterial = new THREE.MeshBasicNodeMaterial();
+				collisionPosMaterial.blending = THREE.NoBlending;
 				collisionPosMaterial.fog = false;
 				collisionPosMaterial.toneMapped = false;
 				collisionPosMaterial.colorNode = positionWorld.y;
@@ -150,11 +152,11 @@
 
 					const rippleOnSurface = texture( collisionPosRT.texture, getCoord( position.xz ) ).toInspector( 'Collision Test', () => {
 
-						return texture( collisionPosRT.texture ).y; // .div( collisionCamera.position.y );
+						return texture( collisionPosRT.texture ).r; // .div( collisionCamera.position.y );
 
 					} );
 
-					const rippleFloorArea = rippleOnSurface.y.add( scale.x.mul( surfaceOffset ) );
+					const rippleFloorArea = rippleOnSurface.r.add( scale.x.mul( surfaceOffset ) );
 
 					If( position.y.greaterThan( rippleFloorArea ), () => {
 

粤ICP备19079148号