Blended curve nor redering right

Next
 From:  NightCabbage
4101.1 
Hi Michael

I've just started using the Blend tool to get a nice smooth interpolated curve between 2 other curves.

Seems to work really well! :)

Only problem is that it doesn't display right some of the time.

I've attached a pic of what I mean (and the moi file).



The one on the left is what it should look like.
The one on the right is the exact same thing - but I've panned the view down by about 5 pixels, and all of a sudden, the blended curves turn into a straight lines!

Only seems to happen when zoomed in a bit of the way, and I haven't encountered this with curves created by other means.

Thanks!

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4101.2 In reply to 4101.1 
Hi NightCabbage, yeah that's a bug in the curve display engine. It's a cosmetic display bug though, your actual curve is fine.

It can happen when you've got a curve that is in just the right kind of "S" shape on the screen, and when that curve is made up of the minimal amount of control points for it so the curve is equivalent to a bezier segment (Blend will make this kind of curve).

Basically what happens is the curve display works by approximating the curve with lines, and it measures the midpoint of the line and compares the distance from that line midpoint to the midpoint of the actual curve. It decides to stop refining the curve when that measured distance is small enough - when it's less than a screen pixel in distance.

But if a bezier has got just the right kind of "S" shape on the screen then what happens is the midpoint of the line between the ends of the S can happen to be close to the midpoint of the actual curve, so for that particular shape only doing that one measurement can break down - that's what you are seeing in this particular case.

It could be fixed in the display engine by doing some additional checks of the line segments before deciding whether they have been refined enough. The problem is that adding additional checks will slow down the curve display mechanism for all curves by quite a bit, so fixing this bug can have some really negative impact on display performance, that's why I haven't tried to mess with it yet. At some point in the future I'll probably be able to give it a try but it has to be done very carefully so as not to impact performance very much, and it may even turn out that leaving the bug in place is better overall than slowing down the curve draw performance for all curves. It kind of depends on how much the performance is affected which requires a lot of benchmark testing to really understand well.

In the meantime if that's causing you a problem like if you need to make a screenshot of the particular view of the curve that it happens in, you should be able to get it to stop happening by inserting a point on the curve - if you use the Edit > Add pt command to add a point on the curve while the curve's control points are not currently being displayed that will add a knot to the curve, making it made up of 2 bezier spans instead of just 1 bezier span like a regular blend curve. That will then make the problem go away because the display starts out with a bezier decomposition of the curve.

- Michael

EDITED: 10 Mar 2011 by MICHAEL GIBSON

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
4101.3 
For the next version V 3 will be possible to publish a list of known bugs?
and solutions ;)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
4101.4 In reply to 4101.3 
Hi Pilou, yup that could be possible. Hopefully by the time v3 is done many will be dealt with though.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All