[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27119] branches/render25/intern/iksolver/ intern/TNT/svd.h: Rende Branch: irradiance caching, fix part of the black pixels with
Brecht Van Lommel
brecht at blender.org
Wed Feb 24 13:42:15 CET 2010
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];
More information about the Bf-blender-cvs
mailing list