NURBS curves and surfaces are defined by number of four dimensional control points where the first three components define position in 3D space and the fourth component acts as a weight parameter. Increasing the weight pulls the curve towards the control polygon. Thanks to this property, NURBS curves can be used for representing quadric surfaces accurately.
Non-uniform parametrization allows representation of standard curves and surfaces. For example, one can use NURBS to represent standard Bezier and B-spline surfaces.
Realsoft 3D uses a very standard NURBS representation. Only the 'Closed' attribute needs some special attention for example when exporting Realsoft 3D NURBS objects to other applications. Many applications support only open NURBS curves and surfaces.
![]() |
A NURBS curve is defined by the following attributes:
|
End condition: Max Multiplicity end condition pulls an open curve to the first and the last control points. Phantom end condition uses a similar parametrization for the end points as for the interior points.
Min: The start parameter value for curve evaluation. With this and the next 'max' value, you can limit a suitable sub section from the curve.
Max: The end parameter value for curve evaluation.
Order: The order of the curve. The higher the order, the smoother the curve. Order = 2 produces a polyline. The most usual smooth NURBS curve type has order 4.
The Rendering frame includes settings which control NURBS curve rendering in the photorealistic render engine. The curve can be made visible in the final rendering using the Gen tab's visibility options.
Max. Displacement: The maximal amount of curve displacement defined either by moving the curve points or by changing the radius in a 'Scanline' shader.
Head radius [mm]: Thickness of the curve start (in millimeters).
Tail radius [mm]: Thickness of the curve end (in millimeters).
Radius Channel: An optional channel defining the curve diameter. If set, replaces the start and end radius values. The thickness values can be defined by creating a VSL material, where a scanline type shader assigns the values to the selected channel, and mapping the material to the curves. For example:
Material_for_Curves Scanline my_diameter_channel = Noise(map coords)
Quality: Rendering quality for curves. A smooth NURBS curve is drawn using short segments in the scanline or ray trace rendering. This value defines how densely the curve is subdivided to intervals. The higher the value, the smoother the result appears. The value is used per control point interval, so the same quality value works as well with a 5 point curve as with a 100 point curve.
![]() |
Note |
---|---|
The NURBS curve supports also curve displacement by materials the same way as the thickness control presented above: Material_for_Curves Scanline coordinates += Noise(map coords) |
A ray traced curve defines the following geometry information that is available for VSL shaders:
|
![]() |
U Direction, V Direction, Normal: U direction is the tangential head-tail direction of the curve in the evaluated point. V direction is a direction orthogonal to U direction. In a Scanline shader, it defines the direction where the V component of UV coordinates is zero, and Normal channel is the cross product of the U and V directions. These directions are useful when displacing the curve position orthogonal from the curve tangent. In other shaders, where a real surface point is already examined, Normal is the usual surface normal and V direction is the cross product of U direction and Normal.
Scanline: If set, the curve is rendered using scanline geometry. This rendering method is often quicker than the ray trace approach, but scanline curves are invisible in reflections and do not cast ray traced shadows. The curve shape controls are the same as in ray tracing.
Post Process: Draws the curve in post processing phase, which is the last step in the rendering pipeline. Post processed curves do not react with lights or cast shadows, and do not show up in reflections. Due to the simplicity of the rendering method, they usually render quite fast. With this method, you can add for example text labels or rain effects into the image.
The curve shape can be controlled the same way using VSL materials as in ray tracing and scanline rendering. To define a color for a post processed curve, use a Post Particles shader. Color, Alpha and Fade channels defined in that shader control the rendering. Fade defines transparency.
|
![]() |