# class
MappingImageSettings
Settings for the Simplygon mapping classes These settings control the properties of the mapping image that will be generated in the current simplification processor (reducer/remesher etc). The mapping image will be used when casting a new texture on the simplified geometry. In the settings object, the user is able to set the dimensions of the image (width/height) as well as whether the LOD should have new texture coordinates and some parameters for how they should be generated and all other settings regarding the mapping image.
# Properties
Property | Description |
---|---|
AllowTransparencyMapping | If true, the remeshing processor will allow mapped transparency in the generated mapping image. This allows material casting where gaps filled by the remeshing processor will be cast as transparent. |
ApplyNewMaterialIds | If true, and also generating one or more mapping images for material casting, the material IDs in the process geometry will be updated to reflect the new, not yet cast output materials. This means the output scene will be temporarily invalid before the materialtable has been updated to reflect the new changes. |
AutomaticTextureSizeMultiplier | Texture dimension length multiplier for the automatic texture size. |
ForcePower2Texture | If automatic_texture_size is enabled, then force the texture sizes to be a power of 2. |
GenerateMappingImage | If set, the aggregation processor, reduction processor, or remeshing processor will create a mapping image that maps triangles on the reduced geometry back to triangles on the original geometry. The texture is insert into the MappingImage object. The image data will contain two fields: * RidArray, "TriangleIds", TupleSize:1, The id of the triangle * UnsignedShortArray, "BarycentricCoords", TupleSize:2, Items A & B of the barycentric coordinate on the triangle. The user can control the size of the mapped texture using the values MappingTextureWidth and MappingTextureHeight. |
GenerateTangents | If true, generates a new tangent space fields at position specified by TexCoordLevel, based on the vertex normals and texture coordinates. Tangent space fields will always be created if missing, and GenerateMappingImage is enabled. If GenerateTexCoords is enabled, new tangents will always be generated. |
GenerateTexCoords | If true, generates a new texcoords field at the position specified by TexCoordLevel. Will be ignored and always generate texcoords if none are available in the Geometry if GenerateMappingImage is enabled. |
InputMaterialCount | The number of input materials used in the original geometry for mapping to multiple output materials. This needs to be set before you can set any specific in-out material mapping. 0 signifies that no in-out material mapping is used, ie. the process will produce one resulting mapping image. |
MaximumLayers | The maximum number of layers in the mapping image. If a remeshed geometry has a lot of transparent triangles, use a higher number to be able to find intersections on the inside of parts of the geometry. This setting only has effect in the remeshing, when running reduction the number of layers is always 1. |
OnlyParameterizeInvalidUVs | If enabled, will aggregate all the valid original UVs. If there are invalid original UVs, those parts will receive new parameterized UVs. |
OutputMaterialCount | The number of output mapping images that are to be generated. If this is set to more than 1, the material mapping also needs to be set. |
ReplaceMappingImages | Whether to replace already existing mapping images in the scene. |
TexCoordGeneratorType | Determines which method to use when generating the texture coordinates. Parameterizer generate from scratch based on the geometry. ChartAggregator generate based on the original texture coordinates. |
TexCoordLevel | The texture coordinate level used for mapping image and texture generation. If the TexCoordName has been set, the TexCoordLevel is not used. |
TexCoordName | The texture coordinate level name used for mapping image and texture generation. If new UVs are created, they will replace the old coordinates in the texture channel with the TexCoordName. If no texture level with this name exists. It will be created. If the TexCoordName is not set, the TexCoordLevel (index) will be used instead. |
UseAutomaticTextureSize | The UseAutomaticTextureSize flag. If true, then texture sizes will be computed for the reduced mesh depending on its pixel size on screen. |
UseFullRetexturing | If set, all original texcoord sets are replaced by a single new one which will be used for the mapping image. This means the output scene will be temporarily invalid before the materialtable has been updated to reflect the new changes. This flag has no effect on the remeshing, which always does a full retexturing. |
# Methods
Method | Description |
---|---|
GetChartAggregatorSettings | The settings for the chart aggregator. |
GetClass | Get the name of the MappingImageSettings class. |
GetErrorString | Returns a string describing the error that was found the last time ValidateSettings was performed. |
GetInputMaterialSettings | Get the input material settings for the given index. |
GetOutputMaterialSettings | Get the output material settings for the given index. |
GetParameterizerSettings | The settings for the parameterizer. |
IsA | Returns true if MappingImageSettings is a or is a descendant of the class named as the type parameter. |
IsNull | Returns true if the MappingImageSettings object is invalid. |
ValidateSettings | Validates the current settings values. |
# Static methods
Method | Description |
---|---|
IsClassA | Returns true if the class is a or is a descendant of the class named as the type parameter. |
SafeCast | SafeCast makes sure the input object is of a class that can be cast into spMappingImageSettings, and if this is the case, returns the object cast into spMappingImageSettings. |
# Properties details
# AllowTransparencyMapping
If true, the remeshing processor will allow mapped transparency in the generated mapping image. This allows material casting where gaps filled by the remeshing processor will be cast as transparent.
# Syntax
// Setter
void SetAllowTransparencyMapping( bool value );
// Getter
bool GetAllowTransparencyMapping();
# SetAllowTransparencyMapping parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
bool | value | The desired value of AllowTransparencyMapping. |
# GetAllowTransparencyMapping return value
Type: bool
Default: false
# ApplyNewMaterialIds
If true, and also generating one or more mapping images for material casting, the material IDs in the process geometry will be updated to reflect the new, not yet cast output materials. This means the output scene will be temporarily invalid before the materialtable has been updated to reflect the new changes.
# AutomaticTextureSizeMultiplier
Texture dimension length multiplier for the automatic texture size.
# Syntax
// Setter
void SetAutomaticTextureSizeMultiplier( real value );
// Getter
real GetAutomaticTextureSizeMultiplier();
# SetAutomaticTextureSizeMultiplier parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
real | value | 0 | REAL_MAX | The desired multiplier. |
# GetAutomaticTextureSizeMultiplier return value
Type: real
Default: 1.0
# ForcePower2Texture
If automatic_texture_size is enabled, then force the texture sizes to be a power of 2.
# GenerateMappingImage
If set, the aggregation processor, reduction processor, or remeshing processor will create a mapping image that maps triangles on the reduced geometry back to triangles on the original geometry. The texture is insert into the MappingImage object. The image data will contain two fields: * RidArray, "TriangleIds", TupleSize:1, The id of the triangle * UnsignedShortArray, "BarycentricCoords", TupleSize:2, Items A & B of the barycentric coordinate on the triangle. The user can control the size of the mapped texture using the values MappingTextureWidth and MappingTextureHeight.
# GenerateTangents
If true, generates a new tangent space fields at position specified by TexCoordLevel, based on the vertex normals and texture coordinates. Tangent space fields will always be created if missing, and GenerateMappingImage is enabled. If GenerateTexCoords is enabled, new tangents will always be generated.
# GenerateTexCoords
If true, generates a new texcoords field at the position specified by TexCoordLevel. Will be ignored and always generate texcoords if none are available in the Geometry if GenerateMappingImage is enabled.
# InputMaterialCount
The number of input materials used in the original geometry for mapping to multiple output materials. This needs to be set before you can set any specific in-out material mapping. 0 signifies that no in-out material mapping is used, ie. the process will produce one resulting mapping image.
# Syntax
// Setter
void SetInputMaterialCount( unsigned int value );
// Getter
unsigned int GetInputMaterialCount();
# SetInputMaterialCount parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
unsigned int | value | 0 | SG_MAXIMUM_MAPPING_IMAGE_INPUT_MATERIAL_COUNT | The number of inputs. |
# GetInputMaterialCount return value
Type: unsigned int
Default: 0
# MaximumLayers
The maximum number of layers in the mapping image. If a remeshed geometry has a lot of transparent triangles, use a higher number to be able to find intersections on the inside of parts of the geometry. This setting only has effect in the remeshing, when running reduction the number of layers is always 1.
# Syntax
// Setter
void SetMaximumLayers( unsigned int value );
// Getter
unsigned int GetMaximumLayers();
# SetMaximumLayers parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
unsigned int | value | 0 | UINT_MAX | The desired number of layers in the mapping image. |
# GetMaximumLayers return value
Type: unsigned int
Default: 3
# OnlyParameterizeInvalidUVs
If enabled, will aggregate all the valid original UVs. If there are invalid original UVs, those parts will receive new parameterized UVs.
# OutputMaterialCount
The number of output mapping images that are to be generated. If this is set to more than 1, the material mapping also needs to be set.
# Syntax
// Setter
void SetOutputMaterialCount( unsigned int value );
// Getter
unsigned int GetOutputMaterialCount();
# SetOutputMaterialCount parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
unsigned int | value | 1 | SG_MAXIMUM_MAPPING_IMAGE_OUTPUT_MATERIAL_COUNT | The number of outputs. |
# GetOutputMaterialCount return value
Type: unsigned int
Default: 1
# ReplaceMappingImages
Whether to replace already existing mapping images in the scene.
# TexCoordGeneratorType
Determines which method to use when generating the texture coordinates. Parameterizer generate from scratch based on the geometry. ChartAggregator generate based on the original texture coordinates.
# Syntax
// Setter
void SetTexCoordGeneratorType( Simplygon::ETexcoordGeneratorType value );
// Getter
Simplygon::ETexcoordGeneratorType GetTexCoordGeneratorType();
# SetTexCoordGeneratorType parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
ETexcoordGeneratorType | value | The TexCoordGeneratorType value to use. |
# GetTexCoordGeneratorType return value
Type: ETexcoordGeneratorType
Default: Parameterizer
Key | Value | Comment |
---|---|---|
Parameterizer | 0 | Texture coordinates are generated from scratch based on the geometry. |
ChartAggregator | 1 | Texture coordinates are generated based on the original texture coordinates. |
# TexCoordLevel
The texture coordinate level used for mapping image and texture generation. If the TexCoordName has been set, the TexCoordLevel is not used.
# TexCoordName
The texture coordinate level name used for mapping image and texture generation. If new UVs are created, they will replace the old coordinates in the texture channel with the TexCoordName. If no texture level with this name exists. It will be created. If the TexCoordName is not set, the TexCoordLevel (index) will be used instead.
# UseAutomaticTextureSize
The UseAutomaticTextureSize flag. If true, then texture sizes will be computed for the reduced mesh depending on its pixel size on screen.
# UseFullRetexturing
If set, all original texcoord sets are replaced by a single new one which will be used for the mapping image. This means the output scene will be temporarily invalid before the materialtable has been updated to reflect the new changes. This flag has no effect on the remeshing, which always does a full retexturing.
# Methods details
# GetChartAggregatorSettings
The settings for the chart aggregator.
# Syntax
spChartAggregatorSettings GetChartAggregatorSettings();
# Parameters
GetChartAggregatorSettings takes no parameters.
# Return value
Type: ChartAggregatorSettings
# GetClass
Get the name of the MappingImageSettings class.
# GetErrorString
Returns a string describing the error that was found the last time ValidateSettings was performed.
# GetInputMaterialSettings
Get the input material settings for the given index.
# GetOutputMaterialSettings
Get the output material settings for the given index.
# GetParameterizerSettings
The settings for the parameterizer.
# Syntax
spParameterizerSettings GetParameterizerSettings();
# Parameters
GetParameterizerSettings takes no parameters.
# Return value
Type: ParameterizerSettings
# IsA
Returns true if MappingImageSettings is a or is a descendant of the class named as the type parameter.
# IsNull
Returns true if the MappingImageSettings object is invalid.
# ValidateSettings
Validates the current settings values.
# Static methods details
# IsClassA
Returns true if the class is a or is a descendant of the class named as the type parameter.
# SafeCast
SafeCast makes sure the input object is of a class that can be cast into spMappingImageSettings, and if this is the case, returns the object cast into spMappingImageSettings.