| Support Forum G3D Web Page |
Parameters for constructing a new ArticulatedModel from a file on disk. More...
Classes | |
| class | ColladaOptions |
| class | HairOptions |
| class | HeightfieldOptions |
| class | VoxelOptions |
| Used by VOX and Schematic formats. More... | |
Public Member Functions | |
| Specification () | |
| Specification (const Any &a) | |
| If the any is a String ending with .ArticulatedModel.Any it is loaded and parsed. More... | |
| UniversalMaterial::Specification | convertMTLToUniversalMaterialSpecification (const shared_ptr< ParseMTL::Material > &m, AlphaFilter a, RefractionHint r) const |
| Convert a legacy OBJ MTL specification to a physically-based UniversalMaterialSpecification using the options from this. More... | |
| size_t | hashCode () const |
| bool | operator== (const Specification &other) const |
| Any | toAny () const |
Static Public Member Functions | |
| static void | mitsubaToG3D (const class XML &mitsubaXML, Specification &specification) |
Public Attributes | |
| AlphaFilter | alphaFilter |
| Default alpha filter for surfaces that have alpha maps at load time. More... | |
| bool | cachable |
| If false, this articulated model may not be loaded from or stored in the global articulated model cache. More... | |
| CleanGeometrySettings | cleanGeometrySettings |
| class G3D::ArticulatedModel::Specification::ColladaOptions | colladaOptions |
| String | filename |
| Materials will be loaded relative to this file. More... | |
| class G3D::ArticulatedModel::Specification::HairOptions | hairOptions |
| class G3D::ArticulatedModel::Specification::HeightfieldOptions | heightfieldOptions |
| bool | invertPrecomputedNormalYAxis |
| Invert the green channel of the normal map using Texture::Preprocess::modulate and Texture::Preprocess::offset. More... | |
| float | meshMergeOpaqueClusterRadius |
Radius for clusters of meshes [that have the same material] that can be merged to reduce draw calls. More... | |
| float | meshMergeTransmissiveClusterRadius |
| The default value is 0.0. More... | |
| ParseOBJ::Options | objOptions |
| Array< Instruction > | preprocess |
| A program to execute to preprocess the mesh before cleaning geometry. More... | |
| RefractionHint | refractionHint |
| Default refraction hint for surfaces that have refractive transmission and don't specify a value. More... | |
| float | scale |
| Multiply all vertex positions and part translations by this factor after loading and before preprocessing. More... | |
| bool | stripLightMapCoords |
| bool | stripLightMaps |
| bool | stripMaterials |
| Ignore materials specified in the file, replacing them with UniversalMaterial::create(). More... | |
| bool | stripVertexColors |
| Ignore vertex colors in the specified file. More... | |
| class G3D::ArticulatedModel::Specification::VoxelOptions | voxelOptions |
Parameters for constructing a new ArticulatedModel from a file on disk.
Example:
ArticulatedModel::Specification {
filename = "house.obj"; // Can be AUTO, ALL, NONE, or a number
meshMergeOpaqueClusterRadius = inf;
meshMergeTransmissiveClusterRadius = 10; // true = Don't load any materials, thus speeding up load time
// significantly if many textures are used.
//
// false = Load all materials as specified in the file (default)
stripMaterials = false; // true = Don't load any vertex colors, thus speeding up load time (and eventual render time)
// significantly if there are vertex colors
//
// false = Load all vertex colors as specified in the file (default)
stripVertexColors = false; objOptions = OBJOptions {
stripRefraction = false;
forceMaterialsToWhite = false;
texCoord1Mode = NONE;
materialOptions = ParseMTL::Options {
defaultKs = Color3(0.1);
defaultMapKs = Color3(1.0);
defaultBumpMapIterations = 1;
};
};cleanGeometrySettings = ArticulatedModel::CleanGeometrySettings { forceVertexMerging = true; allowVertexMerging = true; forceComputeNormals = false; forceComputeTangents = false; maxNormalWeldAngleDegrees = 8; maxSmoothAngleDegrees = 65; };
// Apply this uniform scale factor to the geometry and all
// transformation nodes. (default = 1.0)
scale = 0.5; // A small programming language for modifying the scene graph during
// loading. This can contain zero or more instructions, which will
// be processed in the order in which they appear.
preprocess = (
// Set the reference frame of a part, relative to its parent
// All parts and meshes may be referred to by name string or ID integer
// in any instruction. Use partID = 0 when using a mesh ID.
setCFrame("fence", CFrame::fromXYZYPRDegrees(0, 13, 0)); // Scale the entire object, including pivots, by another factor of 0.1
scale(0.1); // Add this model as a new root part
add(ArticulatedModel::Specification {
filename = "dog.obj";
preprocess = ( renamePart(root(), "dog"); );
}); // Add this model as a new part, as a child of the root.
// This feature is currently reserved and not implemented.
add(root(), ArticulatedModel::Specification {
filename = "cat.obj";
}); copyTexCoord0ToTexCoord1("fence");
scaleAndOffsetTexCoord1("fence", scale, offset);
scaleAndOffsetTexCoord0("wall", scale, offset);transformCFrame(root(), CFrame::fromXYZYPRDegrees(0,0,0,90));
// Remove all vertices and triangles touching them that lie outside
// of the specified world-space box when in the default pose.
intersectBox(all(), AABox(Point3(-10, 0, -10), Point3(10, 10, 10))); // Transform the root part translations and geometry
// so that the center of the bounding box in the
// default pose is at the origin.
moveCenterToOrigin();moveBaseToOrigin();
reverseWinding("tree"); // Apply a transformation to the vertices of a geometry, within its reference frame
transformGeometry("geom", Matrix4::scale(0, 1, 2)); // Remove a mesh.
removeMesh("gate"); // Remove a geometry. This also removes all meshes that use it
removePart("porch");// Replace the material of a Mesh. // If the last argument is true (the default), but keep the light maps that are currently on that mesh. setMaterial("woodLegs", UniversalMaterial::Specification { lambertian = Color3(0.5); }, true);
// Change the two-sided flag
setTwoSided("glass", true); // Merge all meshes that share materials. The first argument
// is the opaque merge cluster radius. The second argument is
// the transmissive/partial coverage merge cluster radius.
mergeAll(ALL, NONE); renamePart("x17", "television"); renameMesh("foo", "bar"); renameGeometry("base_geom", "floor");
);
}
|
inline |
| G3D::ArticulatedModel::Specification::Specification | ( | const Any & | a | ) |
If the any is a String ending with .ArticulatedModel.Any it is loaded and parsed.
If it is a different string, it is used as the filename. Otherwise it is assumed to be a structure.
| UniversalMaterial::Specification G3D::ArticulatedModel::Specification::convertMTLToUniversalMaterialSpecification | ( | const shared_ptr< ParseMTL::Material > & | m, |
| AlphaFilter | a, | ||
| RefractionHint | r | ||
| ) | const |
Convert a legacy OBJ MTL specification to a physically-based UniversalMaterialSpecification using the options from this.
| size_t G3D::ArticulatedModel::Specification::hashCode | ( | ) | const |
|
static |
| bool G3D::ArticulatedModel::Specification::operator== | ( | const Specification & | other | ) | const |
| Any G3D::ArticulatedModel::Specification::toAny | ( | ) | const |
| AlphaFilter G3D::ArticulatedModel::Specification::alphaFilter |
Default alpha filter for surfaces that have alpha maps at load time.
Default is AlphaFilter::DETECT, which will use AlphaFilter::BINARY for binary alpha channels and AlphaFilter::BLEND for fractional alpha channels. Switching this value to AlphaFilter::BINARY will lead to faster rendering for models with lots of masking (such as trees), at a cost of more aliasing.
| bool G3D::ArticulatedModel::Specification::cachable |
If false, this articulated model may not be loaded from or stored in the global articulated model cache.
Default: true
| CleanGeometrySettings G3D::ArticulatedModel::Specification::cleanGeometrySettings |
| class G3D::ArticulatedModel::Specification::ColladaOptions G3D::ArticulatedModel::Specification::colladaOptions |
| String G3D::ArticulatedModel::Specification::filename |
Materials will be loaded relative to this file.
| class G3D::ArticulatedModel::Specification::HairOptions G3D::ArticulatedModel::Specification::hairOptions |
| class G3D::ArticulatedModel::Specification::HeightfieldOptions G3D::ArticulatedModel::Specification::heightfieldOptions |
| bool G3D::ArticulatedModel::Specification::invertPrecomputedNormalYAxis |
Invert the green channel of the normal map using Texture::Preprocess::modulate and Texture::Preprocess::offset.
| float G3D::ArticulatedModel::Specification::meshMergeOpaqueClusterRadius |
Radius for clusters of meshes [that have the same material] that can be merged to reduce draw calls.
The radius is applied to part-space geometry bounds
| float G3D::ArticulatedModel::Specification::meshMergeTransmissiveClusterRadius |
The default value is 0.0.
| ParseOBJ::Options G3D::ArticulatedModel::Specification::objOptions |
| Array<Instruction> G3D::ArticulatedModel::Specification::preprocess |
A program to execute to preprocess the mesh before cleaning geometry.
| RefractionHint G3D::ArticulatedModel::Specification::refractionHint |
Default refraction hint for surfaces that have refractive transmission and don't specify a value.
Default is RefractionHint::DYNAMIC_FLAT.
| float G3D::ArticulatedModel::Specification::scale |
Multiply all vertex positions and part translations by this factor after loading and before preprocessing.
Default = 1.0.
| bool G3D::ArticulatedModel::Specification::stripLightMapCoords |
| bool G3D::ArticulatedModel::Specification::stripLightMaps |
| bool G3D::ArticulatedModel::Specification::stripMaterials |
Ignore materials specified in the file, replacing them with UniversalMaterial::create().
Setting to true increases loading performance and may allow more aggressive optimization if mergeMeshesByMaterial is also true.
| bool G3D::ArticulatedModel::Specification::stripVertexColors |
Ignore vertex colors in the specified file.
| class G3D::ArticulatedModel::Specification::VoxelOptions G3D::ArticulatedModel::Specification::voxelOptions |
1.8.15