Commit: db28ff54d650af69bfa6001c60548fcd689382e2
Author: Tamito Kajiyama
Date:   Tue Apr 5 16:08:45 2016 +0900
Branches: master
https://developer.blender.org/rBdb28ff54d650af69bfa6001c60548fcd689382e2

Fix T47705: Freestyle line glitch.

The addressed issue is a regression from Blender 2.75, after the internal
switch from double to single precision floating-point numbers in the
Freestyle code base.  Face normal calculations require the higher
precision during the computations, even though the results can be stored
as single precision numbers.

===================================================================

M       source/blender/freestyle/intern/winged_edge/WEdge.cpp

===================================================================

diff --git a/source/blender/freestyle/intern/winged_edge/WEdge.cpp 
b/source/blender/freestyle/intern/winged_edge/WEdge.cpp
index 87ca3a4..99aa2d2 100644
--- a/source/blender/freestyle/intern/winged_edge/WEdge.cpp
+++ b/source/blender/freestyle/intern/winged_edge/WEdge.cpp
@@ -640,18 +640,19 @@ WFace *WShape::MakeFace(vector<WVertex *>& iVertexList, 
vector<bool>& iFaceEdgeM
        vector<WVertex *>::iterator it;
 
        // compute the face normal (v1v2 ^ v1v3)
-       WVertex *v1, *v2, *v3;
+       // Double precision numbers are used here to avoid truncation errors 
[T47705]
+       Vec3r v1, v2, v3;
        it = iVertexList.begin();
-       v1 = *it;
+       v1 = (*it)->GetVertex();
        it++;
-       v2 = *it;
+       v2 = (*it)->GetVertex();
        it++;
-       v3 = *it;
+       v3 = (*it)->GetVertex();
 
-       Vec3f vector1(v2->GetVertex() - v1->GetVertex());
-       Vec3f vector2(v3->GetVertex() - v1->GetVertex());
+       Vec3r vector1(v2 - v1);
+       Vec3r vector2(v3 - v1);
 
-       Vec3f normal(vector1 ^ vector2);
+       Vec3r normal(vector1 ^ vector2);
        normal.normalize();
        face->setNormal(normal);

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

Reply via email to