|
@@ -222,16 +222,6 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
var _fragmentShaderPrecisionMediumpFloat = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.MEDIUM_FLOAT );
|
|
|
var _fragmentShaderPrecisionLowpFloat = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.LOW_FLOAT );
|
|
|
|
|
|
- /*
|
|
|
- var _vertexShaderPrecisionHighpInt = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.HIGH_INT );
|
|
|
- var _vertexShaderPrecisionMediumpInt = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.MEDIUM_INT );
|
|
|
- var _vertexShaderPrecisionLowpInt = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.LOW_INT );
|
|
|
-
|
|
|
- var _fragmentShaderPrecisionHighpInt = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.HIGH_INT );
|
|
|
- var _fragmentShaderPrecisionMediumpInt = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.MEDIUM_INT );
|
|
|
- var _fragmentShaderPrecisionLowpInt = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.LOW_INT );
|
|
|
- */
|
|
|
-
|
|
|
// clamp precision to maximum available
|
|
|
|
|
|
var highpAvailable = _vertexShaderPrecisionHighpFloat.precision > 0 && _fragmentShaderPrecisionHighpFloat.precision > 0;
|
|
@@ -3279,11 +3269,24 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
_frustum.setFromMatrix( _projScreenMatrix );
|
|
|
|
|
|
// update WebGL objects
|
|
|
-
|
|
|
if ( this.autoUpdateObjects ) this.initWebGLObjects( scene );
|
|
|
|
|
|
- // custom render plugins (pre pass)
|
|
|
|
|
|
+ opaqueObjects.length = 0;
|
|
|
+ transparentObjects.length = 0;
|
|
|
+ _sortObjects = this.sortObjects;
|
|
|
+
|
|
|
+ projectObject(scene,scene,camera);
|
|
|
+
|
|
|
+ if ( this.sortObjects ) {
|
|
|
+
|
|
|
+ opaqueObjects.sort( painterSortStable );
|
|
|
+ transparentObjects.sort( reversePainterSortStable );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // custom render plugins (pre pass)
|
|
|
+
|
|
|
renderPlugins( this.renderPluginsPre, scene, camera );
|
|
|
|
|
|
//
|
|
@@ -3304,18 +3307,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
// set matrices for regular objects (frustum culled)
|
|
|
|
|
|
|
|
|
- opaqueObjects.length = 0;
|
|
|
- transparentObjects.length = 0;
|
|
|
- _sortObjects = this.sortObjects;
|
|
|
-
|
|
|
- projectObject(scene,scene,camera);
|
|
|
-
|
|
|
- if ( this.sortObjects ) {
|
|
|
-
|
|
|
- opaqueObjects.sort( painterSortStable );
|
|
|
- transparentObjects.sort( reversePainterSortStable );
|
|
|
|
|
|
- }
|
|
|
|
|
|
// set matrices for immediate objects
|
|
|
|
|
@@ -3399,14 +3391,11 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
updateObject(scene, object);
|
|
|
|
|
|
- setupMatrices( object, camera );
|
|
|
-
|
|
|
for (var i = 0, l = webglObjects.length; i < l; i++){
|
|
|
|
|
|
var webglObject = webglObjects[i];
|
|
|
|
|
|
unrollBufferMaterial( webglObject );
|
|
|
-
|
|
|
|
|
|
webglObject.render = true;
|
|
|
|
|
@@ -3489,6 +3478,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
object = webglObject.object;
|
|
|
buffer = webglObject.buffer;
|
|
|
+
|
|
|
+ setupMatrices( object, camera );
|
|
|
|
|
|
if ( overrideMaterial ) {
|
|
|
|