Bitmasks for Specifying Tessellation Types
Macro Definitions
Detailed Description
- group a3d_tessfacetype
Bitmasks for specifying a type of tessellation face data.
These flags controls the way the vertex coordinates are indexed in a A3DTessFaceData instance. It’s specified in the A3DTessFaceData::m_usUsedEntitiesFlags member.
- Version
2.0
Macro Definition
-
kA3DTessFaceDataPolyface
Reserved for future use.
-
kA3DTessFaceDataTriangle
Unique triangle.
One triangle described using
6
indexes forming3
`{Normal, Point} pairs: { Normal1, Point1, Normal2, Point2, Normal3, Point3 }
-
kA3DTessFaceDataTriangleFan
Triangle fan.
The layout consists in
2*N
indices whereN
is the number of points. Each vertex is described as a{Normal, Point}
pair.{ Normal1, Point1, Normal2, Point2, ..., ..., NormalN, PointN }
-
kA3DTessFaceDataTriangleStripe
Triangle strip.
The layout consists in
2*N
indices whereN
is the number of points. Each vertex is described as a{Normal, Point}
pair.{ Normal1, Point1, Normal2, Point2, ..., ..., NormalN, PointN }
-
kA3DTessFaceDataPolyfaceOneNormal
Reserved for future use.
-
kA3DTessFaceDataTriangleOneNormal
Unique triangle with one normal.
Unique triangle with one normal. It is described using 4 indices:
{ Normal, Point1, Point2, Point3 }
-
kA3DTessFaceDataTriangleFanOneNormal
Triangle fan where the normal is defined either globally or per-point.
The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the layout consists in
N+1
indices, where N is the number of points:If not set, the normal indices are set per-point. The layout is the same as kA3DTessFaceDataTriangleFan.{ Normal, Point1, Point2, ..., PointN }
-
kA3DTessFaceDataTriangleStripeOneNormal
Triangle strip where the normal is defined either globally or per-point.
The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the layout consists in
N+1
indices, where N is the number of points:If not set, the normal indices are set per-point. The layout is the same as kA3DTessFaceDataTriangleStripe.{ Normal, Point1, Point2, ..., PointN }
-
kA3DTessFaceDataPolyfaceTextured
Reserved for future use.
-
kA3DTessFaceDataTriangleTextured
Unique triangle with texture coordinates.
This layout is similar to kA3DTessFaceDataTriangle with the addition of texture coordinates indices before the point index. Each point is then described using the following layout:
{Normal, Textures..., Point}
, whereTextures...
is the list of texture indices.The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to
6 + 3 * m_uiTextureCoordIndexesSize
.For example, if there are two texture indices per point, the layout will be a 12 wide array:
{ Normal1, Texture1-1, Texture1-2, Point1, Normal2, Texture2-1, Texture2-2, Point2, Normal3, Texture3-1, Texture3-2, Point3, }
-
kA3DTessFaceDataTriangleFanTextured
Triangle fan with texture coordinates.
This layout is similar to kA3DTessFaceDataTriangleFan with the addition of texture coordinates indices before the point index. Each point is then described using the following layout:
{Normal, Textures..., Point}
, whereTextures...
is the list of texture indices.The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to
N * (m_uiTextureCoordIndexesSize + 2)
whereN
is the number of points.For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:
{ Normal1, Texture1-1, Texture1-2, Point1, Normal2, Texture2-1, Texture2-2, Point2, Normal3, Texture3-1, Texture3-2, Point3, Normal4, Texture4-1, Texture4-2, Point4, Normal5, Texture5-1, Texture5-2, Point5, Normal6, Texture6-1, Texture6-2, Point6 }
-
kA3DTessFaceDataTriangleStripeTextured
Triangle strip with texture coordinates.
This layout is similar to kA3DTessFaceDataTriangleStripe with the addition of texture coordinates indices before the point index. Each point is then described using the following layout:
{Normal, Textures..., Point}
, whereTextures...
is the list of texture indices.The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to
N * (m_uiTextureCoordIndexesSize + 2)
whereN
is the number of points.For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:
{ Normal1, Texture1-1, Texture1-2, Point1, Normal2, Texture2-1, Texture2-2, Point2, Normal3, Texture3-1, Texture3-2, Point3, Normal4, Texture4-1, Texture4-2, Point4, Normal5, Texture5-1, Texture5-2, Point5, Normal6, Texture6-1, Texture6-2, Point6 }
-
kA3DTessFaceDataPolyfaceOneNormalTextured
Reserved for future use.
-
kA3DTessFaceDataTriangleOneNormalTextured
Unique triangle with texture coordinates and a globally defined normal.
This layout is similar to kA3DTessFaceDataTriangleOneNormal with the addition of texture coordinates indices before the point index. The unique normal is defined first. Each point is then described using the following layout:
{Textures..., Point}
, whereTextures...
is the list of texture indices.The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to
4 + 3 * m_uiTextureCoordIndexesSize
.For example, if there are two texture indices per point, the layout will be a 12 wide array:
{ Normal Texture1-1, Texture1-2, Point1, Texture2-1, Texture2-2, Point2, Texture3-1, Texture3-2, Point3, }
-
kA3DTessFaceDataTriangleFanOneNormalTextured
Triangle fan with texture coordinates where the normal is defined either globally or per-point.
This layout is similar to kA3DTessFaceDataTriangleFanOneNormal with the addition of texture coordinates indices before the point index.
The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the unique normal is defined first. Each point is then described using the following layout:
{Textures..., Point}
, whereTextures...
is the list of texture indices.The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to
N * (m_uiTextureCoordIndexesSize + 1)
whereN
is the number of points.For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:
If kA3DTessFaceDataNormalSingle is not set, the layout is the same as kA3DTessFaceDataTriangleFanTextured.{ Normal Texture1-1, Texture1-2, Point1, Texture2-1, Texture2-2, Point2, Texture3-1, Texture3-2, Point3, Texture4-1, Texture4-2, Point4, Texture5-1, Texture5-2, Point5, Texture6-1, Texture6-2, Point6 }
-
kA3DTessFaceDataTriangleStripeOneNormalTextured
Triangle strip with texture coordinates where the normal is defined either globally or per-point.
This layout is similar to kA3DTessFaceDataTriangleStripeOneNormal with the addition of texture coordinates indices before the point index.
The normal is globally defined if kA3DTessFaceDataNormalSingle flag is set. In that case the unique normal is defined first. Each point is then described using the following layout:
{Textures..., Point}
, whereTextures...
is the list of texture indices.The number of texture indices per point is given by A3DTessFaceData::m_uiTextureCoordIndexesSize. Thus the number of indices in the element array is equal to
N * (m_uiTextureCoordIndexesSize + 1)
whereN
is the number of points.For example, if there are two texture indices per point and two triangles (6 points), the layout will be a 24 wide array:
If kA3DTessFaceDataNormalSingle is not set, the layout is the same as kA3DTessFaceDataTriangleStripeTextured.{ Normal Texture1-1, Texture1-2, Point1, Texture2-1, Texture2-2, Point2, Texture3-1, Texture3-2, Point3, Texture4-1, Texture4-2, Point4, Texture5-1, Texture5-2, Point5, Texture6-1, Texture6-2, Point6 }