Revision: 19949
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19949
Author:   campbellbarton
Date:     2009-04-27 19:53:41 +0200 (Mon, 27 Apr 2009)

Log Message:
-----------
TexVert sharing was disabled for flat faces, this is silly since a building or 
any other model with flat faces will often be able to share texverts.

Simple testcase with a subdivided cube used 1/3 as many texverts and spend half 
as much time in the rasterizer while profiling.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Rasterizer/RAS_MeshObject.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_TexVert.cpp

Modified: trunk/blender/source/gameengine/Rasterizer/RAS_MeshObject.cpp
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_MeshObject.cpp       
2009-04-27 16:44:02 UTC (rev 19948)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_MeshObject.cpp       
2009-04-27 17:53:41 UTC (rev 19949)
@@ -304,7 +304,7 @@
        slot = mmat->m_baseslot;
        darray = slot->CurrentDisplayArray();
 
-       if(!flat) {
+       { /* Shared Vertex! */
                /* find vertices shared between faces, with the restriction
                 * that they exist in the same display array, and have the
                 * same uv coordinate etc */
@@ -332,7 +332,7 @@
                slot->AddPolygonVertex(offset);
        poly->SetVertexOffset(i, offset);
 
-       if(!flat) {
+       { /* Shared Vertex! */
                SharedVertex shared;
                shared.m_darray = darray;
                shared.m_offset = offset;

Modified: trunk/blender/source/gameengine/Rasterizer/RAS_TexVert.cpp
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_TexVert.cpp  2009-04-27 
16:44:02 UTC (rev 19948)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_TexVert.cpp  2009-04-27 
17:53:41 UTC (rev 19949)
@@ -117,7 +117,9 @@
 // compare two vertices, and return TRUE if both are almost identical (they 
can be shared)
 bool RAS_TexVert::closeTo(const RAS_TexVert* other)
 {
-       return (m_flag == other->m_flag &&
+       return (
+               /* m_flag == other->m_flag && */
+               /* at the moment the face only stores the smooth/flat setting 
so dont bother comparing it */
                m_rgba == other->m_rgba &&
                MT_fuzzyEqual(MT_Vector3(m_normal), 
MT_Vector3(other->m_normal)) &&
                MT_fuzzyEqual(MT_Vector3(m_tangent), 
MT_Vector3(other->m_tangent)) &&


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to