OptiX Types.
#define OPTIX_AABB_BUFFER_BYTE_ALIGNMENT 8ull |
Alignment requirement for OptixBuildInputCustomPrimitiveArray::aabbBuffers.
#define OPTIX_ACCEL_BUFFER_BYTE_ALIGNMENT 128ull |
Alignment requirement for output and temporay buffers for acceleration structures.
#define OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_TYPE_COUNT 8 |
Maximum number of payload types allowed.
#define OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_VALUE_COUNT 32 |
Maximum number of payload values allowed.
#define OPTIX_COMPILE_DEFAULT_MAX_REGISTER_COUNT 0 |
Maximum number of registers allowed. Defaults to no explicit limit.
#define OPTIX_DISPLACEMENT_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT 128ull |
Alignment requirement for displacement micromap array buffers.
#define OPTIX_DISPLACEMENT_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT 8ull |
Alignment requirement for displacement micromap descriptor buffers.
#define OPTIX_DISPLACEMENT_MICROMAP_MAX_SUBDIVISION_LEVEL 5 |
Maximum subdivision level for displacement micromaps.
#define OPTIX_GEOMETRY_TRANSFORM_BYTE_ALIGNMENT 16ull |
Alignment requirement for OptixBuildInputTriangleArray::preTransform.
#define OPTIX_INSTANCE_BYTE_ALIGNMENT 16ull |
#define OPTIX_OPACITY_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT 128ull |
Alignment requirement for opacity micromap array buffers.
#define OPTIX_OPACITY_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT 8ull |
Alignment requirement for OptixOpacityMicromapArrayBuildInput::perMicromapDescBuffer.
#define OPTIX_OPACITY_MICROMAP_MAX_SUBDIVISION_LEVEL 12 |
Maximum subdivision level for opacity micromaps.
#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_OPAQUE ( -2 ) |
#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_TRANSPARENT ( -1 ) |
Predefined index to indicate that a triangle in the BVH build doesn't have an associated opacity micromap, and that it should revert to one of the four possible states for the full triangle.
#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_OPAQUE ( -4 ) |
#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_TRANSPARENT ( -3 ) |
#define OPTIX_OPACITY_MICROMAP_STATE_OPAQUE ( 1 ) |
#define OPTIX_OPACITY_MICROMAP_STATE_TRANSPARENT ( 0 ) |
Opacity micromaps encode the states of microtriangles in either 1 bit (2-state) or 2 bits (4-state) using the following values.
#define OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE ( 3 ) |
#define OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT ( 2 ) |
#define OPTIX_SBT_RECORD_ALIGNMENT 16ull |
Alignment requirement for device pointers in OptixShaderBindingTable.
#define OPTIX_SBT_RECORD_HEADER_SIZE ( (size_t)32 ) |
Size of the SBT record headers.
#define OPTIX_TRANSFORM_BYTE_ALIGNMENT 64ull |
Alignment requirement for OptixStaticTransform, OptixMatrixMotionTransform, OptixSRTMotionTransform.
typedef unsigned long long CUdeviceptr |
CUDA device pointer.
typedef struct OptixAccelBufferSizes OptixAccelBufferSizes |
Struct for querying builder allocation requirements.
Once queried the sizes should be used to allocate device memory of at least these sizes.
typedef struct OptixAccelBuildOptions OptixAccelBuildOptions |
Build options for acceleration structures.
typedef struct OptixAccelEmitDesc OptixAccelEmitDesc |
Specifies a type and output destination for emitted post-build properties.
typedef enum OptixAccelPropertyType OptixAccelPropertyType |
Properties which can be emitted during acceleration structure build.
typedef enum OptixBuildFlags OptixBuildFlags |
Builder Options.
Used for OptixAccelBuildOptions::buildFlags. Can be or'ed together.
typedef struct OptixBuildInput OptixBuildInput |
Build inputs.
All of them support motion and the size of the data arrays needs to match the number of motion steps
typedef struct OptixBuildInputCurveArray OptixBuildInputCurveArray |
Curve inputs.
A curve is a swept surface defined by a 3D spline curve and a varying width (radius). A curve (or "strand") of degree d (3=cubic, 2=quadratic, 1=linear) is represented by N > d vertices and N width values, and comprises N - d segments. Each segment is defined by d+1 consecutive vertices. Each curve may have a different number of vertices.
OptiX describes the curve array as a list of curve segments. The primitive id is the segment number. It is the user's responsibility to maintain a mapping between curves and curve segments. Each index buffer entry i = indexBuffer[primid] specifies the start of a curve segment, represented by d+1 consecutive vertices in the vertex buffer, and d+1 consecutive widths in the width buffer. Width is interpolated the same way vertices are interpolated, that is, using the curve basis.
Each curves build input has only one SBT record. To create curves with different materials in the same BVH, use multiple build inputs.
Custom primitive inputs.
Optional displacement part of a triangle array input.
typedef struct OptixBuildInputInstanceArray OptixBuildInputInstanceArray |
Instance and instance pointer inputs.
typedef struct OptixBuildInputOpacityMicromap OptixBuildInputOpacityMicromap |
typedef struct OptixBuildInputSphereArray OptixBuildInputSphereArray |
Sphere inputs.
A sphere is defined by a center point and a radius. Each center point is represented by a vertex in the vertex buffer. There is either a single radius for all spheres, or the radii are represented by entries in the radius buffer.
The vertex buffers and radius buffers point to a host array of device pointers, one per motion step. Host array size must match the number of motion keys as set in OptixMotionOptions (or an array of size 1 if OptixMotionOptions::numKeys is set to 0 or 1). Each per motion key device pointer must point to an array of vertices corresponding to the center points of the spheres, or an array of 1 or N radii. Format OPTIX_VERTEX_FORMAT_FLOAT3 is used for vertices, OPTIX_VERTEX_FORMAT_FLOAT for radii.
typedef struct OptixBuildInputTriangleArray OptixBuildInputTriangleArray |
Triangle inputs.
typedef enum OptixBuildInputType OptixBuildInputType |
Enum to distinguish the different build input types.
typedef enum OptixBuildOperation OptixBuildOperation |
Enum to specify the acceleration build operation.
Used in OptixAccelBuildOptions, which is then passed to optixAccelBuild and optixAccelComputeMemoryUsage, this enum indicates whether to do a build or an update of the acceleration structure.
Acceleration structure updates utilize the same acceleration structure, but with updated bounds. Updates are typically much faster than builds, however, large perturbations can degrade the quality of the acceleration structure.
typedef struct OptixBuiltinISOptions OptixBuiltinISOptions |
Specifies the options for retrieving an intersection program for a built-in primitive type. The primitive type must not be OPTIX_PRIMITIVE_TYPE_CUSTOM.
typedef enum OptixCompileDebugLevel OptixCompileDebugLevel |
Debug levels.
Optimization levels.
typedef enum OptixCurveEndcapFlags OptixCurveEndcapFlags |
Curve end cap types, for non-linear curves.
typedef struct OptixDenoiser_t* OptixDenoiser |
Opaque type representing a denoiser instance.
typedef enum OptixDenoiserAlphaMode OptixDenoiserAlphaMode |
Various parameters used by the denoiser.
typedef enum OptixDenoiserAOVType OptixDenoiserAOVType |
AOV type used by the denoiser.
typedef struct OptixDenoiserGuideLayer OptixDenoiserGuideLayer |
Guide layer for the denoiser.
typedef struct OptixDenoiserLayer OptixDenoiserLayer |
Input/Output layers for the denoiser.
typedef enum OptixDenoiserModelKind OptixDenoiserModelKind |
Model kind used by the denoiser.
typedef struct OptixDenoiserOptions OptixDenoiserOptions |
Options used by the denoiser.
typedef struct OptixDenoiserParams OptixDenoiserParams |
typedef struct OptixDenoiserSizes OptixDenoiserSizes |
Various sizes related to the denoiser.
typedef struct OptixDeviceContext_t* OptixDeviceContext |
Opaque type representing a device context.
typedef struct OptixDeviceContextOptions OptixDeviceContextOptions |
Parameters used for optixDeviceContextCreate()
Validation mode settings.
When enabled, certain device code utilities will be enabled to provide as good debug and error checking facilities as possible.
typedef enum OptixDeviceProperty OptixDeviceProperty |
Parameters used for optixDeviceContextGetProperty()
Inputs to displacement micromaps array construction.
indexing mode of triangles to displacement micromaps in an array, used in OptixBuildInputDisplacementMicromap.
typedef enum OptixDisplacementMicromapBiasAndScaleFormat OptixDisplacementMicromapBiasAndScaleFormat |
typedef struct OptixDisplacementMicromapDesc OptixDisplacementMicromapDesc |
Flags defining behavior of DMMs in a DMM array.
DMM input data format.
Displacement micromap histogram entry. Specifies how many displacement micromaps of a specific type are input to the displacement micromap array build. Note that while this is similar to OptixDisplacementMicromapUsageCount, the histogram entry specifies how many displacement micromaps of a specific type are combined into a displacement micromap array.
Displacement micromap usage count for acceleration structure builds. Specifies how many displacement micromaps of a specific type are referenced by triangles when building the AS. Note that while this is similar to OptixDisplacementMicromapHistogramEntry, the usage count specifies how many displacement micromaps of a specific type are referenced by triangles in the AS.
typedef enum OptixExceptionCodes OptixExceptionCodes |
The following values are used to indicate which exception was thrown.
typedef enum OptixExceptionFlags OptixExceptionFlags |
Exception flags.
typedef enum OptixGeometryFlags OptixGeometryFlags |
Flags used by OptixBuildInputTriangleArray::flags and OptixBuildInputCustomPrimitiveArray::flags.
typedef enum OptixHitKind OptixHitKind |
Legacy type: A subset of the hit kinds for built-in primitive intersections. It is preferred to use optixGetPrimitiveType(), together with optixIsFrontFaceHit() or optixIsBackFaceHit().
typedef struct OptixImage2D OptixImage2D |
Image descriptor used by the denoiser.
typedef enum OptixIndicesFormat OptixIndicesFormat |
Format of indices used int OptixBuildInputTriangleArray::indexFormat.
typedef struct OptixInstance OptixInstance |
typedef enum OptixInstanceFlags OptixInstanceFlags |
Flags set on the OptixInstance::flags.
These can be or'ed together to combine multiple flags.
typedef void(* OptixLogCallback) (unsigned int level, const char *tag, const char *message, void *cbdata) |
Type of the callback function used for log messages.
[in] | level | The log level indicates the severity of the message. See below for possible values. |
[in] | tag | A terse message category description (e.g., 'SCENE STAT'). |
[in] | message | Null terminated log message (without newline at the end). |
[in] | cbdata | Callback data that was provided with the callback pointer. |
It is the users responsibility to ensure thread safety within this function.
The following log levels are defined.
0 disable Setting the callback level will disable all messages. The callback function will not be called in this case. 1 fatal A non-recoverable error. The context and/or OptiX itself might no longer be in a usable state. 2 error A recoverable error, e.g., when passing invalid call parameters. 3 warning Hints that OptiX might not behave exactly as requested by the user or may perform slower than expected. 4 print Status or progress messages.
Higher levels might occur.
typedef struct OptixMatrixMotionTransform OptixMatrixMotionTransform |
Represents a matrix motion transformation.
The device address of instances of this type must be a multiple of OPTIX_TRANSFORM_BYTE_ALIGNMENT.
This struct, as defined here, handles only N=2 motion keys due to the fixed array length of its transform member. The following example shows how to create instances for an arbitrary number N of motion keys:
typedef struct OptixMicromapBuffers OptixMicromapBuffers |
Buffer inputs for opacity/displacement micromap array builds.
typedef struct OptixMicromapBufferSizes OptixMicromapBufferSizes |
Conservative memory requirements for building a opacity/displacement micromap array.
typedef struct OptixModule_t* OptixModule |
Opaque type representing a module.
Struct for specifying specializations for pipelineParams as specified in OptixPipelineCompileOptions::pipelineLaunchParamsVariableName.
The bound values are supposed to represent a constant value in the pipelineParams. OptiX will attempt to locate all loads from the pipelineParams and correlate them to the appropriate bound value, but there are cases where OptiX cannot safely or reliably do this. For example if the pointer to the pipelineParams is passed as an argument to a non-inline function or the offset of the load to the pipelineParams cannot be statically determined (e.g. accessed in a loop). No module should rely on the value being specialized in order to work correctly. The values in the pipelineParams specified on optixLaunch should match the bound value. If validation mode is enabled on the context, OptiX will verify that the bound values specified matches the values in pipelineParams specified to optixLaunch.
These values are compiled in to the module as constants. Once the constants are inserted into the code, an optimization pass will be run that will attempt to propagate the consants and remove unreachable code.
If caching is enabled, changes in these values will result in newly compiled modules.
The pipelineParamOffset and sizeInBytes must be within the bounds of the pipelineParams variable. OPTIX_ERROR_INVALID_VALUE will be returned from optixModuleCreate otherwise.
If more than one bound value overlaps or the size of a bound value is equal to 0, an OPTIX_ERROR_INVALID_VALUE will be returned from optixModuleCreate.
The same set of bound values do not need to be used for all modules in a pipeline, but overlapping values between modules must have the same value. OPTIX_ERROR_INVALID_VALUE will be returned from optixPipelineCreate otherwise.
typedef struct OptixModuleCompileOptions OptixModuleCompileOptions |
Compilation options for module.
typedef enum OptixModuleCompileState OptixModuleCompileState |
Module compilation state.
typedef enum OptixMotionFlags OptixMotionFlags |
Enum to specify motion flags.
typedef struct OptixMotionOptions OptixMotionOptions |
Inputs to opacity micromap array construction.
indexing mode of triangles to opacity micromaps in an array, used in OptixBuildInputOpacityMicromap.
typedef struct OptixOpacityMicromapDesc OptixOpacityMicromapDesc |
Opacity micromap descriptor.
typedef enum OptixOpacityMicromapFlags OptixOpacityMicromapFlags |
Flags defining behavior of opacity micromaps in a opacity micromap array.
typedef enum OptixOpacityMicromapFormat OptixOpacityMicromapFormat |
Specifies whether to use a 2- or 4-state opacity micromap format.
Opacity micromap histogram entry. Specifies how many opacity micromaps of a specific type are input to the opacity micromap array build. Note that while this is similar to OptixOpacityMicromapUsageCount, the histogram entry specifies how many opacity micromaps of a specific type are combined into a opacity micromap array.
typedef struct OptixOpacityMicromapUsageCount OptixOpacityMicromapUsageCount |
Opacity micromap usage count for acceleration structure builds. Specifies how many opacity micromaps of a specific type are referenced by triangles when building the AS. Note that while this is similar to OptixOpacityMicromapHistogramEntry, the usage count specifies how many opacity micromaps of a specific type are referenced by triangles in the AS.
typedef enum OptixPayloadSemantics OptixPayloadSemantics |
Semantic flags for a single payload word.
Used to specify the semantics of a payload word per shader type. "read": Shader of this type may read the payload word. "write": Shader of this type may write the payload word.
"trace_caller_write": Shaders may consume the value of the payload word passed to optixTrace by the caller. "trace_caller_read": The caller to optixTrace may read the payload word after the call to optixTrace.
Semantics can be bitwise combined. Combining "read" and "write" is equivalent to specifying "read_write". A payload needs to be writable by the caller or at least one shader type. A payload needs to be readable by the caller or at least one shader type after a being writable.
typedef struct OptixPayloadType OptixPayloadType |
Specifies a single payload type.
typedef enum OptixPayloadTypeID OptixPayloadTypeID |
Payload type identifiers.
typedef struct OptixPipeline_t* OptixPipeline |
Opaque type representing a pipeline.
typedef struct OptixPipelineCompileOptions OptixPipelineCompileOptions |
Compilation options for all modules of a pipeline.
Similar to OptixModuleCompileOptions, but these options here need to be equal for all modules of a pipeline.
typedef struct OptixPipelineLinkOptions OptixPipelineLinkOptions |
Link options for a pipeline.
typedef enum OptixPixelFormat OptixPixelFormat |
Pixel formats used by the denoiser.
typedef enum OptixPrimitiveType OptixPrimitiveType |
Builtin primitive types.
typedef enum OptixPrimitiveTypeFlags OptixPrimitiveTypeFlags |
Builtin flags may be bitwise combined.
typedef struct OptixProgramGroup_t* OptixProgramGroup |
Opaque type representing a program group.
typedef struct OptixProgramGroupCallables OptixProgramGroupCallables |
Program group representing callables.
Module and entry function name need to be valid for at least one of the two callables.
typedef struct OptixProgramGroupDesc OptixProgramGroupDesc |
Descriptor for program groups.
typedef enum OptixProgramGroupFlags OptixProgramGroupFlags |
Flags for program groups.
typedef struct OptixProgramGroupHitgroup OptixProgramGroupHitgroup |
Program group representing the hitgroup.
For each of the three program types, module and entry function name might both be nullptr
.
typedef enum OptixProgramGroupKind OptixProgramGroupKind |
Distinguishes different kinds of program groups.
typedef struct OptixProgramGroupOptions OptixProgramGroupOptions |
Program group options.
typedef struct OptixProgramGroupSingleModule OptixProgramGroupSingleModule |
Program group representing a single module.
Used for raygen, miss, and exception programs. In case of raygen and exception programs, module and entry function name need to be valid. For miss programs, module and entry function name might both be nullptr
.
typedef OptixResult() OptixQueryFunctionTable_t(int abiId, unsigned int numOptions, OptixQueryFunctionTableOptions *, const void **, void *functionTable, size_t sizeOfTable) |
Type of the function optixQueryFunctionTable()
Options that can be passed to optixQueryFunctionTable()
typedef enum OptixRayFlags OptixRayFlags |
Ray flags passed to the device function optixTrace(). These affect the behavior of traversal per invocation.
typedef struct OptixRelocateInput OptixRelocateInput |
Relocation inputs.
typedef struct OptixRelocateInputInstanceArray OptixRelocateInputInstanceArray |
Instance and instance pointer inputs.
typedef struct OptixRelocateInputTriangleArray OptixRelocateInputTriangleArray |
Triangle inputs.
typedef struct OptixRelocationInfo OptixRelocationInfo |
Used to store information related to relocation of optix data structures.
typedef enum OptixResult OptixResult |
Result codes returned from API functions.
All host side API functions return OptixResult with the exception of optixGetErrorName and optixGetErrorString. When successful OPTIX_SUCCESS is returned. All return codes except for OPTIX_SUCCESS should be assumed to be errors as opposed to a warning.
typedef struct OptixShaderBindingTable OptixShaderBindingTable |
Describes the shader binding table (SBT)
typedef struct OptixSRTData OptixSRTData |
Represents an SRT transformation.
An SRT transformation can represent a smooth rotation with fewer motion keys than a matrix transformation. Each motion key is constructed from elements taken from a matrix S, a quaternion R, and a translation T.
The scaling matrix \(S = \begin{bmatrix} sx & a & b & pvx \\ 0 & sy & c & pvy \\ 0 & 0 & sz & pvz \end{bmatrix}\) defines an affine transformation that can include scale, shear, and a translation. The translation allows to define the pivot point for the subsequent rotation.
The quaternion R = [ qx, qy, qz, qw ] describes a rotation with angular component qw = cos(theta/2) and other components [ qx, qy, qz ] = sin(theta/2) * [ ax, ay, az ] where the axis [ ax, ay, az ] is normalized.
The translation matrix \(T = \begin{bmatrix} 1 & 0 & 0 & tx \\ 0 & 1 & 0 & ty \\ 0 & 0 & 1 & tz \end{bmatrix}\) defines another translation that is applied after the rotation. Typically, this translation includes the inverse translation from the matrix S to reverse the translation for the pivot point for R.
To obtain the effective transformation at time t, the elements of the components of S, R, and T will be interpolated linearly. The components are then multiplied to obtain the combined transformation C = T * R * S. The transformation C is the effective object-to-world transformations at time t, and C^(-1) is the effective world-to-object transformation at time t.
typedef struct OptixSRTMotionTransform OptixSRTMotionTransform |
Represents an SRT motion transformation.
The device address of instances of this type must be a multiple of OPTIX_TRANSFORM_BYTE_ALIGNMENT.
This struct, as defined here, handles only N=2 motion keys due to the fixed array length of its srtData member. The following example shows how to create instances for an arbitrary number N of motion keys:
typedef struct OptixStackSizes OptixStackSizes |
Describes the stack size requirements of a program group.
typedef struct OptixStaticTransform OptixStaticTransform |
Static transform.
The device address of instances of this type must be a multiple of OPTIX_TRANSFORM_BYTE_ALIGNMENT.
typedef struct OptixTask_t* OptixTask |
Opaque type representing a work task.
typedef enum OptixTransformFormat OptixTransformFormat |
Format of transform used in OptixBuildInputTriangleArray::transformFormat.
typedef enum OptixTransformType OptixTransformType |
Transform.
OptixTransformType is used by the device function optixGetTransformTypeFromHandle() to determine the type of the OptixTraversableHandle returned from optixGetTransformListHandle().
typedef enum OptixTraversableGraphFlags OptixTraversableGraphFlags |
Specifies the set of valid traversable graphs that may be passed to invocation of optixTrace(). Flags may be bitwise combined.
typedef unsigned long long OptixTraversableHandle |
Traversable handle.
typedef enum OptixTraversableType OptixTraversableType |
Traversable Handles.
typedef enum OptixVertexFormat OptixVertexFormat |
Format of vertices used in OptixBuildInputTriangleArray::vertexFormat.
typedef unsigned int OptixVisibilityMask |
Visibility mask.
Properties which can be emitted during acceleration structure build.
Enumerator | |
---|---|
OPTIX_PROPERTY_TYPE_COMPACTED_SIZE | Size of a compacted acceleration structure. The device pointer points to a uint64. |
OPTIX_PROPERTY_TYPE_AABBS | OptixAabb * numMotionSteps. |
enum OptixBuildFlags |
Builder Options.
Used for OptixAccelBuildOptions::buildFlags. Can be or'ed together.
enum OptixBuildInputType |
Enum to distinguish the different build input types.
Enumerator | |
---|---|
OPTIX_BUILD_INPUT_TYPE_TRIANGLES | Triangle inputs.
|
OPTIX_BUILD_INPUT_TYPE_CUSTOM_PRIMITIVES | Custom primitive inputs. |
OPTIX_BUILD_INPUT_TYPE_INSTANCES | Instance inputs.
|
OPTIX_BUILD_INPUT_TYPE_INSTANCE_POINTERS | Instance pointer inputs.
|
OPTIX_BUILD_INPUT_TYPE_CURVES | Curve inputs.
|
OPTIX_BUILD_INPUT_TYPE_SPHERES | Sphere inputs.
|
enum OptixBuildOperation |
Enum to specify the acceleration build operation.
Used in OptixAccelBuildOptions, which is then passed to optixAccelBuild and optixAccelComputeMemoryUsage, this enum indicates whether to do a build or an update of the acceleration structure.
Acceleration structure updates utilize the same acceleration structure, but with updated bounds. Updates are typically much faster than builds, however, large perturbations can degrade the quality of the acceleration structure.
Enumerator | |
---|---|
OPTIX_BUILD_OPERATION_BUILD | Perform a full build operation. |
OPTIX_BUILD_OPERATION_UPDATE | Perform an update using new bounds. |
Debug levels.
Optimization levels.
Various parameters used by the denoiser.
enum OptixDenoiserAOVType |
Model kind used by the denoiser.
Validation mode settings.
When enabled, certain device code utilities will be enabled to provide as good debug and error checking facilities as possible.
Enumerator | |
---|---|
OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_OFF | |
OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_ALL |
enum OptixDeviceProperty |
Parameters used for optixDeviceContextGetProperty()
Enumerator | |
---|---|
OPTIX_DEVICE_PROPERTY_LIMIT_MAX_TRACE_DEPTH | Maximum value for OptixPipelineLinkOptions::maxTraceDepth. sizeof( unsigned int ) |
OPTIX_DEVICE_PROPERTY_LIMIT_MAX_TRAVERSABLE_GRAPH_DEPTH | Maximum value to pass into optixPipelineSetStackSize for parameter maxTraversableGraphDepth. sizeof( unsigned int ) |
OPTIX_DEVICE_PROPERTY_LIMIT_MAX_PRIMITIVES_PER_GAS | The maximum number of primitives (over all build inputs) as input to a single Geometry Acceleration Structure (GAS). sizeof( unsigned int ) |
OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCES_PER_IAS | The maximum number of instances (over all build inputs) as input to a single Instance Acceleration Structure (IAS). sizeof( unsigned int ) |
OPTIX_DEVICE_PROPERTY_RTCORE_VERSION | The RT core version supported by the device (0 for no support, 10 for version 1.0). sizeof( unsigned int ) |
OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCE_ID | The maximum value for OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCE...">OptixInstance::instanceId. sizeof( unsigned int ) |
OPTIX_DEVICE_PROPERTY_LIMIT_NUM_BITS_INSTANCE_VISIBILITY_MASK | The number of bits available for the OptixInstance::visibilityMask. Higher bits must be set to zero. sizeof( unsigned int ) |
OPTIX_DEVICE_PROPERTY_LIMIT_MAX_SBT_RECORDS_PER_GAS | The maximum number of instances that can be added to a single Instance Acceleration Structure (IAS). sizeof( unsigned int ) |
OPTIX_DEVICE_PROPERTY_LIMIT_MAX_SBT_OFFSET | The maximum summed value of OptixInstance::sbtOffset. Also the maximum summed value of sbt offsets of all ancestor instances of a GAS in a traversable graph. |
indexing mode of triangles to displacement micromaps in an array, used in OptixBuildInputDisplacementMicromap.
Enumerator | |
---|---|
OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_NONE | No displacement micromap is used. |
OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_LINEAR | An implicit linear mapping of triangles to displacement micromaps in the displacement micromap array is used. triangle[i] will use displacementMicromapArray[i]. |
OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_INDEXED | OptixBuildInputDisplacementMicromap::displacementMicromapIndexBuffer provides a per triangle array of indices into OptixBuildInputDisplacementMicromap::displacementMicromapArray. See OptixBuildInputDisplacementMicromap::displacementMicromapIndexBuffer for more details. |
Flags defining behavior of DMMs in a DMM array.
enum OptixExceptionCodes |
The following values are used to indicate which exception was thrown.
Enumerator | |
---|---|
OPTIX_EXCEPTION_CODE_STACK_OVERFLOW | Stack overflow of the continuation stack. no exception details. |
OPTIX_EXCEPTION_CODE_TRACE_DEPTH_EXCEEDED | The trace depth is exceeded. no exception details. |
OPTIX_EXCEPTION_CODE_TRAVERSAL_DEPTH_EXCEEDED | The traversal depth is exceeded. Exception details: optixGetTransformListSize() optixGetTransformListHandle() |
OPTIX_EXCEPTION_CODE_TRAVERSAL_INVALID_TRAVERSABLE | Traversal encountered an invalid traversable type. Exception details: optixGetTransformListSize() optixGetTransformListHandle() optixGetExceptionInvalidTraversable() |
OPTIX_EXCEPTION_CODE_TRAVERSAL_INVALID_MISS_SBT | The miss SBT record index is out of bounds A miss SBT record index is valid within the range [0, OptixShaderBindingTable::missRecordCount) (See optixLaunch) Exception details: optixGetExceptionInvalidSbtOffset() |
OPTIX_EXCEPTION_CODE_TRAVERSAL_INVALID_HIT_SBT | The traversal hit SBT record index out of bounds. A traversal hit SBT record index is valid within the range [0, OPTIX_SBT...">OptixShaderBindingTable::hitgroupRecordCount) (See optixLaunch) The following formula relates the sbt-geometry-acceleration-structure-index (See optixGetSbtGASIndex), sbt-stride-from-trace-call and sbt-offset-from-trace-call (See optixTrace) sbt-index = sbt-instance-offset + (sbt-geometry-acceleration-structure-index * sbt-stride-from-trace-call) + sbt-offset-from-trace-call Exception details: optixGetTransformListSize() optixGetTransformListHandle() optixGetExceptionInvalidSbtOffset() optixGetSbtGASIndex() |
OPTIX_EXCEPTION_CODE_UNSUPPORTED_PRIMITIVE_TYPE | The shader encountered an unsupported primitive type (See OptixPipelineCompileOptions::usesPrimitiveTypeFlags). no exception details. |
OPTIX_EXCEPTION_CODE_INVALID_RAY | The shader encountered a call to optixTrace with at least one of the float arguments being inf or nan, or the tmin argument is negative. Exception details: optixGetExceptionInvalidRay() |
OPTIX_EXCEPTION_CODE_CALLABLE_PARAMETER_MISMATCH | The shader encountered a call to either optixDirectCall or optixCallableCall where the argument count does not match the parameter count of the callable program which is called. Exception details: optixGetExceptionParameterMismatch. |
OPTIX_EXCEPTION_CODE_BUILTIN_IS_MISMATCH | The invoked builtin IS does not match the current GAS. |
OPTIX_EXCEPTION_CODE_CALLABLE_INVALID_SBT | Tried to call a callable program using an SBT offset that is larger than the number of passed in callable SBT records. Exception details: optixGetExceptionInvalidSbtOffset() |
OPTIX_EXCEPTION_CODE_CALLABLE_NO_DC_SBT_RECORD | Tried to call a direct callable using an SBT offset of a record that was built from a program group that did not include a direct callable. |
OPTIX_EXCEPTION_CODE_CALLABLE_NO_CC_SBT_RECORD | Tried to call a continuation callable using an SBT offset of a record that was built from a program group that did not include a continuation callable. |
OPTIX_EXCEPTION_CODE_UNSUPPORTED_SINGLE_LEVEL_GAS | Tried to directly traverse a single gas while single gas traversable graphs are not enabled (see OptixTraversableGraphFlags::OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_GAS). Exception details: optixGetTransformListSize() optixGetTransformListHandle() optixGetExceptionInvalidTraversable() |
OPTIX_EXCEPTION_CODE_INVALID_VALUE_ARGUMENT_0 | argument passed to an optix call is not within an acceptable range of values. |
OPTIX_EXCEPTION_CODE_INVALID_VALUE_ARGUMENT_1 | |
OPTIX_EXCEPTION_CODE_INVALID_VALUE_ARGUMENT_2 | |
OPTIX_EXCEPTION_CODE_UNSUPPORTED_DATA_ACCESS | Tried to access data on an AS without random data access support (See OptixBuildFlags). |
OPTIX_EXCEPTION_CODE_PAYLOAD_TYPE_MISMATCH | The program payload type doesn't match the trace payload type. |
enum OptixExceptionFlags |
Exception flags.
Enumerator | |
---|---|
OPTIX_EXCEPTION_FLAG_NONE | No exception are enabled. |
OPTIX_EXCEPTION_FLAG_STACK_OVERFLOW | Enables exceptions check related to the continuation stack. |
OPTIX_EXCEPTION_FLAG_TRACE_DEPTH | Enables exceptions check related to trace depth. |
OPTIX_EXCEPTION_FLAG_USER | Enables user exceptions via optixThrowException(). This flag must be specified for all modules in a pipeline if any module calls optixThrowException(). |
OPTIX_EXCEPTION_FLAG_DEBUG | Enables various exceptions check related to traversal. |
enum OptixGeometryFlags |
Flags used by OptixBuildInputTriangleArray::flags and OptixBuildInputCustomPrimitiveArray::flags.
enum OptixHitKind |
Legacy type: A subset of the hit kinds for built-in primitive intersections. It is preferred to use optixGetPrimitiveType(), together with optixIsFrontFaceHit() or optixIsBackFaceHit().
Enumerator | |
---|---|
OPTIX_HIT_KIND_TRIANGLE_FRONT_FACE | Ray hit the triangle on the front face. |
OPTIX_HIT_KIND_TRIANGLE_BACK_FACE | Ray hit the triangle on the back face. |
enum OptixIndicesFormat |
Format of indices used int OptixBuildInputTriangleArray::indexFormat.
enum OptixInstanceFlags |
Flags set on the OptixInstance::flags.
These can be or'ed together to combine multiple flags.
Module compilation state.
enum OptixMotionFlags |
Enum to specify motion flags.
Enumerator | |
---|---|
OPTIX_MOTION_FLAG_NONE | |
OPTIX_MOTION_FLAG_START_VANISH | |
OPTIX_MOTION_FLAG_END_VANISH |
indexing mode of triangles to opacity micromaps in an array, used in OptixBuildInputOpacityMicromap.
Enumerator | |
---|---|
OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_NONE | No opacity micromap is used. |
OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_LINEAR | An implicit linear mapping of triangles to opacity micromaps in the opacity micromap array is used. triangle[i] will use opacityMicromapArray[i]. |
OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_INDEXED | OptixBuildInputOpacityMicromap::indexBuffer provides a per triangle array of predefined indices and/or indices into OptixBuildInputOpacityMicromap::opacityMicromapArray. See OptixBuildInputOpacityMicromap::indexBuffer for more details. |
Flags defining behavior of opacity micromaps in a opacity micromap array.
Semantic flags for a single payload word.
Used to specify the semantics of a payload word per shader type. "read": Shader of this type may read the payload word. "write": Shader of this type may write the payload word.
"trace_caller_write": Shaders may consume the value of the payload word passed to optixTrace by the caller. "trace_caller_read": The caller to optixTrace may read the payload word after the call to optixTrace.
Semantics can be bitwise combined. Combining "read" and "write" is equivalent to specifying "read_write". A payload needs to be writable by the caller or at least one shader type. A payload needs to be readable by the caller or at least one shader type after a being writable.
enum OptixPayloadTypeID |
enum OptixPixelFormat |
Pixel formats used by the denoiser.
enum OptixPrimitiveType |
Builtin primitive types.
Builtin flags may be bitwise combined.
Distinguishes different kinds of program groups.
enum OptixRayFlags |
Ray flags passed to the device function optixTrace(). These affect the behavior of traversal per invocation.
enum OptixResult |
Result codes returned from API functions.
All host side API functions return OptixResult with the exception of optixGetErrorName and optixGetErrorString. When successful OPTIX_SUCCESS is returned. All return codes except for OPTIX_SUCCESS should be assumed to be errors as opposed to a warning.
enum OptixTransformFormat |
Format of transform used in OptixBuildInputTriangleArray::transformFormat.
Enumerator | |
---|---|
OPTIX_TRANSFORM_FORMAT_NONE | no transform, default for zero initialization |
OPTIX_TRANSFORM_FORMAT_MATRIX_FLOAT12 | 3x4 row major affine matrix |
enum OptixTransformType |
Transform.
OptixTransformType is used by the device function optixGetTransformTypeFromHandle() to determine the type of the OptixTraversableHandle returned from optixGetTransformListHandle().
Enumerator | |
---|---|
OPTIX_TRANSFORM_TYPE_NONE | Not a transformation. |
OPTIX_TRANSFORM_TYPE_STATIC_TRANSFORM |
|
OPTIX_TRANSFORM_TYPE_MATRIX_MOTION_TRANSFORM |
|
OPTIX_TRANSFORM_TYPE_SRT_MOTION_TRANSFORM |
|
OPTIX_TRANSFORM_TYPE_INSTANCE |
|
Specifies the set of valid traversable graphs that may be passed to invocation of optixTrace(). Flags may be bitwise combined.
enum OptixTraversableType |
Traversable Handles.
Enumerator | |
---|---|
OPTIX_TRAVERSABLE_TYPE_STATIC_TRANSFORM | Static transforms.
|
OPTIX_TRAVERSABLE_TYPE_MATRIX_MOTION_TRANSFORM | Matrix motion transform.
|
OPTIX_TRAVERSABLE_TYPE_SRT_MOTION_TRANSFORM | SRT motion transform.
|
enum OptixVertexFormat |
Format of vertices used in OptixBuildInputTriangleArray::vertexFormat.