forked from bartvdbraak/blender
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.
This commit is contained in:
parent
352eaccd5d
commit
dc664e3925
@ -304,7 +304,7 @@ void RAS_MeshObject::AddVertex(RAS_Polygon *poly, int i,
|
||||
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 @@ void RAS_MeshObject::AddVertex(RAS_Polygon *poly, int i,
|
||||
slot->AddPolygonVertex(offset);
|
||||
poly->SetVertexOffset(i, offset);
|
||||
|
||||
if(!flat) {
|
||||
{ /* Shared Vertex! */
|
||||
SharedVertex shared;
|
||||
shared.m_darray = darray;
|
||||
shared.m_offset = offset;
|
||||
|
@ -117,7 +117,9 @@ void RAS_TexVert::SetTangent(const MT_Vector3& tangent)
|
||||
// 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)) &&
|
||||
|
Loading…
Reference in New Issue
Block a user