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;


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

Reply via email to