[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13873] trunk/blender/source/blender/ render/intern/source/rayshade.c:
Brecht Van Lommel
brechtvanlommel at pandora.be
Tue Feb 26 14:05:19 CET 2008
Revision: 13873
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13873
Author: blendix
Date: 2008-02-26 14:05:18 +0100 (Tue, 26 Feb 2008)
Log Message:
-----------
Tweak bugfix #8347 a bit, the self intersection problem with raytraced
shadows and jittering.
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/rayshade.c
Modified: trunk/blender/source/blender/render/intern/source/rayshade.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rayshade.c 2008-02-26 11:48:12 UTC (rev 13872)
+++ trunk/blender/source/blender/render/intern/source/rayshade.c 2008-02-26 13:05:18 UTC (rev 13873)
@@ -1808,11 +1808,6 @@
pos[0] += shi->dxco[0]*jit[0] + shi->dyco[0]*jit[1];
pos[1] += shi->dxco[1]*jit[0] + shi->dyco[1]*jit[1];
pos[2] += shi->dxco[2]*jit[0] + shi->dyco[2]*jit[1];
-
- /* bias away somewhat to avoid self intersection */
- pos[0] -= jitbias*shi->vn[0];
- pos[1] -= jitbias*shi->vn[1];
- pos[2] -= jitbias*shi->vn[2];
}
if (do_soft) {
@@ -1836,6 +1831,13 @@
s[2] = samp3d[0]*ru[2] + samp3d[1]*rv[2];
VECCOPY(samp3d, s);
+
+ if(jitbias != 0.0f) {
+ /* bias away somewhat to avoid self intersection */
+ pos[0] -= jitbias*v[0];
+ pos[1] -= jitbias*v[1];
+ pos[2] -= jitbias*v[2];
+ }
}
else {
/* sampling, returns quasi-random vector in [sizex,sizey]^2 plane */
@@ -1850,6 +1852,19 @@
} else {
VECCOPY(isec->end, vec);
}
+
+ if(jitbias != 0.0f && !(do_soft && lar->type==LA_LOCAL)) {
+ /* bias away somewhat to avoid self intersection */
+ float v[3];
+
+ VECSUB(v, pos, isec->end);
+ Normalize(v);
+
+ pos[0] -= jitbias*v[0];
+ pos[1] -= jitbias*v[1];
+ pos[2] -= jitbias*v[2];
+ }
+
VECCOPY(isec->start, pos);
More information about the Bf-blender-cvs
mailing list