<< Prev Next >>


Anatomy of a Curved Poly Model

A Curved Poly is made of many elements, in a way which is similar to polygonal meshes, but with much more features which need to be understood if you want to take control of any aspect of making Curved Polys. There are a total of 6 element types in a Curved Poly:

  • Vertices: points.
  • Handles: handles are used to control the shape of curved edges.
  • Edges: edges connect vertices.
  • Polygons: a polygon is a piece of surface built inside a set of edges.
  • Geometries: a geometry is a set of polygons. A Curved Poly model may have one ore more geometry, each one with one or more polygons. You will split the model into more geometries so that you can assign a different material to each one.
  • Unwrap Groups: a subset of a geometry, used to deal with uvs. A Geometry can have one or more unwrap groups, each one having one or more polygons. Polygons belonging to the same Geometry, but to different unwrap groups, may be contiguous in the 3D space, but they will be detached in uv space.

Each one of these elements has its own parameters and features. Furthermore, during edit a few additional support elements are evaluated. Such elements are:

  • Corners: little structure computed around vertices which are used during polygons generation.
  • (Edge) Bindings: complex chain of vertices and edges connecting two corners, they are used during polygons generation. Such bindings will satisfy important constraints required to make interpolation schemas work well.
  • (Polygon) Matches: a closed set of Edge Bindings is always a good candidate to be used to generate a polygon.
  • Unwrap Functions: functions used to cut a geometry into unwrap groups and to assign uv coordinates to all the vertices (and handles) at once.

In this section we will discuss some more properties about the 6 elements types. Further informations about Corners, Bindings and Matches will instead be given in the chapter About Fixing and Inspecting. Unwrap Function will be explained in the chapter About the Unwraps Operator

Vertices Smoothness

Fig. 1 A Smooth Vertex (on the Left) and 2 Sharp Vertices (on the Right)

A Vertex may be Smooth or Sharp. When a vertex is smooth, any handle (of any edge) attached to it will be forced to stay at 90 degrees from the vertex editing normal, making all the handles lay on the same plane. Such condition is not applied for sharp vertices. In the scene view, sharp vertices are rendered as empty squares, while smooth vertices are rendered as little cubes.

A Vertex Smoothness is assigned automatically by certain operators and can always be changed in the Edit Operator.

Smoothness affects also the way curved polys are get ready for runtime: indeed, each sharp vertex is cloned an amount of times equal to the number of polygons using that vertex, each clone having a different normal evaluated on its polygon. You can check how the number of runtime vertices changes in the inspector inside the panel called Curved Poly Statistics.

The Editing Normal may look useless for a sharp vertex (since the normal is taken from the polygons), but that's not true. On a sharp vertex the editing normal play an important role in the construction of a vertex corners, and therefore it's used as a parameter to control polygon generation. This will be discussed in the section About Fixing and Inspecting.

Edges Smoothness

Fig. 2 Sharp Edges

Edges may also be sharp or smooth and like vertices sharp edges will be duplicated with a separated normals assignments when a curved poly is prepared for runtime uses. Unlike vertices, you can't directly decide if an edge is smooth: an edge is automatically smooth when it's vertices are. An edge is automatically sharp if at least one of its edges is sharp.

Unlike vertices, the Editing Normal of a sharp edges is complete ignored.

Handles Alignments

Fig. 3 Alignments are visible only with the Edit Operator with the handles option active. They force two handles to keep on the same direction.

Two handles attached to the same vertex may be aligned. An alignment force the two handles to stay on the same straight line, usually facing opposite directions, so when you edit the first, the second may change as well.

Handles alignments are visible only in the Edit Operator and they are rendered as little lines near to the main vertex. Alignments are generated automatically in the Create Operator. The Edit Operator features many buttons to remove or generate alignments.

Linear Edges

Edges may be linear. A linear edge has no handles. Linear edges are generated by some tools in Create Operator or Edit Operator and can always be changed into smooth objects at a second time (in Edit Operator).

Linear edges ignore tessellation hints. A linear edge is always a single segment, both in edit mode, in runtime mode and in any computed mesh. You can generate a Cube in Create Operator to see this at work.

Vertices and Edges Multiplicity

Polygons may be grouped into different Unwrap Groups. Because of this, a vertex belonging to more polygons may also belong to more Unwrap Groups. A vertex belonging to more unwraps groups will have one single position in 3D space, but it will have different uv coordinates, one for each unwrap Groups. For this reason, once the model is made ready for runtime, the vertex will be clone more times. A Vertex Multiplicity will be:

  • One: for smooth vertices belonging only to one unwrap group
  • Equal to the Number of its Unwrap Groups: for smooth vertices belonging to more unwrap groups. Each clone of the same vertex will have the same position, same normal, and a different uv coordinate for each unwrap group
  • Equal to the Number of its Polygons: for sharp vertices. Each clone of the same vertex will have the same position, different normals evaluated on each polygon, and different uv coordinates when the vertex fall on different unwrap groups.

An edge may have a maximum of 2 attached polygons (this is a very important constraint which makes everything work well), so the multiplicity of an edge, and of its internal handles, may be 1 or 2. Handles and edges may be duplicated (multiplicity becomes 2) when:

  • The edge has two attached polygons and one of its vertices is sharp (so the edge itself is sharp).
  • The edge has two attached polygons and the two polygons belongs to two different unwrap groups.

You can always control the final number of runtime vertices and edges in the inspector inside the panel called Curved Poly Statistics

Polygons Sides with more than one edge

Fig. 4 A polygon can have more than 4 sides (up to 10).

Polygons may have more sides. The minimum amount is 3 (triangular polygons) and you can have polygons with a maximum number of 8 sides

Yes, you can make a polygon with 5 (pentagon) or more sides. That said, all the interpolation algorithms are optimized for the 3 sides (triangular) and the 4 sides (quadrilateral) cases, where the other cases are interpolated with a generic suboptimal solution. If you feel something is wrong, you can always cut your pentagons and hexagons into smaller quads or triangles by adding vertices and edges.

Fig. 5 Polygons with sides which may have more than one edge and so more control points and more handles.

In the most simple case, each side of a polygon will be made of an edge. That said, a polygon side may be done of a chain of subsequent aligned edges. Here aligned means that the handles of the two edges must lay on the same straight line: it is not necessary (yet recommended) that you have an alignment on them.

Sides with more edges will give you a greater modeling flexibility, but at the same time they will make more complex the interpolation pattern of the polygon. It something goes wrong, you may always add some edge or some vertex to take more control of interpolation schemas.

During interpolation, the edges of a side made of more than one edge will be tessellated separately, each one with its tessellation hints. For this reason, that side of the polygon risks to have an eccessive amount of segments and you should spend some time in the Tessellation Operator to give each edge a better hints assignment.




<< Prev Next >>