提交 47de4347 编写于 作者: M Mr.doob

WebGLRenderer: Removed scene.__webglSprites.

上级 4ef031b2
......@@ -7,6 +7,8 @@ THREE.SpritePlugin = function () {
var _gl, _renderer, _texture;
var sprites = [];
var vertices, faces, vertexBuffer, elementBuffer;
var program, attributes, uniforms;
......@@ -81,10 +83,19 @@ THREE.SpritePlugin = function () {
this.render = function ( scene, camera, viewportWidth, viewportHeight ) {
var sprites = scene.__webglSprites,
nSprites = sprites.length;
sprites.length = 0;
scene.traverseVisible( function ( child ) {
if ( child instanceof THREE.Sprite ) {
sprites.push( child );
}
} );
if ( ! nSprites ) return;
if ( sprites.length === 0 ) return;
// setup gl
......@@ -145,14 +156,10 @@ THREE.SpritePlugin = function () {
// update positions and sort
var i, sprite, material, fogType, scale = [];
for ( var i = 0, l = sprites.length; i < l; i ++ ) {
for( i = 0; i < nSprites; i ++ ) {
sprite = sprites[ i ];
material = sprite.material;
if ( sprite.visible === false ) continue;
var sprite = sprites[ i ];
var material = sprite.material;
sprite._modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, sprite.matrixWorld );
sprite.z = - sprite._modelViewMatrix.elements[ 14 ];
......@@ -163,13 +170,12 @@ THREE.SpritePlugin = function () {
// render all sprites
for( i = 0; i < nSprites; i ++ ) {
var scale = [];
sprite = sprites[ i ];
for ( var i = 0, l = sprites.length; i < l; i ++ ) {
if ( sprite.visible === false ) continue;
material = sprite.material;
var sprite = sprites[ i ];
var material = sprite.material;
_gl.uniform1f( uniforms.alphaTest, material.alphaTest );
_gl.uniformMatrix4fv( uniforms.modelViewMatrix, false, sprite._modelViewMatrix.elements );
......@@ -177,14 +183,12 @@ THREE.SpritePlugin = function () {
scale[ 0 ] = sprite.scale.x;
scale[ 1 ] = sprite.scale.y;
var fogType = 0;
if ( scene.fog && material.fog ) {
fogType = sceneFogType;
} else {
fogType = 0;
}
if ( oldFogType !== fogType ) {
......
......@@ -3647,7 +3647,6 @@ THREE.WebGLRenderer = function ( parameters ) {
scene.__webglObjects = {};
scene.__webglObjectsImmediate = [];
scene.__webglSprites = [];
scene.__webglFlares = [];
}
......@@ -3767,10 +3766,6 @@ THREE.WebGLRenderer = function ( parameters ) {
addBufferImmediate( scene.__webglObjectsImmediate, object );
} else if ( object instanceof THREE.Sprite ) {
scene.__webglSprites.push( object );
} else if ( object instanceof THREE.LensFlare ) {
scene.__webglFlares.push( object );
......@@ -3999,10 +3994,6 @@ THREE.WebGLRenderer = function ( parameters ) {
removeInstancesWebglObjects( scene.__webglObjects, object );
} else if ( object instanceof THREE.Sprite ) {
removeInstancesDirect( scene.__webglSprites, object );
} else if ( object instanceof THREE.LensFlare ) {
removeInstancesDirect( scene.__webglFlares, object );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册