Jelajahi Sumber

WebGPURenderer: Fix `mat2()` arguments (#30543)

* WebGPURenderer: Fix matN() and matN(x) behaviors

* simplify the code since luckily the nodebuilder fallback all values to zero if no arguments

* from specs scalar x spread on diagonal

* even more simple

* partial revert
Renaud Rohlinger 1 tahun lalu
induk
melakukan
3ba9864239
1 mengubah file dengan 2 tambahan dan 2 penghapusan
  1. 2 2
      src/nodes/core/NodeBuilder.js

+ 2 - 2
src/nodes/core/NodeBuilder.js

@@ -1160,11 +1160,11 @@ class NodeBuilder {
 
 			return `${ this.getType( type ) }( ${ generateConst( value.x ) }, ${ generateConst( value.y ) }, ${ generateConst( value.z ) } )`;
 
-		} else if ( typeLength === 4 ) {
+		} else if ( typeLength === 4 && type !== 'mat2' ) {
 
 			return `${ this.getType( type ) }( ${ generateConst( value.x ) }, ${ generateConst( value.y ) }, ${ generateConst( value.z ) }, ${ generateConst( value.w ) } )`;
 
-		} else if ( typeLength > 4 && value && ( value.isMatrix3 || value.isMatrix4 ) ) {
+		} else if ( typeLength >= 4 && value && ( value.isMatrix2 || value.isMatrix3 || value.isMatrix4 ) ) {
 
 			return `${ this.getType( type ) }( ${ value.elements.map( generateConst ).join( ', ' ) } )`;
 

粤ICP备19079148号