Revision: 38726
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38726
Author:   aligorith
Date:     2011-07-26 13:09:10 +0000 (Tue, 26 Jul 2011)
Log Message:
-----------
F-Curve Drawing - Smoother curves

Bezier curves are now drawn smoother (i.e. less segmented), especially
for curve segments where there is a very large vertical displacement
over a short period of time (i.e. 120 degrees rotation over 1 frame)
and/or often when zoomed in a bit too.

- Made the resolution calculation take the vertical distance into
account too, instead of just the horizontal distance.
- Segment multiplier changed from 3 to 5, as this seems to give better
zoomed-in performance.

Modified Paths:
--------------
    branches/soc-2011-pepper/source/blender/editors/space_graph/graph_draw.c

Modified: 
branches/soc-2011-pepper/source/blender/editors/space_graph/graph_draw.c
===================================================================
--- branches/soc-2011-pepper/source/blender/editors/space_graph/graph_draw.c    
2011-07-26 13:05:22 UTC (rev 38725)
+++ branches/soc-2011-pepper/source/blender/editors/space_graph/graph_draw.c    
2011-07-26 13:09:10 UTC (rev 38726)
@@ -706,12 +706,11 @@
                         *      - resol determines number of points to sample 
in between keyframes
                         */
                        
-                       /* resol not depending on horizontal resolution 
anymore, drivers for example... */
-                       // TODO: would be nice to make this depend on the scale 
of the graph too...
+                       /* resol depends on distance between points (not just 
horizontal) OR is a fixed high res */
                        if (fcu->driver) 
                                resol= 32;
                        else 
-                               resol= (int)(3.0*sqrt(bezt->vec[1][0] - 
prevbezt->vec[1][0]));
+                               resol= (int)(5.0*len_v2v2(bezt->vec[1], 
prevbezt->vec[1]));
                        
                        if (resol < 2) {
                                /* only draw one */
@@ -721,6 +720,7 @@
                        }
                        else {
                                /* clamp resolution to max of 32 */
+                               // NOTE: higher values will crash
                                if (resol > 32) resol= 32;
                                
                                v1[0]= prevbezt->vec[1][0];

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

Reply via email to