Instances of this class contain a complete surface approximation setting that can be used to set the approximation for NURBS objects described by NURBSSet values or directly in existing NURBS scene node. You use the setViewApproximation()
and setRenderApproximation()
functions on existing scene nodes and the .viewApproximation
and .renderApproximation
properties on NURBSSet values.
Constructors
NURBSSurfaceApproximation [<property>:<val>]...
Any of the object's properties may be set via optional keyword arguments on the constructor.
<nurbsset>.viewApproximation <nurbsset>. renderApproximation
Properties
<nurbssurfaceapproximation>.config : #isoOnly, #isoAndMesh, #meshOnly
This property determines what is displayed in the interactive or scanline renderer.
If #isoOnly
is specified, only Iso lines are displayed. Iso (parametric) lines are similar to contour lines. The lines show where the NURBS surface has a constant U or V value or both. Iso line representations can be less crowded and easier to visualize than wire mesh representations.
If #isoAndMesh
is specified, Iso lines and the mesh are displayed. When chosen, wireframe viewports display iso line representations of the surface, and shaded viewports display the shaded surface.
If #meshOnly
is specified, just the mesh is displayed. When chosen, wireframe viewports display the surface as a wire mesh, and shaded viewports display the shaded surface. In wireframe viewports, this option lets you see the curve approximation used for viewports.
<nurbssurfaceapproximation>.isoULines : integer
This is used with the ISO line display. This is the number of additional interior iso lines in U (there are always lines along the outer edges).
<nurbssurfaceapproximation>.isoVLines : integer
This is used with the ISO line display. This is the number of additional interior iso lines in V (there are always lines along the outer edges).
<nurbssurfaceapproximation>.meshUSteps : integer
This is used for parametric tessellation. This is the number of tessellations in U. This is the number of sub-divisions for a knot span for the surface.
<nurbssurfaceapproximation>.meshVSteps : integer
This is used for parametric tessellation. This is the number of tessellations in V. This is the number of sub-divisions for a knot span for the surface.
<nurbssurfaceapproximation>.meshApproxType :#parametric, #spatial, #curvature, #regular, #spatialAndCurvature
This property controls the type of surface tessellation.
If #parametric
is specified, parametric tessellation is performed. This provides for a fixed number of meshUSteps
by meshVSteps
tessellations. There are meshUSteps
times meshVSteps
quadrilaterals and each one is split up into two triangles.
If #spatial
is specified, spatial tessellation is performed. This uses spacialEdge
as its parameter. This specifies that the size of the tessellation will be the spacialEdge
length. In view dependent tessellation spacialEdge
is specified in pixels.
If #curvature
is specified, view dependent tessellation is performed. This uses the curvatureAngle
and curvatureDistance
property values.
If #regular
is specified, a fixed, regular tessellation across the surface is performed.
If #spatialAndCurvature
is specified, a tessellation method which combines the spatial and curvature methods is used. This uses the spacialEdge
, curvatureAngle
, and curvatureDistance
property values.
<nurbssurfaceapproximation>.spacialEdge : float
This is the length of an edge to use in spatial ( #spatial
) tessellation. In view dependent tessellation this is specified in pixels. If not in view dependent tessellation this is a percentage of the bounding box diagonal length.
<nurbssurfaceapproximation>.curvatureAngle : float
This is used in curvature dependent tessellation ( #curvature
). If 0.0 is specified this is ignored. If specified this ensures that no two adjacent face normals exceed this angle between them. This value is specified in radians.
<nurbssurfaceapproximation>.curvatureDistance : float
This is used in curvature dependent tessellation ( #curvature
). If 0.0 is specified this is ignored. This specifies a distance that cannot be exceeded between a vertex on the mesh and the mathematical surface. This is defined as a percentage of the diagonal of the bounding box of the individual surface in object space. For instance if this was set to 1.0, the allowable error in generating a tessellation would be 1% of the bounding box diagonal distance of the surface. This would be 1/100 (1%) of the diagonal distance of the bounding box. In this way if an object is scaled the tessellation remains the same. Additionally, if you have an object with a big surface and a little surface, the smaller surface will get tessellated more finely because its own bounding box is used. This prevents the smaller surface from just becoming a single triangle for example.
<nurbssurfaceapproximation>.viewDependent : boolean
Specifies if this is view dependent tessellation. If true
this will tessellate less finely the farther away from the camera the object is. If false
the tessellation does not change based on distance from the camera.
<nurbssurfaceapproximation>.merge : float
Controls the tessellation of surface sub-objects whose edges are joined or very nearly joined. When input to a modifier (such as Mesh Select) requires a mesh, and when NURBS surfaces are tessellated for production rendering, by default the software adjusts the tessellation of adjoining surfaces to match each other, in terms of the number of faces along the edges. The Merge parameter controls how this is done. If Merge is zero, adjoining faces are unchanged. Increasing the value of Merge increases the distance the software uses to calculate how edges should match, guaranteeing no gaps between the surfaces when they are rendered. Default is 0.0.
Available in 3ds Max 8 and higher.
<nurbssurfaceapproximation>.subdivStyle : name
Get/Set the Subdivision style in the Advanced Surface Approximation dialog. Possible values are #tree, #grid, #delaunay
.
Available in 3ds Max 8 and higher.
<nurbssurfaceapproximation>.minLevels : float
Get/Set the minimum number of Subdivision levels in the Advanced Surface Approximation dialog.
Available in 3ds Max 8 and higher.
<nurbssurfaceapproximation>.maxLevels : float
Get/Set the maximum number of Subdivision levels in the Advanced Surface Approximation dialog.
Available in 3ds Max 8 and higher.
<nurbssurfaceapproximation>.maxTris : integer
Get/Setthe maximum number of triangles in the Advanced Surface Approximation dialog.
Available in 3ds Max 8 and higher.