Houdini Engine 6.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
HAPI_CookOptions Struct Reference

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...

Detailed Description

Options which affect how nodes are cooked.

Definition at line 1175 of file HAPI_Common.h.

Member Data Documentation

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 1259 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 1253 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 1221 of file HAPI_Common.h.

HAPI_Bool HAPI_CookOptions::cookTemplatedGeos

Decide whether to recursively cook all templated geos or not.

Definition at line 1224 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 1216 of file HAPI_Common.h.

int HAPI_CookOptions::extraFlags

For internal use only. :)

Definition at line 1267 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 1246 of file HAPI_Common.h.

HAPI_Bool HAPI_CookOptions::handleSpherePartTypes

Definition at line 1247 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 1205 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 1242 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 1264 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 1212 of file HAPI_Common.h.

HAPI_StringHandle HAPI_CookOptions::splitAttrSH

Definition at line 1201 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 1200 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 1190 of file HAPI_Common.h.

HAPI_StringHandle HAPI_CookOptions::splitGroupSH

Definition at line 1191 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 1238 of file HAPI_Common.h.

The documentation for this struct was generated from the following file: