Ignore:
Timestamp:
01/05/14 00:40:36 (11 years ago)
Author:
epyon
Message:
  • obj_loader - safety net for degenerate triangles
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/formats/obj_loader.cc

    r224 r225  
    195195                float t2 = w3.y - w1.y;
    196196
    197                 float r = 1.0f / (s1 * t2 - s2 * t1);
     197                float stst = s1 * t2 - s2 * t1;
     198                float r = 0.0f;
     199                if (stst > 0.0f || stst < 0.0f) r = 1.0f / stst;
    198200
    199201                vec3 sdir = ( t2 * xyz1 - t1 * xyz2 ) * r;
     
    216218                const vec3& n = vn[a];
    217219                const vec3& t = tan1[a];
    218 
    219                 tg[a] = vec3( glm::normalize(t - n * glm::dot( n, t )) );
    220                 //tg[a][3] =    (glm::dot(glm::cross(n, t), tan2[a]) < 0.0f) ? -1.0f : 1.0f;
     220                if ( ! (t.x == 0.0f && t.y == 0.0f && t.z == 0.0f) )
     221                        tg[a] = vec3( glm::normalize(t - n * glm::dot( n, t )) );
     222                        //tg[a][3] =    (glm::dot(glm::cross(n, t), tan2[a]) < 0.0f) ? -1.0f : 1.0f;
    221223        }
    222224
Note: See TracChangeset for help on using the changeset viewer.