提交 f3106269 编写于 作者: Z zz85

Refactoring addObject WebGLRenderer to make code cleaner

上级 6f57c209
......@@ -4511,7 +4511,11 @@ THREE.WebGLRenderer = function ( parameters ) {
geometry = object.geometry;
if ( geometry instanceof THREE.BufferGeometry ) {
if ( geometry === undefined ) {
// fail silently for now
} else if ( geometry instanceof THREE.BufferGeometry ) {
initDirectBuffers( geometry );
......@@ -4519,36 +4523,32 @@ THREE.WebGLRenderer = function ( parameters ) {
material = object.material;
if ( geometry instanceof THREE.Geometry ) {
if ( geometry.geometryGroups === undefined ) {
if ( geometry.geometryGroups === undefined ) {
sortFacesByMaterial( geometry, material );
sortFacesByMaterial( geometry, material );
}
// create separate VBOs per geometry chunk
}
for ( g in geometry.geometryGroups ) {
// create separate VBOs per geometry chunk
geometryGroup = geometry.geometryGroups[ g ];
for ( g in geometry.geometryGroups ) {
// initialise VBO on the first access
geometryGroup = geometry.geometryGroups[ g ];
if ( ! geometryGroup.__webglVertexBuffer ) {
// initialise VBO on the first access
createMeshBuffers( geometryGroup );
initMeshBuffers( geometryGroup, object );
if ( ! geometryGroup.__webglVertexBuffer ) {
geometry.verticesNeedUpdate = true;
geometry.morphTargetsNeedUpdate = true;
geometry.elementsNeedUpdate = true;
geometry.uvsNeedUpdate = true;
geometry.normalsNeedUpdate = true;
geometry.tangentsNeedUpdate = true;
geometry.colorsNeedUpdate = true;
createMeshBuffers( geometryGroup );
initMeshBuffers( geometryGroup, object );
}
geometry.verticesNeedUpdate = true;
geometry.morphTargetsNeedUpdate = true;
geometry.elementsNeedUpdate = true;
geometry.uvsNeedUpdate = true;
geometry.normalsNeedUpdate = true;
geometry.tangentsNeedUpdate = true;
geometry.colorsNeedUpdate = true;
}
......@@ -4571,16 +4571,12 @@ THREE.WebGLRenderer = function ( parameters ) {
if ( ! geometry.__webglVertexBuffer ) {
if ( geometry instanceof THREE.Geometry ) {
createLineBuffers( geometry );
initLineBuffers( geometry, object );
createLineBuffers( geometry );
initLineBuffers( geometry, object );
geometry.verticesNeedUpdate = true;
geometry.colorsNeedUpdate = true;
geometry.lineDistancesNeedUpdate = true;
}
geometry.verticesNeedUpdate = true;
geometry.colorsNeedUpdate = true;
geometry.lineDistancesNeedUpdate = true;
}
......@@ -4588,15 +4584,12 @@ THREE.WebGLRenderer = function ( parameters ) {
if ( ! geometry.__webglVertexBuffer ) {
if ( geometry instanceof THREE.Geometry ) {
createParticleBuffers( geometry );
initParticleBuffers( geometry, object );
createParticleBuffers( geometry );
initParticleBuffers( geometry, object );
geometry.verticesNeedUpdate = true;
geometry.colorsNeedUpdate = true;
geometry.verticesNeedUpdate = true;
geometry.colorsNeedUpdate = true;
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册