You are viewing RenderMan 22 documentation which is not the current release. You may view the current documentation by visiting the home page.

Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Contents

 

Introduction

Polygons (and collections of adjoining polygons that form polyhedra or poly meshes) are by far the most common type geometry used in computer graphics. While they suffer from a number of drawbacks when compared to other surfaces like subdivision meshes, they are also extremely efficient to render. This consideration often outweighs the drawbacks.

Polygons come in many forms, and renderers often impose arbitrary constraints upon their representation (such as supporting only triangles or quadrilaterals, or requiring that all faces be planar). RenderMan has no such constraints: it supports all forms of polygons ranging from simple convex planar polygons, to complicated non-planar concave polygons with many sides and even with interior holes. Concave polygons that support holes are referred to in RenderMan as general polygons; they have no constraints, but are slightly less optimal in terms of rendering. The choice of whether to emit polygons as general polygons or regular polygons is usually automatically determined by the bridge application, like Maya, in cooperation with the modeling program; often, it may be preferable for the modeling program to tessellate general polygons to simpler polygons before sending them to RenderMan to ensure consistency.

Considerations

Polygons are very efficient in RenderMan, particularly when using polyhedron representations where vertices are shared by multiple polygons. By the use of compression techniques, the renderer can render billions upon billions of polygons in a reasonable amount of memory. Because of this efficiency, polygons are an excellent choice for very detailed surfaces, particularly hard geometry with sharp angles such as buildings.

However, when rendering smooth, organic surfaces such as human characters, one may require a large number of polygons in order to create a smooth surface; otherwise, undesirable artifacts such as faceting may be visible. This problem may be improved by using smoothed normals, which reduce the appearance of facets. Unfortunately, smoothed normals will not help silhouette edges; if the profile of the geometry has an angular appearance, only the addition of more polygons will smooth out the edge. In such cases, the use of subdivision surfaces may be preferable because they always have a smooth appearance; however, subdivision surfaces come at an additional cost in memory and time. Polygonal meshes that obey a few constraints can be easily converted into subdivision surfaces.

Polygonal meshes, by their nature, do not have a well defined default parameterization; without additional UV or texture coordinates, texturing a raw polygon mesh can be difficult. Workflows to create UV coordinates for polygonal meshes using UV editors are well established; other workflows for texturing polygons that do not require UV coordinates, including 3D projections, or the use of PTex or UDIM textures, also exist.

The interpolation of variables attached to polygonal geometry is inherently ill-defined when dealing with polygons that have more than four sides. RenderMan tries to use interpolation schemes that are "least surprising", but these schemes are still arbitrary and may also vary depending on whether the polygons are non-planar, concave, or have holes. These schemes may not be the same as those used by modeling or texture paint programs, so disagreements between the rendered result and texture preview may result. Generally, if these problematic polygons are large enough that the choice of interpolation leads to visual artifacts, it may be advisable to avoid them and ensure that the polygons sent to RenderMan have no more than four sides. Even on three or four sided surfaces, the interpolation of smoothed normals on a large polygon face is a poor approximation of the actual behavior of normals on a smooth surface. For small polygon faces (coming from very detailed geometry), this problem is usually negligible.

Special care must be taken when applying displacement to polygonal geometry. Without the use of smoothed normals, displacement in the direction of the surface normal will unavoidably tear the geometry at the faces leading to visible holes and cracks. Even with smoothed normals, care must be taken to ensure that the displacement function is consistent at face boundaries, specially when using large texture filter sizes. Specialized programs like ZBrush or Mudbox that generate texture maps for displacement on polygons take this into account.