Cycles: Avoid unnecessary dot products in Mesh/Hair export code.
This commit is contained in:
@@ -437,7 +437,7 @@ void ExportCurveTriangleGeometry(Mesh *mesh, ParticleCurveData *CData, int resol
|
||||
continue;
|
||||
|
||||
float3 firstxbasis = cross(make_float3(1.0f,0.0f,0.0f),CData->curvekey_co[CData->curve_firstkey[curve]+1] - CData->curvekey_co[CData->curve_firstkey[curve]]);
|
||||
if(len_squared(firstxbasis)!= 0.0f)
|
||||
if(!is_zero(firstxbasis))
|
||||
firstxbasis = normalize(firstxbasis);
|
||||
else
|
||||
firstxbasis = normalize(cross(make_float3(0.0f,1.0f,0.0f),CData->curvekey_co[CData->curve_firstkey[curve]+1] - CData->curvekey_co[CData->curve_firstkey[curve]]));
|
||||
|
||||
@@ -249,8 +249,8 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector<
|
||||
bool smooth = f->use_smooth();
|
||||
|
||||
if(n == 4) {
|
||||
if(len_squared(cross(mesh->verts[vi[1]] - mesh->verts[vi[0]], mesh->verts[vi[2]] - mesh->verts[vi[0]])) == 0.0f ||
|
||||
len_squared(cross(mesh->verts[vi[2]] - mesh->verts[vi[0]], mesh->verts[vi[3]] - mesh->verts[vi[0]])) == 0.0f) {
|
||||
if(is_zero(cross(mesh->verts[vi[1]] - mesh->verts[vi[0]], mesh->verts[vi[2]] - mesh->verts[vi[0]])) ||
|
||||
is_zero(cross(mesh->verts[vi[2]] - mesh->verts[vi[0]], mesh->verts[vi[3]] - mesh->verts[vi[0]]))) {
|
||||
mesh->set_triangle(ti++, vi[0], vi[1], vi[3], shader, smooth);
|
||||
mesh->set_triangle(ti++, vi[2], vi[3], vi[1], shader, smooth);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user