HDK
|
Options which affect how nodes are cooked. More...
#include <HAPI_Common.h>
Public Attributes | |
HAPI_Bool | splitGeosByGroup |
HAPI_StringHandle | splitGroupSH |
HAPI_Bool | splitGeosByAttribute |
HAPI_StringHandle | splitAttrSH |
int | maxVerticesPerPrimitive |
HAPI_Bool | refineCurveToLinear |
float | curveRefineLOD |
HAPI_Bool | clearErrorsAndWarnings |
HAPI_Bool | cookTemplatedGeos |
Decide whether to recursively cook all templated geos or not. More... | |
HAPI_Bool | splitPointsByVertexAttributes |
HAPI_PackedPrimInstancingMode | packedPrimInstancingMode |
HAPI_Bool | handleBoxPartTypes |
HAPI_Bool | handleSpherePartTypes |
HAPI_Bool | checkPartChanges |
HAPI_Bool | cacheMeshTopology |
HAPI_Bool | preferOutputNodes |
int | extraFlags |
For internal use only. :) More... | |
Options which affect how nodes are cooked.
Definition at line 1246 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::cacheMeshTopology |
This toggle lets you enable the caching of the mesh topology. By default, this is false. If this is set to true, cooking a mesh geometry will update only the topology if the number of points changed. Use this to get better performance on deforming meshes.
Definition at line 1330 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::checkPartChanges |
If enabled, sets the HAPI_PartInfo::hasChanged member during the cook. If disabled, the member will always be true. Checking for part changes can be expensive, so there is a potential performance gain when disabled.
Definition at line 1324 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::clearErrorsAndWarnings |
If this option is turned on, then we will recursively clear the errors and warnings (and messages) of all nodes before performing the cook.
Definition at line 1292 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::cookTemplatedGeos |
Decide whether to recursively cook all templated geos or not.
Definition at line 1295 of file HAPI_Common.h.
float HAPI_CookOptions::curveRefineLOD |
Controls the number of divisions per unit distance when refining a curve to linear. The default in Houdini is 8.0.
Definition at line 1287 of file HAPI_Common.h.
int HAPI_CookOptions::extraFlags |
For internal use only. :)
Definition at line 1338 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::handleBoxPartTypes |
Choose which special part types should be handled. Unhandled special part types will just be refined to HAPI_PARTTYPE_MESH.
Definition at line 1317 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::handleSpherePartTypes |
Definition at line 1318 of file HAPI_Common.h.
int HAPI_CookOptions::maxVerticesPerPrimitive |
For meshes only, this is enforced by convexing the mesh. Use -1 to avoid convexing at all and get some performance boost.
Definition at line 1276 of file HAPI_Common.h.
HAPI_PackedPrimInstancingMode HAPI_CookOptions::packedPrimInstancingMode |
Choose how you want the cook to handle packed primitives. The default is: HAPI_PACKEDPRIM_INSTANCING_MODE_DISABLED
Definition at line 1313 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::preferOutputNodes |
If enabled, calls to HAPI_CookNode() on an OBJ node will cook the output nodes of any nested SOP nodes. If none exist or the option is disabled, HAPI will instead cook the display nodes of any nested SOP nodes.
Definition at line 1335 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::refineCurveToLinear |
For curves only. If this is set to true, then all curves will be refined to a linear curve and you can no longer access the original CVs. You can control the refinement detail via HAPI_CookOptions::curveRefineLOD. If it's false, the curve type (NURBS, Bezier etc) will be left as is.
Definition at line 1283 of file HAPI_Common.h.
HAPI_StringHandle HAPI_CookOptions::splitAttrSH |
Definition at line 1272 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::splitGeosByAttribute |
This toggle lets you enable the splitting by unique values of a specified attribute. By default, this is false and the geo be split as described above. as described above. If this is set to true, and splitGeosByGroup set to false, mesh geos will be split on attribute values The attribute name to split on must be created with HAPI_SetCustomString and then the splitAttrSH handle set on the struct.
Definition at line 1271 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::splitGeosByGroup |
Normally, geos are split into parts in two different ways. First it is split by group and within each group it is split by primitive type.
For example, if you have a geo with group1 covering half of the mesh and volume1 and group2 covering the other half of the mesh, all of curve1, and volume2 you will end up with 5 parts. First two parts will be for the half-mesh of group1 and volume1, and the last three will cover group2.
This toggle lets you disable the splitting by group and just have the geo be split by primitive type alone. By default, this is true and therefore geos will be split by group and primitive type. If set to false, geos will only be split by primitive type.
Definition at line 1261 of file HAPI_Common.h.
HAPI_StringHandle HAPI_CookOptions::splitGroupSH |
Definition at line 1262 of file HAPI_Common.h.
HAPI_Bool HAPI_CookOptions::splitPointsByVertexAttributes |
Decide whether to split points by vertex attributes. This takes all vertex attributes and tries to copy them to their respective points. If two vertices have any difference in their attribute values, the corresponding point is split into two points. This is repeated until all the vertex attributes have been copied to the points.
With this option enabled, you can reduce the total number of vertices on a game engine side as sharing of attributes (like UVs) is optimized. To make full use of this feature, you have to think of Houdini points as game engine vertices (sharable). With this option OFF (or before this feature existed) you had to map Houdini vertices to game engine vertices, to make sure all attribute values are accounted for.
Definition at line 1309 of file HAPI_Common.h.