提交 ca05c86f 编写于 作者: A alteredq

Removed surprising bottleneck in WebGLRenderer.

I knew for loops iterating over properties were slower than numerical for loops but I didn't realize how bad it was.

Gained about 10 fps in performance test, and that was for for loop iterating over single property.

Also fixed broken examples with postprocessing.
上级 75952217
因为 它太大了无法显示 source diff 。你可以改为 查看blob
此差异已折叠。
......@@ -45,6 +45,8 @@
<script type="text/javascript" src="js/postprocessing/EffectComposer.js"></script>
<script type="text/javascript" src="js/postprocessing/RenderPass.js"></script>
<script type="text/javascript" src="js/postprocessing/ShaderPass.js"></script>
<script type="text/javascript" src="js/postprocessing/MaskPass.js"></script>
<script type="text/javascript" src="js/postprocessing/BloomPass.js"></script>
<script type="text/javascript" src="js/postprocessing/FilmPass.js"></script>
......
......@@ -42,6 +42,7 @@
<script type="text/javascript" src="js/postprocessing/EffectComposer.js"></script>
<script type="text/javascript" src="js/postprocessing/RenderPass.js"></script>
<script type="text/javascript" src="js/postprocessing/MaskPass.js"></script>
<script type="text/javascript" src="js/postprocessing/BloomPass.js"></script>
<script type="text/javascript" src="js/postprocessing/ShaderPass.js"></script>
......
......@@ -4207,7 +4207,6 @@ THREE.WebGLRenderer = function ( parameters ) {
}
return false;
};
......@@ -4246,9 +4245,9 @@ THREE.WebGLRenderer = function ( parameters ) {
// check all geometry groups
for ( g in geometry.geometryGroups ) {
for( var i = 0, il = geometry.geometryGroupsList.length; i < il; i ++ ) {
geometryGroup = geometry.geometryGroups[ g ];
geometryGroup = geometry.geometryGroupsList[ i ];
customAttributeDirty = areCustomAttributesDirty( geometryGroup );
......@@ -4400,7 +4399,7 @@ THREE.WebGLRenderer = function ( parameters ) {
var hash_array = [];
for ( i = 0, l = material.length; i < l; i++ ) {
for ( i = 0, l = material.length; i < l; i ++ ) {
if ( material[ i ] == undefined ) {
......@@ -4418,7 +4417,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
for ( f = 0, fl = geometry.faces.length; f < fl; f++ ) {
for ( f = 0, fl = geometry.faces.length; f < fl; f ++ ) {
face = geometry.faces[ f ];
materials = face.materials;
......@@ -4459,6 +4458,14 @@ THREE.WebGLRenderer = function ( parameters ) {
}
geometry.geometryGroupsList = [];
for ( var g in geometry.geometryGroups ) {
geometry.geometryGroupsList.push( geometry.geometryGroups[ g ] );
}
};
function addBuffer( objlist, buffer, object ) {
......@@ -5420,13 +5427,13 @@ THREE.WebGLRenderer = function ( parameters ) {
material, meshMaterial,
materials = [];
for ( m = 0, ml = object.materials.length; m < ml; m++ ) {
for ( m = 0, ml = object.materials.length; m < ml; m ++ ) {
meshMaterial = object.materials[ m ];
if ( meshMaterial instanceof THREE.MeshFaceMaterial ) {
for ( i = 0, l = geometryGroup.materials.length; i < l; i++ ) {
for ( i = 0, l = geometryGroup.materials.length; i < l; i ++ ) {
material = geometryGroup.materials[ i ];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册