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

WebGLObjects: Hackish approach to update only once per frame.

上级 3e409c2e
......@@ -193,6 +193,7 @@ function WebGLRenderer( parameters ) {
_infoRender = {
frame: 0,
calls: 0,
vertices: 0,
faces: 0,
......@@ -289,7 +290,7 @@ function WebGLRenderer( parameters ) {
var textures = new WebGLTextures( _gl, extensions, state, properties, capabilities, paramThreeToGL, this.info );
var attributes = new WebGLAttributes( _gl );
var geometries = new WebGLGeometries( _gl, attributes, this.info );
var objects = new WebGLObjects( _gl, geometries );
var objects = new WebGLObjects( _gl, geometries, _infoRender );
var programCache = new WebGLPrograms( this, capabilities );
var lightCache = new WebGLLights();
......
......@@ -2,23 +2,32 @@
* @author mrdoob / http://mrdoob.com/
*/
function WebGLObjects( gl, geometries ) {
function WebGLObjects( gl, geometries, infoRender ) {
function update( object ) {
// TODO: Avoid updating twice (when using shadowMap). Maybe add frame counter.
var frame = infoRender.frame;
var geometry = geometries.get( object );
var geometry = object.geometry;
var buffergeometry = geometries.get( object, geometry );
if ( object.geometry.isGeometry ) {
// Update once per frame
geometry.updateFromObject( object );
if ( buffergeometry.__frame !== frame ) {
}
if ( geometry.isGeometry ) {
buffergeometry.updateFromObject( object );
}
geometries.update( geometry );
geometries.update( buffergeometry );
buffergeometry.__frame = frame;
}
return geometry;
return buffergeometry;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册