瀏覽代碼

GaussianBlurNode: Alpha channel support (#27444)

Renaud Rohlinger 1 年之前
父節點
當前提交
c8252d3ec8
共有 1 個文件被更改,包括 5 次插入5 次删除
  1. 5 5
      examples/jsm/nodes/display/GaussianBlurNode.js

+ 5 - 5
examples/jsm/nodes/display/GaussianBlurNode.js

@@ -1,5 +1,5 @@
 import TempNode from '../core/TempNode.js';
-import { nodeObject, addNodeElement, tslFn, float, vec2, vec3, vec4 } from '../shadernode/ShaderNode.js';
+import { nodeObject, addNodeElement, tslFn, float, vec2, vec4 } from '../shadernode/ShaderNode.js';
 import { NodeUpdateType } from '../core/constants.js';
 import { mul } from '../math/OperatorNode.js';
 import { uv } from '../accessors/UVNode.js';
@@ -109,7 +109,7 @@ class GaussianBlurNode extends TempNode {
 			const direction = vec2( this.directionNode ).mul( this._passDirection );
 
 			const weightSum = float( gaussianCoefficients[ 0 ] ).toVar();
-			const diffuseSum = vec3( sampleTexture( uvNode ).mul( weightSum ) ).toVar();
+			const diffuseSum = vec4( sampleTexture( uvNode ).mul( weightSum ) ).toVar();
 
 			for ( let i = 1; i < kernelSize; i ++ ) {
 
@@ -118,15 +118,15 @@ class GaussianBlurNode extends TempNode {
 
 				const uvOffset = vec2( direction.mul( invSize.mul( x ) ) ).toVar();
 
-				const sample1 = vec3( sampleTexture( uvNode.add( uvOffset ) ) );
-				const sample2 = vec3( sampleTexture( uvNode.sub( uvOffset ) ) );
+				const sample1 = vec4( sampleTexture( uvNode.add( uvOffset ) ) );
+				const sample2 = vec4( sampleTexture( uvNode.sub( uvOffset ) ) );
 
 				diffuseSum.addAssign( sample1.add( sample2 ).mul( w ) );
 				weightSum.addAssign( mul( 2.0, w ) );
 
 			}
 
-			return vec4( diffuseSum.div( weightSum ), 1.0 );
+			return diffuseSum.div( weightSum );
 
 		} );