Browse Source

TSL: Improve fog approach 2 (#30092)

* improve fog 2

* Update webgpu_instance_sprites.jpg

* update screenshot
sunag 1 year ago
parent
commit
2eff8e9dfe

BIN
examples/screenshots/webgpu_compute_birds.jpg


BIN
examples/screenshots/webgpu_instance_sprites.jpg


BIN
examples/screenshots/webgpu_postprocessing.jpg


BIN
examples/screenshots/webgpu_postprocessing_afterimage.jpg


+ 2 - 2
src/materials/nodes/NodeMaterial.js

@@ -590,9 +590,9 @@ class NodeMaterial extends Material {
 
 			if ( fogNode ) {
 
-				const fog = vec4( fogNode );
+				output.assign( outputNode );
 
-				outputNode = vec4( fog.a.mix( outputNode.rgb, fog.rgb ), outputNode.a );
+				outputNode = vec4( fogNode );
 
 			}
 

+ 2 - 2
src/nodes/fog/Fog.js

@@ -1,6 +1,6 @@
 import { positionView } from '../accessors/Position.js';
 import { smoothstep } from '../math/MathNode.js';
-import { Fn, vec4 } from '../tsl/TSLBase.js';
+import { Fn, output, vec4 } from '../tsl/TSLBase.js';
 
 /** @module Fog **/
 
@@ -69,7 +69,7 @@ export const densityFogFactor = Fn( ( [ density ], builder ) => {
  */
 export const fog = Fn( ( [ color, factor ] ) => {
 
-	return vec4( color.toVec3(), factor.toFloat() );
+	return vec4( factor.toFloat().mix( output.rgb, color.toVec3() ), output.a );
 
 } );
 

粤ICP备19079148号