فهرست منبع

SpriteNodeMaterial: Honor `sizeAttenuation` for perspective camera only (#31628)

WestLangley 9 ماه پیش
والد
کامیت
cd0540763a
1فایلهای تغییر یافته به همراه3 افزوده شده و 15 حذف شده
  1. 3 15
      src/materials/nodes/SpriteNodeMaterial.js

+ 3 - 15
src/materials/nodes/SpriteNodeMaterial.js

@@ -1,5 +1,4 @@
 import NodeMaterial from './NodeMaterial.js';
-import { cameraProjectionMatrix } from '../../nodes/accessors/Camera.js';
 import { materialRotation } from '../../nodes/accessors/MaterialNode.js';
 import { modelViewMatrix, modelWorldMatrix } from '../../nodes/accessors/ModelNode.js';
 import { positionGeometry } from '../../nodes/accessors/Position.js';
@@ -111,9 +110,7 @@ class SpriteNodeMaterial extends NodeMaterial {
 
 		const { object, camera } = builder;
 
-		const sizeAttenuation = this.sizeAttenuation;
-
-		const { positionNode, rotationNode, scaleNode } = this;
+		const { positionNode, rotationNode, scaleNode, sizeAttenuation } = this;
 
 		const mvPosition = modelViewMatrix.mul( vec3( positionNode || 0 ) );
 
@@ -125,18 +122,9 @@ class SpriteNodeMaterial extends NodeMaterial {
 
 		}
 
-		if ( sizeAttenuation === false ) {
-
-			if ( camera.isPerspectiveCamera ) {
-
-				scale = scale.mul( mvPosition.z.negate() );
-
-			} else {
-
-				const orthoScale = float( 2.0 ).div( cameraProjectionMatrix.element( 1 ).element( 1 ) );
-				scale = scale.mul( orthoScale.mul( 2 ) );
+		if ( camera.isPerspectiveCamera && sizeAttenuation === false ) {
 
-			}
+			scale = scale.mul( mvPosition.z.negate() );
 
 		}
 

粤ICP备19079148号