Jump to content

smoothness of Bezier patches


Richard Baker

Recommended Posts

My son asks

How do I enforce continuity in a grid of Bezier surfaces?  I know that the two adjacent control points at the border of a Bezier curve have to be co-linear in the one-dimensional case.  But how do I extend this to surfaces in three dimensional space?  Which points would have to be co-planar? 

Link to comment
Share on other sites

I added weights to my Bernstein polynomials and now I believe I will have more freedom in the shapes I can create.  But the original question still stands; given a NURBS surface defined by control points and weights under what conditions will an adjacent NURBS surface have gcontinuity?

Link to comment
Share on other sites

On 10/29/2021 at 12:30 AM, Richard Baker said:

How do I enforce continuity in a grid of Bezier surfaces? 

A bezier consists of two endpoints and two control points. The endpoint from one bezier must be in the same position as the endpoint from the other bezier. The control point-endpoint line from one bezier must form a straight line with the control point-endpoint from the other bezier. An equal slope means a smooth transition between patches.

Edited by Sensei
Link to comment
Share on other sites

OK. I used a 3D application to visualize it in 2 dimensions.

Below we can see 3 beziers. A straight line (just to visualize) is going from the control point of the 1st bezier, then through the endpoint shared by 1st and 2nd bezier, then to the control point of the 2nd bezier.

1249416872_BezierSmoothPatch.png.eb6a9c170b70f8dc5ddac70532e40452.png

A bezier patch must be created from four beziers, which have 4 endpoints and 8 control points.

 

Move the control points so as to break the straight line (slope) between them, and you will lose smoothness:

663633445_BezierNotSmoothPatch.png.3faf19fe15dabb92c71c1f0d4c84101d.png

Edited by Sensei
Link to comment
Share on other sites

I had to explain what you graphed, so it is iffy whether he has the mental picture of what you graphed.

I took the tensor product of two bezier curves where U and V are the parameters and now I have a bezier surface that gives the X,Y,and Z coordinates in terms of U and V. Now that gives me (for the cubic case) four control points times four control points which is sixteen control points where you have four control points going in the V direction and four going in the U direction.  I am already aware of the case where we are dealing with a two dimensional curve.  But how do I generalize these results to the three dimensional case of the surface?

Link to comment
Share on other sites

2 hours ago, Richard Baker said:

I had to explain what you graphed, so it is iffy whether he has the mental picture of what you graphed.

I took the tensor product of two bezier curves where U and V are the parameters and now I have a bezier surface that gives the X,Y,and Z coordinates in terms of U and V. Now that gives me (for the cubic case) four control points times four control points which is sixteen control points where you have four control points going in the V direction and four going in the U direction. 

I used the word "endpoint" to make distinction from a control point that not lie on the bezier curve.

2 hours ago, Richard Baker said:

I am already aware of the case where we are dealing with a two dimensional curve.  But how do I generalize these results to the three dimensional case of the surface?

I made these four beziers (on the left), it has four endpoints (as you can see), and some control points flying in a void (the curve does not go through them *), and frozen to polygons version (on the right).

*) they can be disconnected ("unweld" tool in 3D app), and instead of 4, we will have 8 of them..

638390161_BezierPatchFrozen.thumb.png.ffe57fba984fdcc6d3ebf410cf18afc3.png

Is this what you want to achieve? (and you call it "Bezier patch"?)

Are you doing it in some programming language like C/C++ with OpenGL/DirectX for visualization?

 

Routine can look like: freeze each bezier to well-defined number of points and interpolate frozen points.

Edited by Sensei
Link to comment
Share on other sites

Just finished talking with him.  I think he can get a good idea of what you are showing him from zoom visits.  He is now using NURBS.  He showed me an ouroboros he had made, so he thinks he has figured it out.  Thanks.  More questions coming with next audio call. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.