提交 5c29bf2c 编写于 作者: F Fernando Serrano

Remove supportsMultiview and add numMultiviewViews instead

上级 75e66cdf
......@@ -51,8 +51,8 @@
container = document.createElement( 'div' );
document.body.appendChild( container );
const urlParams = new URLSearchParams(window.location.search);
const multiview = urlParams.has('enableMultiview');
const urlParams = new URLSearchParams(window.location.search);
const multiview = urlParams.has('enableMultiview');
scene = new THREE.Scene();
scene.background = new THREE.Color( 0x505050 );
......@@ -93,7 +93,7 @@
//
var canvas = document.createElement( 'canvas' );
var canvas = document.createElement( 'canvas' );
var context = canvas.getContext( 'webgl2', { antialias: false } );
renderer = new THREE.WebGLRenderer( { canvas: canvas, context: context, multiview: multiview } );
renderer.setPixelRatio( window.devicePixelRatio );
......
......@@ -72,7 +72,6 @@ function Material() {
this.toneMapped = true;
this.supportsMultiview = true;
this.userData = {};
this.needsUpdate = true;
......
......@@ -1735,7 +1735,7 @@ function WebGLRenderer( parameters ) {
if ( refreshProgram || _currentCamera !== camera ) {
if ( material.supportsMultiview && multiview.isEnabled() ) {
if ( program.numMultiviewViews > 0 ) {
multiview.updateCameraProjectionMatrices( camera, p_uniforms );
......@@ -1791,7 +1791,7 @@ function WebGLRenderer( parameters ) {
material.isShaderMaterial ||
material.skinning ) {
if ( material.supportsMultiview && multiview.isEnabled() ) {
if ( program.numMultiviewViews > 0 ) {
multiview.updateCameraViewMatrices( camera, p_uniforms );
......@@ -1997,7 +1997,7 @@ function WebGLRenderer( parameters ) {
// common matrices
if ( material.supportsMultiview && multiview.isEnabled() ) {
if ( program.numMultiviewViews > 0 ) {
multiview.updateObjectMatrices( object, camera, p_uniforms );
......
......@@ -27,7 +27,7 @@ function WebGLMultiview( renderer, requested, options ) {
this.getNumViews = function () {
return renderTarget ? renderTarget.numViews : 1;
return renderTarget ? renderTarget.numViews : 0;
};
......
......@@ -340,6 +340,8 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters,
var prefixVertex, prefixFragment;
var numMultiviewViews = renderer.multiview.getNumViews();
if ( material.isRawShaderMaterial ) {
prefixVertex = [
......@@ -369,8 +371,6 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters,
} else {
var numMultiviewViews = renderer.multiview.getNumViews();
prefixVertex = [
'precision ' + parameters.precision + ' float;',
......@@ -432,7 +432,7 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters,
'uniform mat4 modelMatrix;',
'uniform vec3 cameraPosition;',
material.supportsMultiview && renderer.multiview.isEnabled() ? [
numMultiviewViews > 0 ? [
'uniform mat4 modelViewMatrices[' + numMultiviewViews + '];',
'uniform mat3 normalMatrices[' + numMultiviewViews + '];',
'uniform mat4 viewMatrices[' + numMultiviewViews + '];',
......@@ -570,7 +570,7 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters,
'uniform vec3 cameraPosition;',
material.supportsMultiview && renderer.multiview.isEnabled() ? [
numMultiviewViews > 0 ? [
'uniform mat4 viewMatrices[' + numMultiviewViews + '];',
'#define viewMatrix viewMatrices[VIEW_ID]'
......@@ -631,7 +631,7 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters,
prefixVertex = [
'#version 300 es\n',
material.supportsMultiview && renderer.multiview.isEnabled() ? [
numMultiviewViews > 0 ? [
'#extension GL_OVR_multiview2 : require',
'layout(num_views = ' + numMultiviewViews + ') in;',
......@@ -646,7 +646,7 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters,
prefixFragment = [
'#version 300 es\n',
material.supportsMultiview && renderer.multiview.isEnabled() ? [
numMultiviewViews > 0 ? [
'#extension GL_OVR_multiview2 : require',
'#define VIEW_ID gl_ViewID_OVR'
......@@ -806,6 +806,7 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters,
this.program = program;
this.vertexShader = glVertexShader;
this.fragmentShader = glFragmentShader;
this.numMultiviewViews = numMultiviewViews;
return this;
......
......@@ -81,8 +81,6 @@ function WebGLShadowMap( _renderer, _objects, maxTextureSize ) {
var depthMaterial = new MeshDepthMaterial( {
supportsMultiview: false,
depthPacking: RGBADepthPacking,
morphTargets: useMorphing,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册