Revision: 27119
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27119
Author:   blendix
Date:     2010-02-24 13:42:15 +0100 (Wed, 24 Feb 2010)

Log Message:
-----------
Rende Branch: irradiance caching, fix part of the black pixels with
a division by zero check in the TNT SVD code.

Modified Paths:
--------------
    branches/render25/intern/iksolver/intern/TNT/svd.h

Modified: branches/render25/intern/iksolver/intern/TNT/svd.h
===================================================================
--- branches/render25/intern/iksolver/intern/TNT/svd.h  2010-02-24 11:03:22 UTC 
(rev 27118)
+++ branches/render25/intern/iksolver/intern/TNT/svd.h  2010-02-24 12:42:15 UTC 
(rev 27119)
@@ -349,8 +349,9 @@
 
                                for (j = k; j < p-1; j++) {
                                        typename MaTRiX::value_type t = 
hypot(f,g);
-                                       typename MaTRiX::value_type cs = f/t;
-                                       typename MaTRiX::value_type sn = g/t;
+                                       /* division by zero checks added to 
avoid NaN (brecht) */
+                                       typename MaTRiX::value_type cs = (t == 
0.0f)? 0.0f: f/t;
+                                       typename MaTRiX::value_type sn = (t == 
0.0f)? 0.0f: g/t;
                                        if (j != k) {
                                                e[j-1] = t;
                                        }
@@ -366,8 +367,9 @@
                                        }
 
                                        t = hypot(f,g);
-                                       cs = f/t;
-                                       sn = g/t;
+                                       /* division by zero checks added to 
avoid NaN (brecht) */
+                                       cs = (t == 0.0f)? 0.0f: f/t;
+                                       sn = (t == 0.0f)? 0.0f: g/t;
                                        s[j] = t;
                                        f = cs*e[j] + sn*s[j+1];
                                        s[j+1] = -sn*e[j] + cs*s[j+1];


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

Reply via email to