Page MenuHome

3D curve - bevel profile not deformed at corners to cope with 'shrinking' effect (works OK with 2D curves).
Closed, ArchivedPublic


System Information
windows xp, windows 7

Blender Version
Broken: (example: 2.76b f337ea)
Worked: (2.63a r46461)

Short description of error
when you bevel curve in 3D type it does not carry the same profile along the lenght as it should.
in 2.63a version it works better than in the newer ones but is also far from correct and acceptable working. when the curve turn in angle different than 90 degree the starting profile changes but should stay the same.nothing helps.none of changing settings. curve points etc
Exact steps for others to reproduce the error
open the attached file in 2.63a version and in 2.76b and look at the curve at the right which is 3D type. they look different, in 2.63a correct.



Event Timeline

daniel (midan) added a project: BF Blender.
daniel (midan) set Type to Bug.
daniel (midan) added a subscriber: daniel (midan).
daniel (midan) created this task.
daniel (midan) raised the priority of this task from to Needs Triage by Developer.

I downloaded the above file and played around with it.

I would have to agree that there is something seriously wrong with the projection of a curve along a curve.

It seems to work well enough in the 2D mode, but once in 3D mode the profile form is corrupted where the curve takes an angle or bend.

It is also worth noting that while testing this out I tried subdividing the curve while in edit mode to add extra points. I then moved these points off of the original plane of the curve (in Y) while in the shape 3D setting. Again, the profile was compromised at every bend or curve. The odd behaviour, however, was if one then toggled into the shape 2D setting. At that moment, all of my editing of the positions of the points (in Y) of the curve were lost. All points of the curve were simply mapped back into a single plane, the Y offset information and/or rotation of the angles of the arms of the points being trashed. Pressing the shape 3D button at the point did not restore the missing point information (although a simple UNDO would do so. This is pretty questionable behaviour.

It is perhaps best if some talented programmer put eyes on this function. It would be a real plus for the model-building, especially for those who want to do mechanical or architectural work.

Bastien Montagne (mont29) triaged this task as Confirmed, Medium priority.

Can confirm the issue, kinda unsure whether this is real bug or known limitation though, @Sergey Sharybin (sergey) should know?

@Ignatz (ignatz) I wonder why you’d expect from a 2D curve to keep 3D coordinates…

Bastien Montagne (mont29) renamed this task from curve 3D type bevel issue to 3D curve - bevel profile not deformed at corners to cope with 'shrinking' effect (works OK with 2D curves)..Jan 29 2016, 12:43 PM

I do not feel that the new title of this bug "bevel profile not deformed at corners to cope with 'shrinking' effect", actually describes the problem correctly.

The bevel profile should not 'shrink' at the corners. The truth of the matter is that the original profile should be projected onto the plane that exactly divides the two legs of the curve in 3D space.

I have attempted to demonstrate this with the attached blend file and associated images.

In the first image (pipes_01.jpg) at 'A' you have the behaviour of in blender of using a curve circle as a bevel object along a curve. It easy to see that where the curve takes a turn the profile is not correct. The profile of the circle along the curve is compromised and most definitely shrunk. But this should not be.

At 'B' in the same image I have attempted to show the series of straight tube sections that one would expect to recieve form the 3D bevel object function.

At 'C' and 'D' I have attempted to actually distill the desired corner profiles out my assemby of tubes. This is something which I could only achieve in a very crude way. Blender does not give me the tools with which to achieve this desired result.

The second image (pipes_02.jpg) shows the desired corner profiles (1, 2 & 3) more clearly.

Have to point this out, too.

I know it is not usually done to confuse an issue by mixing more than one buggy function into a single report.

However, since I was curious about the performance of 3D curve as a bevel object on a curve I also decided to put eyes on the Follow Curve modifier.

I find that the Follow Curve modifier evidently also uses the same incorrect code routine. It might be worth it to examine that at the same time.

If you examine the attached file and images (especially 'follow_curve modifier 02.jpg') you will see that the mesh tube which is folloing the curve is becoming stretched and squeezed without reason. The Z-axis of the mesh profile is continuously altering its rotation with respect to the axis of the curve it is following. This is not good.

This is such an important model-building funtion that it really should be made to work correctly.

I would like to spot that this is very old issue and very important and basic in modelling(but unuseful in this form right now). Please devs to make the thing works as expected

I politely suggest viewing the linked video for examples of how this very necessary feature is employed within the Sketchup program.

Obviously, the function is different within Blender, but the modeling application of the function is what is important.

You will notice all sorts of ways that the curve following along a curve is used to create architectural elements.

We cannot effectively do the same sorts of things given the limitations of the current code.

Think this is intentional, but checking on commits between 2.68a-2.69 (bisected down to rB4941cafa093d4e196aa57958c71a4e85910d7bac)

Sergey Sharybin (sergey) closed this task as Archived.Apr 26 2016, 3:09 PM

I can see why old behavior would be preferrable in certain cases, but as T36007 shows it's not always the case.

Surely some option could be added to support both cases, but then it all becomes to be quite tricky to work on splines: global option might be not granular enough, default value of that option is also another story. While curves in blender are really requiring some major refresh will consider this a TODO.

So thanks for the report, but closing it now.