提交 d3119424 编写于 作者: M Mugen87

WebGLShadowMap: Fix rendering with WebGLRenderTargetCube.

上级 80f77286
...@@ -351,6 +351,12 @@ ...@@ -351,6 +351,12 @@
<h3>[method:WebGLContextAttributes getContextAttributes]()</h3> <h3>[method:WebGLContextAttributes getContextAttributes]()</h3>
<p>Returns an object that describes the attributes set on the WebGL context when it was created.</p> <p>Returns an object that describes the attributes set on the WebGL context when it was created.</p>
<h3>[method:Integer getActiveCubeFace]()</h3>
<p>Returns the current active cube face.</p>
<h3>[method:Integer getActiveMipMapLevel]()</h3>
<p>Returns the current active mipmap level.</p>
<h3>[method:RenderTarget getRenderTarget]()</h3> <h3>[method:RenderTarget getRenderTarget]()</h3>
<p>Returns the current [page:RenderTarget RenderTarget] if there are; returns *null* otherwise.</p> <p>Returns the current [page:RenderTarget RenderTarget] if there are; returns *null* otherwise.</p>
......
...@@ -354,6 +354,16 @@ export class WebGLRenderer implements Renderer { ...@@ -354,6 +354,16 @@ export class WebGLRenderer implements Renderer {
camera: Camera camera: Camera
): void; ): void;
/**
* Returns the current active cube face.
*/
getActiveCubeFace(): number;
/**
* Returns the current active mipmap level.
*/
getActiveMipMapLevel(): number;
/** /**
* Returns the current render target. If no render target is set, null is returned. * Returns the current render target. If no render target is set, null is returned.
*/ */
......
...@@ -135,6 +135,8 @@ function WebGLRenderer( parameters ) { ...@@ -135,6 +135,8 @@ function WebGLRenderer( parameters ) {
_framebuffer = null, _framebuffer = null,
_currentActiveCubeFace = 0,
_currentActiveMipmapLevel = 0,
_currentRenderTarget = null, _currentRenderTarget = null,
_currentFramebuffer = null, _currentFramebuffer = null,
_currentMaterialId = - 1, _currentMaterialId = - 1,
...@@ -2420,6 +2422,18 @@ function WebGLRenderer( parameters ) { ...@@ -2420,6 +2422,18 @@ function WebGLRenderer( parameters ) {
}; };
this.getActiveCubeFace = function () {
return _currentActiveCubeFace;
};
this.getActiveMipMapLevel = function () {
return _currentActiveMipmapLevel;
};
this.getRenderTarget = function () { this.getRenderTarget = function () {
return _currentRenderTarget; return _currentRenderTarget;
...@@ -2429,6 +2443,8 @@ function WebGLRenderer( parameters ) { ...@@ -2429,6 +2443,8 @@ function WebGLRenderer( parameters ) {
this.setRenderTarget = function ( renderTarget, activeCubeFace, activeMipMapLevel ) { this.setRenderTarget = function ( renderTarget, activeCubeFace, activeMipMapLevel ) {
_currentRenderTarget = renderTarget; _currentRenderTarget = renderTarget;
_currentActiveCubeFace = activeCubeFace;
_currentActiveMipmapLevel = activeMipMapLevel;
if ( renderTarget && properties.get( renderTarget ).__webglFramebuffer === undefined ) { if ( renderTarget && properties.get( renderTarget ).__webglFramebuffer === undefined ) {
......
...@@ -101,6 +101,8 @@ function WebGLShadowMap( _renderer, _objects, maxTextureSize ) { ...@@ -101,6 +101,8 @@ function WebGLShadowMap( _renderer, _objects, maxTextureSize ) {
if ( lights.length === 0 ) return; if ( lights.length === 0 ) return;
var currentRenderTarget = _renderer.getRenderTarget(); var currentRenderTarget = _renderer.getRenderTarget();
var activeCubeFace = _renderer.getActiveCubeFace();
var activeMipMapLevel = _renderer.getActiveMipMapLevel();
var _state = _renderer.state; var _state = _renderer.state;
...@@ -258,7 +260,7 @@ function WebGLShadowMap( _renderer, _objects, maxTextureSize ) { ...@@ -258,7 +260,7 @@ function WebGLShadowMap( _renderer, _objects, maxTextureSize ) {
scope.needsUpdate = false; scope.needsUpdate = false;
_renderer.setRenderTarget( currentRenderTarget ); _renderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipMapLevel );
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册