浏览代码

PMREMGenerator: Fix viewport/scissor settings.

Mugen87 5 年之前
父节点
当前提交
5e8c2794f7
共有 2 个文件被更改,包括 5 次插入12 次删除
  1. 3 6
      examples/jsm/utils/RoughnessMipmapper.js
  2. 2 6
      src/extras/PMREMGenerator.js

+ 3 - 6
examples/jsm/utils/RoughnessMipmapper.js

@@ -18,8 +18,7 @@ import {
 	RawShaderMaterial,
 	RawShaderMaterial,
 	Scene,
 	Scene,
 	Vector2,
 	Vector2,
-	WebGLRenderTarget,
-	Vector4
+	WebGLRenderTarget
 } from "../../../build/three.module.js";
 } from "../../../build/three.module.js";
 
 
 var RoughnessMipmapper = ( function () {
 var RoughnessMipmapper = ( function () {
@@ -88,7 +87,6 @@ var RoughnessMipmapper = ( function () {
 			_mipmapMaterial.uniforms.roughnessMap.value = roughnessMap;
 			_mipmapMaterial.uniforms.roughnessMap.value = roughnessMap;
 			_mipmapMaterial.uniforms.normalMap.value = normalMap;
 			_mipmapMaterial.uniforms.normalMap.value = normalMap;
 
 
-			var dpr = _renderer.getPixelRatio();
 			var position = new Vector2( 0, 0 );
 			var position = new Vector2( 0, 0 );
 			var texelSize = _mipmapMaterial.uniforms.texelSize.value;
 			var texelSize = _mipmapMaterial.uniforms.texelSize.value;
 			for ( var mip = 0; width >= 1 && height >= 1;
 			for ( var mip = 0; width >= 1 && height >= 1;
@@ -100,9 +98,8 @@ var RoughnessMipmapper = ( function () {
 				texelSize.set( 1.0 / width, 1.0 / height );
 				texelSize.set( 1.0 / width, 1.0 / height );
 				if ( mip == 0 ) texelSize.set( 0.0, 0.0 );
 				if ( mip == 0 ) texelSize.set( 0.0, 0.0 );
 
 
-				var viewport = new Vector4( position.x, position.y, width / dpr, height / dpr );
-				_tempTarget.viewport.copy( viewport );
-				_tempTarget.scissor.copy( viewport );
+				_tempTarget.viewport.set( position.x, position.y, width, height );
+				_tempTarget.scissor.set( position.x, position.y, width, height );
 				_renderer.setRenderTarget( _tempTarget );
 				_renderer.setRenderTarget( _tempTarget );
 				_renderer.render( _scene, _flatCamera );
 				_renderer.render( _scene, _flatCamera );
 				_renderer.copyFramebufferToTexture( position, material.roughnessMap, mip );
 				_renderer.copyFramebufferToTexture( position, material.roughnessMap, mip );

+ 2 - 6
src/extras/PMREMGenerator.js

@@ -38,7 +38,6 @@ import { Scene } from "../scenes/Scene.js";
 import { Vector2 } from "../math/Vector2.js";
 import { Vector2 } from "../math/Vector2.js";
 import { Vector3 } from "../math/Vector3.js";
 import { Vector3 } from "../math/Vector3.js";
 import { WebGLRenderTarget } from "../renderers/WebGLRenderTarget.js";
 import { WebGLRenderTarget } from "../renderers/WebGLRenderTarget.js";
-import { Vector4 } from "../math/Vector4.js";
 
 
 var LOD_MIN = 4;
 var LOD_MIN = 4;
 var LOD_MAX = 8;
 var LOD_MAX = 8;
@@ -437,11 +436,8 @@ function _createRenderTarget( params ) {
 
 
 function _setViewport( target, x, y, width, height ) {
 function _setViewport( target, x, y, width, height ) {
 
 
-	var viewport = new Vector4( x, y, width, height );
-	viewport.addScalar( 0.5 ).divideScalar( _renderer.getPixelRatio() );
-
-	target.viewport.copy( viewport );
-	target.scissor.copy( viewport );
+	target.viewport.set( x, y, width, height );
+	target.scissor.set( x, y, width, height );
 
 
 }
 }