|
@@ -6369,7 +6369,7 @@ Object.assign( Box2.prototype, {
|
|
* @author alteredq / http://alteredqualia.com/
|
|
* @author alteredq / http://alteredqualia.com/
|
|
*/
|
|
*/
|
|
|
|
|
|
-function LensFlarePlugin( renderer, flares ) {
|
|
|
|
|
|
+function WebGLFlareRenderer( renderer, flares ) {
|
|
|
|
|
|
var gl = renderer.context;
|
|
var gl = renderer.context;
|
|
var state = renderer.state;
|
|
var state = renderer.state;
|
|
@@ -6767,7 +6767,7 @@ CanvasTexture.prototype.constructor = CanvasTexture;
|
|
* @author alteredq / http://alteredqualia.com/
|
|
* @author alteredq / http://alteredqualia.com/
|
|
*/
|
|
*/
|
|
|
|
|
|
-function SpritePlugin( renderer, sprites ) {
|
|
|
|
|
|
+function WebGLSpriteRenderer( renderer, sprites ) {
|
|
|
|
|
|
var gl = renderer.context;
|
|
var gl = renderer.context;
|
|
var state = renderer.state;
|
|
var state = renderer.state;
|
|
@@ -17450,11 +17450,10 @@ function unrollLoops( string ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-function WebGLProgram( renderer, code, material, shader, parameters ) {
|
|
|
|
|
|
+function WebGLProgram( renderer, extensions, code, material, shader, parameters ) {
|
|
|
|
|
|
var gl = renderer.context;
|
|
var gl = renderer.context;
|
|
|
|
|
|
- var extensions = material.extensions;
|
|
|
|
var defines = material.defines;
|
|
var defines = material.defines;
|
|
|
|
|
|
var vertexShader = shader.vertexShader;
|
|
var vertexShader = shader.vertexShader;
|
|
@@ -17534,7 +17533,7 @@ function WebGLProgram( renderer, code, material, shader, parameters ) {
|
|
|
|
|
|
//
|
|
//
|
|
|
|
|
|
- var customExtensions = generateExtensions( extensions, parameters, renderer.extensions );
|
|
|
|
|
|
+ var customExtensions = generateExtensions( material.extensions, parameters, extensions );
|
|
|
|
|
|
var customDefines = generateDefines( defines );
|
|
var customDefines = generateDefines( defines );
|
|
|
|
|
|
@@ -17615,7 +17614,7 @@ function WebGLProgram( renderer, code, material, shader, parameters ) {
|
|
parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',
|
|
parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',
|
|
|
|
|
|
parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
|
|
parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
|
|
- parameters.logarithmicDepthBuffer && renderer.extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '',
|
|
|
|
|
|
+ parameters.logarithmicDepthBuffer && extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '',
|
|
|
|
|
|
'uniform mat4 modelMatrix;',
|
|
'uniform mat4 modelMatrix;',
|
|
'uniform mat4 modelViewMatrix;',
|
|
'uniform mat4 modelViewMatrix;',
|
|
@@ -17722,9 +17721,9 @@ function WebGLProgram( renderer, code, material, shader, parameters ) {
|
|
parameters.physicallyCorrectLights ? "#define PHYSICALLY_CORRECT_LIGHTS" : '',
|
|
parameters.physicallyCorrectLights ? "#define PHYSICALLY_CORRECT_LIGHTS" : '',
|
|
|
|
|
|
parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
|
|
parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
|
|
- parameters.logarithmicDepthBuffer && renderer.extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '',
|
|
|
|
|
|
+ parameters.logarithmicDepthBuffer && extensions.get( 'EXT_frag_depth' ) ? '#define USE_LOGDEPTHBUF_EXT' : '',
|
|
|
|
|
|
- parameters.envMap && renderer.extensions.get( 'EXT_shader_texture_lod' ) ? '#define TEXTURE_LOD_EXT' : '',
|
|
|
|
|
|
+ parameters.envMap && extensions.get( 'EXT_shader_texture_lod' ) ? '#define TEXTURE_LOD_EXT' : '',
|
|
|
|
|
|
'uniform mat4 viewMatrix;',
|
|
'uniform mat4 viewMatrix;',
|
|
'uniform vec3 cameraPosition;',
|
|
'uniform vec3 cameraPosition;',
|
|
@@ -17851,12 +17850,11 @@ function WebGLProgram( renderer, code, material, shader, parameters ) {
|
|
|
|
|
|
var cachedUniforms;
|
|
var cachedUniforms;
|
|
|
|
|
|
- this.getUniforms = function() {
|
|
|
|
|
|
+ this.getUniforms = function () {
|
|
|
|
|
|
if ( cachedUniforms === undefined ) {
|
|
if ( cachedUniforms === undefined ) {
|
|
|
|
|
|
- cachedUniforms =
|
|
|
|
- new WebGLUniforms( gl, program, renderer );
|
|
|
|
|
|
+ cachedUniforms = new WebGLUniforms( gl, program, renderer );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -17868,7 +17866,7 @@ function WebGLProgram( renderer, code, material, shader, parameters ) {
|
|
|
|
|
|
var cachedAttributes;
|
|
var cachedAttributes;
|
|
|
|
|
|
- this.getAttributes = function() {
|
|
|
|
|
|
+ this.getAttributes = function () {
|
|
|
|
|
|
if ( cachedAttributes === undefined ) {
|
|
if ( cachedAttributes === undefined ) {
|
|
|
|
|
|
@@ -17931,7 +17929,7 @@ function WebGLProgram( renderer, code, material, shader, parameters ) {
|
|
* @author mrdoob / http://mrdoob.com/
|
|
* @author mrdoob / http://mrdoob.com/
|
|
*/
|
|
*/
|
|
|
|
|
|
-function WebGLPrograms( renderer, capabilities ) {
|
|
|
|
|
|
+function WebGLPrograms( renderer, extensions, capabilities ) {
|
|
|
|
|
|
var programs = [];
|
|
var programs = [];
|
|
|
|
|
|
@@ -18037,7 +18035,7 @@ function WebGLPrograms( renderer, capabilities ) {
|
|
// (not to blow over maxLights budget)
|
|
// (not to blow over maxLights budget)
|
|
|
|
|
|
var maxBones = object.isSkinnedMesh ? allocateBones( object ) : 0;
|
|
var maxBones = object.isSkinnedMesh ? allocateBones( object ) : 0;
|
|
- var precision = renderer.getPrecision();
|
|
|
|
|
|
+ var precision = capabilities.precision;
|
|
|
|
|
|
if ( material.precision !== null ) {
|
|
if ( material.precision !== null ) {
|
|
|
|
|
|
@@ -18195,7 +18193,7 @@ function WebGLPrograms( renderer, capabilities ) {
|
|
|
|
|
|
if ( program === undefined ) {
|
|
if ( program === undefined ) {
|
|
|
|
|
|
- program = new WebGLProgram( renderer, code, material, shader, parameters );
|
|
|
|
|
|
+ program = new WebGLProgram( renderer, extensions, code, material, shader, parameters );
|
|
programs.push( program );
|
|
programs.push( program );
|
|
|
|
|
|
}
|
|
}
|
|
@@ -20602,8 +20600,8 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
var morphInfluences = new Float32Array( 8 );
|
|
var morphInfluences = new Float32Array( 8 );
|
|
|
|
|
|
- var sprites = [];
|
|
|
|
- var lensFlares = [];
|
|
|
|
|
|
+ var spritesArray = [];
|
|
|
|
+ var flaresArray = [];
|
|
|
|
|
|
// public properties
|
|
// public properties
|
|
|
|
|
|
@@ -20723,6 +20721,11 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ function getTargetPixelRatio() {
|
|
|
|
+
|
|
|
|
+ return _currentRenderTarget === null ? _pixelRatio : 1;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
|
|
// initialize
|
|
// initialize
|
|
|
|
|
|
@@ -20810,7 +20813,7 @@ function WebGLRenderer( parameters ) {
|
|
attributes = new WebGLAttributes( _gl );
|
|
attributes = new WebGLAttributes( _gl );
|
|
geometries = new WebGLGeometries( _gl, attributes, _infoMemory );
|
|
geometries = new WebGLGeometries( _gl, attributes, _infoMemory );
|
|
objects = new WebGLObjects( _gl, geometries, _infoRender );
|
|
objects = new WebGLObjects( _gl, geometries, _infoRender );
|
|
- programCache = new WebGLPrograms( _this, capabilities );
|
|
|
|
|
|
+ programCache = new WebGLPrograms( _this, extensions, capabilities );
|
|
lights = new WebGLLights();
|
|
lights = new WebGLLights();
|
|
renderLists = new WebGLRenderLists();
|
|
renderLists = new WebGLRenderLists();
|
|
|
|
|
|
@@ -20821,26 +20824,21 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
_this.info.programs = programCache.programs;
|
|
_this.info.programs = programCache.programs;
|
|
|
|
|
|
|
|
+ _this.context = _gl;
|
|
|
|
+ _this.capabilities = capabilities;
|
|
|
|
+ _this.extensions = extensions;
|
|
|
|
+ _this.properties = properties;
|
|
|
|
+ _this.renderLists = renderLists;
|
|
|
|
+ _this.state = state;
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
initGLContext();
|
|
initGLContext();
|
|
|
|
|
|
- var vr = new WebVRManager( _this );
|
|
|
|
-
|
|
|
|
- //
|
|
|
|
|
|
+ // vr
|
|
|
|
|
|
- function getTargetPixelRatio() {
|
|
|
|
-
|
|
|
|
- return _currentRenderTarget === null ? _pixelRatio : 1;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ var vr = new WebVRManager( _this );
|
|
|
|
|
|
- this.context = _gl;
|
|
|
|
- this.capabilities = capabilities;
|
|
|
|
- this.extensions = extensions;
|
|
|
|
- this.properties = properties;
|
|
|
|
- this.renderLists = renderLists;
|
|
|
|
- this.state = state;
|
|
|
|
this.vr = vr;
|
|
this.vr = vr;
|
|
|
|
|
|
// shadow map
|
|
// shadow map
|
|
@@ -20849,11 +20847,10 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
this.shadowMap = shadowMap;
|
|
this.shadowMap = shadowMap;
|
|
|
|
|
|
|
|
+ //
|
|
|
|
|
|
- // Plugins
|
|
|
|
-
|
|
|
|
- var spritePlugin = new SpritePlugin( this, sprites );
|
|
|
|
- var lensFlarePlugin = new LensFlarePlugin( this, lensFlares );
|
|
|
|
|
|
+ var spriteRenderer = new WebGLSpriteRenderer( this, spritesArray );
|
|
|
|
+ var flareRenderer = new WebGLFlareRenderer( this, flaresArray );
|
|
|
|
|
|
// API
|
|
// API
|
|
|
|
|
|
@@ -20883,18 +20880,6 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
- this.getMaxAnisotropy = function () {
|
|
|
|
-
|
|
|
|
- return capabilities.getMaxAnisotropy();
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- this.getPrecision = function () {
|
|
|
|
-
|
|
|
|
- return capabilities.precision;
|
|
|
|
-
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
this.getPixelRatio = function () {
|
|
this.getPixelRatio = function () {
|
|
|
|
|
|
return _pixelRatio;
|
|
return _pixelRatio;
|
|
@@ -21662,8 +21647,8 @@ function WebGLRenderer( parameters ) {
|
|
lightsArray.length = 0;
|
|
lightsArray.length = 0;
|
|
shadowsArray.length = 0;
|
|
shadowsArray.length = 0;
|
|
|
|
|
|
- sprites.length = 0;
|
|
|
|
- lensFlares.length = 0;
|
|
|
|
|
|
+ spritesArray.length = 0;
|
|
|
|
+ flaresArray.length = 0;
|
|
|
|
|
|
_localClippingEnabled = this.localClippingEnabled;
|
|
_localClippingEnabled = this.localClippingEnabled;
|
|
_clippingEnabled = _clipping.init( this.clippingPlanes, _localClippingEnabled, camera );
|
|
_clippingEnabled = _clipping.init( this.clippingPlanes, _localClippingEnabled, camera );
|
|
@@ -21735,10 +21720,10 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- // custom render plugins (post pass)
|
|
|
|
|
|
+ // custom renderers
|
|
|
|
|
|
- spritePlugin.render( scene, camera );
|
|
|
|
- lensFlarePlugin.render( scene, camera, _currentViewport );
|
|
|
|
|
|
+ spriteRenderer.render( scene, camera );
|
|
|
|
+ flareRenderer.render( scene, camera, _currentViewport );
|
|
|
|
|
|
// Generate mipmap if we're using any kind of mipmap filtering
|
|
// Generate mipmap if we're using any kind of mipmap filtering
|
|
|
|
|
|
@@ -21841,13 +21826,13 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
if ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {
|
|
if ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {
|
|
|
|
|
|
- sprites.push( object );
|
|
|
|
|
|
+ spritesArray.push( object );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
} else if ( object.isLensFlare ) {
|
|
} else if ( object.isLensFlare ) {
|
|
|
|
|
|
- lensFlares.push( object );
|
|
|
|
|
|
+ flaresArray.push( object );
|
|
|
|
|
|
} else if ( object.isImmediateRenderObject ) {
|
|
} else if ( object.isImmediateRenderObject ) {
|
|
|
|
|
|
@@ -42714,7 +42699,7 @@ GridHelper.prototype.setColors = function () {
|
|
SkeletonHelper.prototype.update = function () {
|
|
SkeletonHelper.prototype.update = function () {
|
|
|
|
|
|
console.error( 'THREE.SkeletonHelper: update() no longer needs to be called.' );
|
|
console.error( 'THREE.SkeletonHelper: update() no longer needs to be called.' );
|
|
-
|
|
|
|
|
|
+
|
|
};
|
|
};
|
|
|
|
|
|
function WireframeHelper( object, hex ) {
|
|
function WireframeHelper( object, hex ) {
|
|
@@ -43493,6 +43478,20 @@ Object.assign( WebGLRenderer.prototype, {
|
|
|
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
+ getMaxAnisotropy: function () {
|
|
|
|
+
|
|
|
|
+ console.warn( 'THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().' );
|
|
|
|
+ return this.capabilities.getMaxAnisotropy();
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ getPrecision: function () {
|
|
|
|
+
|
|
|
|
+ console.warn( 'THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.' );
|
|
|
|
+ return this.capabilities.precision;
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
supportsFloatTextures: function () {
|
|
supportsFloatTextures: function () {
|
|
|
|
|
|
console.warn( 'THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( \'OES_texture_float\' ).' );
|
|
console.warn( 'THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( \'OES_texture_float\' ).' );
|