提交 49cf7a66 编写于 作者: M Mr.doob

WebGLRenderer: Added setFramebuffer(). Fixes shadows in WebXR.

上级 84ae82be
...@@ -123,6 +123,8 @@ function WebGLRenderer( parameters ) { ...@@ -123,6 +123,8 @@ function WebGLRenderer( parameters ) {
// internal state cache // internal state cache
_framebuffer = null,
_currentRenderTarget = null, _currentRenderTarget = null,
_currentFramebuffer = null, _currentFramebuffer = null,
_currentMaterialId = - 1, _currentMaterialId = - 1,
...@@ -290,7 +292,7 @@ function WebGLRenderer( parameters ) { ...@@ -290,7 +292,7 @@ function WebGLRenderer( parameters ) {
// vr // vr
var vr = ( 'xr' in navigator ) ? new WebXRManager( _gl ) : new WebVRManager( _this ); var vr = ( 'xr' in navigator ) ? new WebXRManager( _this ) : new WebVRManager( _this );
this.vr = vr; this.vr = vr;
...@@ -2396,6 +2398,14 @@ function WebGLRenderer( parameters ) { ...@@ -2396,6 +2398,14 @@ function WebGLRenderer( parameters ) {
}() ); }() );
//
this.setFramebuffer = function ( value ) {
_framebuffer = value;
};
this.getRenderTarget = function () { this.getRenderTarget = function () {
return _currentRenderTarget; return _currentRenderTarget;
...@@ -2412,7 +2422,7 @@ function WebGLRenderer( parameters ) { ...@@ -2412,7 +2422,7 @@ function WebGLRenderer( parameters ) {
} }
var framebuffer = null; var framebuffer = _framebuffer;
var isCube = false; var isCube = false;
if ( renderTarget ) { if ( renderTarget ) {
......
...@@ -10,10 +10,11 @@ import { ArrayCamera } from '../../cameras/ArrayCamera.js'; ...@@ -10,10 +10,11 @@ import { ArrayCamera } from '../../cameras/ArrayCamera.js';
import { PerspectiveCamera } from '../../cameras/PerspectiveCamera.js'; import { PerspectiveCamera } from '../../cameras/PerspectiveCamera.js';
import { WebGLAnimation } from '../webgl/WebGLAnimation.js'; import { WebGLAnimation } from '../webgl/WebGLAnimation.js';
function WebXRManager( gl ) { function WebXRManager( renderer ) {
var scope = this; var scope = this;
var gl = renderer.context;
var device = null; var device = null;
var session = null; var session = null;
...@@ -70,7 +71,7 @@ function WebXRManager( gl ) { ...@@ -70,7 +71,7 @@ function WebXRManager( gl ) {
session.addEventListener( 'end', function () { session.addEventListener( 'end', function () {
gl.bindFramebuffer( gl.FRAMEBUFFER, null ); renderer.setFramebuffer( null );
animation.stop(); animation.stop();
} ); } );
...@@ -81,6 +82,8 @@ function WebXRManager( gl ) { ...@@ -81,6 +82,8 @@ function WebXRManager( gl ) {
frameOfRef = value; frameOfRef = value;
isExclusive = session.exclusive; isExclusive = session.exclusive;
renderer.setFramebuffer( session.baseLayer.framebuffer );
animation.setContext( session ); animation.setContext( session );
animation.start(); animation.start();
...@@ -135,8 +138,6 @@ function WebXRManager( gl ) { ...@@ -135,8 +138,6 @@ function WebXRManager( gl ) {
} }
gl.bindFramebuffer( gl.FRAMEBUFFER, session.baseLayer.framebuffer );
if ( onAnimationFrameCallback ) onAnimationFrameCallback(); if ( onAnimationFrameCallback ) onAnimationFrameCallback();
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册