Jelajahi Sumber

WebGLRenderer: Added .getViewport()

Mugen87 7 tahun lalu
induk
melakukan
251e763cb6

+ 3 - 0
docs/api/renderers/WebGLRenderer.html

@@ -355,6 +355,9 @@
 		<h3>[method:RenderTarget getRenderTarget]()</h3>
 		<div>Returns the current RenderTarget, if any.</div>
 
+		<h3>[method:RenderTarget getViewport]()</h3>
+		<div>Returns the current viewport.</div>
+
 		<h3>[method:Number getMaxAnisotropy]()</h3>
 		<div>This returns the anisotropy level of the textures.</div>
 

+ 4 - 1
examples/js/objects/LensFlare.js

@@ -271,8 +271,9 @@ THREE.LensFlare = function ( texture, size, distance, blending, color, opacity )
 	//
 
 	var scale = new THREE.Vector2();
+	var viewport = new THREE.Vector4();
 
-	this.onBeforeRender = function ( renderer, scene, camera, geometry, material, group, viewport ) {
+	this.onBeforeRender = function ( renderer, scene, camera, geometry, material, group ) {
 
 		var group = this.parent;
 
@@ -285,6 +286,8 @@ THREE.LensFlare = function ( texture, size, distance, blending, color, opacity )
 
 		//
 
+		renderer.getViewport( viewport );
+
 		group.update( renderer, camera, viewport );
 
 		//

+ 8 - 2
src/renderers/WebGLRenderer.js

@@ -428,6 +428,12 @@ function WebGLRenderer( parameters ) {
 
 	};
 
+	this.getViewport = function ( viewport ) {
+
+		viewport.copy( _currentViewport );
+
+	};
+
 	this.setViewport = function ( x, y, width, height ) {
 
 		_viewport.set( x, _height - y - height, width, height );
@@ -1425,7 +1431,7 @@ function WebGLRenderer( parameters ) {
 
 	function renderObject( object, scene, camera, geometry, material, group ) {
 
-		object.onBeforeRender( _this, scene, camera, geometry, material, group, _currentViewport );
+		object.onBeforeRender( _this, scene, camera, geometry, material, group );
 
 		object.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );
 		object.normalMatrix.getNormalMatrix( object.modelViewMatrix );
@@ -1444,7 +1450,7 @@ function WebGLRenderer( parameters ) {
 
 		} else {
 
-			_this.renderBufferDirect( camera, scene.fog, geometry, material, object, group, _currentViewport );
+			_this.renderBufferDirect( camera, scene.fog, geometry, material, object, group );
 
 		}