[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28096] branches/render25/source/blender/ render/intern/source/object_displace.c: Render Branch: clip displacement values by the displacement bound.
Brecht Van Lommel
brecht at blender.org
Thu Apr 8 18:19:09 CEST 2010
Revision: 28096
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28096
Author: blendix
Date: 2010-04-08 18:19:09 +0200 (Thu, 08 Apr 2010)
Log Message:
-----------
Render Branch: clip displacement values by the displacement bound. Ideally this
should be computed automatic, but this at least helps finding out if it's too low.
Modified Paths:
--------------
branches/render25/source/blender/render/intern/source/object_displace.c
Modified: branches/render25/source/blender/render/intern/source/object_displace.c
===================================================================
--- branches/render25/source/blender/render/intern/source/object_displace.c 2010-04-08 16:08:06 UTC (rev 28095)
+++ branches/render25/source/blender/render/intern/source/object_displace.c 2010-04-08 16:19:09 UTC (rev 28096)
@@ -131,7 +131,7 @@
static void displace_render_vert(Render *re, ObjectRen *obr, ShadeInput *shi, VertRen *vr, int vindex, float scale[3])
{
- float displacement[3];
+ float displacement[3], bound= obr->ob->displacebound;
/* setup shadeinput for vertex */
displace_shadeinput_init_vertex(re, shi, vr);
@@ -139,8 +139,14 @@
/* compute displacement from materials */
mat_displacement(re, shi, displacement);
+ mul_v3_v3(displacement, scale);
+
+ /* clamp by displacement bound */
+ if(fabs(dot_v3v3(displacement, displacement)) > bound*bound)
+ mul_v3_fl(displacement, bound/len_v3(displacement));
+
/* add displacement to vertex */
- madd_v3_v3v3(vr->co, displacement, scale);
+ add_v3_v3(vr->co, displacement);
/* tag vertex as done */
vr->flag |= 1;
More information about the Bf-blender-cvs
mailing list