Hey everyone... It's been a while since i've done much work on the nurbs editor. I'm about to get back to it -- and i'd like to get as much feedback as possible from anyone that cares. you can download the current version of it here: www.plasmadevelopment.com/software Please be aware that this is not an update or anything-- i would just like to get some more feedback so i can make changes that would be helping everyone instead of just a one or two people. I'm also currently writing a free alternative to Photoworks. I don't have a version of this software ready to test yet, but if you'd like to get a copy when it's ready, let me know. God bless! _andrew_
Alternative to Photoworks -- Very interested - Let us know when you want any testing or feedback on what UI is abetter that the existing. Regards Jonathan
Hey Rick, Essentially, this editor will allow you to pick any face and convert it to a nurbs surface. From there, you can grab the various surface points and drag them around to edit the topology of the surface. the control points work off of a 3D sketch, so you can actually constrain the points to things and the surface will rebuild accordingly. _andrew_
... From there, you can grab the various surface points Are you actually exposing the NURBS control vertices (which would allow preservation of boundary conditions by avoiding the defining CV's) or is it something else (like the old Acad / MDT point edit)?
No, It doesn't preserve boundary conditions. you have access to all of the points that define a surface. you can also appoximate these surfaces to lower or raise the number of CVs that are generated. If you want to preserve the boundary conditions, then i would recomend not moving the outer 3 sets of CVs.
Outer 4 if it's cubic IIRC. Is it possible you are talking about Beziers or basis splines or are assuming continuity greater than G2? I sorta get the feeling you might be thinking in terms of conditions where control vertices are "shared" by boundary conditions like a conic blend taken to higher degrees...? Don't think that happens in any of the mechanical or "lower end" programs, does it?. About the most exotic application I've seen (not that I've seen a lot, even among "low end" programs) a cubic with no internal knots put to is a G1 (because it allows for inflections?) blend. Nor will any of them calculate continuity beyond second derivatives, as far as I know. Anyway, if my question to Andrew were to be more specific it might be something like: Given a surface, degree 3 or 4, with five CV's (U&V), geometric tangency defined on four sides; if the center CV is manipulated will the tangent boundary conditions be preserved? If the "point" being manipulated is a CV the answer will be; yes. I've seen routines that, in the same circumstances, would leave only the corner CV's undisturbed unless some sort of "cone of influence" parameter is defined which indicates the user is not manipulating discrete control vertices.
The degree of a single "segment" polynomial curve that exactly interpolates N points (general case) is N-1. It has N-1 non-trivial derivatives (general case). The same applies to surfaces and any curve *on* them IIRC. Some systems support NURBS of at least degree 17, last I knew. The polynomials still have them no matter what the applications software will analyze for you. Recall jb's recent silly posts about generating surface edge curves to "fix" his botched models? For C1, C2, .....? IIRC the third point in from the edge should change C2 but not C1, for degree 3. The center point that you mention would be the third point in from any edge. While the corner CVs (if I'm reading this correctly) would be unchanged their interpolating surface would not be.
Exactly. I believe Cliff was referring to maintaining G3 continuity. High-order Bezier surfaces based on the bernstien's polynomials model give absolutely no control -- the points have very little influence. The surface is a true NURBS surface. meaning if you grab that center vertex - you can drag it from here to mars and the border's TANGENCY (G1) will not change. assuming the outer Hope that helps.
I think I see what you are saying. Your definition of "boundary condition", though is related to the third (fourth CV) and higher derivatives, whereas Andrew and I are limiting our concerns to G0 thru G2 because that's all we are capable of defining and maintaning (using "mid range mechanical modelers, Rhino, etc.). What happens beyond the third CV is manual manipulation eyeballing guess work type stuff. While the systems I'm refering to "support" (translates to "can read without screwing it up" or maybe "can interpolate from user defined points") higher degree entities they do not support the higher order derivative functions / higher degrees of continuity, can't create a G3, 4, 5, ... blend. I spend too much time on NG's without keeping up with all that stuff. 8~) G1 will be maintained. (I'm sure I don't understand this stuff well enough to get off into parameterization and "C" conditions. I gather "C" is "G" with additional requirments, but that's the extent of it.) The third CV will establish G2 continuity for degree 3, 4, 5, ..., entities (no?), but I was asking about maintaining G1 conditions while manipulating that point. The effect of the editing function I was describing will deform a planar surface into something resembling a paraboloid.
The first two points from the edge will control G1/C1 IIRC. Going to 3 controls G2/C2. Hence the third point in can be altered while maintaining the first derivative at the edge IIRC. But also impact the surface conditions at the edges ... not where the edge is, just the surface that goes to it.