소스 검색

Lensflare: Better RTT support. (#26886)

Michael Herzog 1 년 전
부모
커밋
c00b168487
1개의 변경된 파일17개의 추가작업 그리고 0개의 파일을 삭제
  1. 17 0
      examples/jsm/objects/Lensflare.js

+ 17 - 0
examples/jsm/objects/Lensflare.js

@@ -9,6 +9,7 @@ import {
 	Mesh,
 	MeshBasicMaterial,
 	RawShaderMaterial,
+	UnsignedByteType,
 	Vector2,
 	Vector3,
 	Vector4
@@ -36,6 +37,8 @@ class Lensflare extends Mesh {
 		const tempMap = new FramebufferTexture( 16, 16 );
 		const occlusionMap = new FramebufferTexture( 16, 16 );
 
+		let currentType = UnsignedByteType;
+
 		// material
 
 		const geometry = Lensflare.Geometry;
@@ -162,6 +165,20 @@ class Lensflare extends Mesh {
 
 			renderer.getCurrentViewport( viewport );
 
+			const renderTarget = renderer.getRenderTarget();
+			const type = ( renderTarget !== null ) ? renderTarget.texture.type : UnsignedByteType;
+
+			if ( currentType !== type ) {
+
+				tempMap.dispose();
+				occlusionMap.dispose();
+
+				tempMap.type = occlusionMap.type = type;
+
+				currentType = type;
+
+			}
+
 			const invAspect = viewport.w / viewport.z;
 			const halfViewportWidth = viewport.z / 2.0;
 			const halfViewportHeight = viewport.w / 2.0;