NVIDIA OptiX 7.7 nvidia_logo_transpbg.gif Up
Types

Classes

struct  OptixDeviceContextOptions
 
struct  OptixOpacityMicromapUsageCount
 
struct  OptixBuildInputOpacityMicromap
 
struct  OptixRelocateInputOpacityMicromap
 
struct  OptixDisplacementMicromapDesc
 
struct  OptixDisplacementMicromapHistogramEntry
 
struct  OptixDisplacementMicromapArrayBuildInput
 
struct  OptixDisplacementMicromapUsageCount
 
struct  OptixBuildInputDisplacementMicromap
 
struct  OptixBuildInputTriangleArray
 
struct  OptixRelocateInputTriangleArray
 
struct  OptixBuildInputCurveArray
 
struct  OptixBuildInputSphereArray
 
struct  OptixAabb
 
struct  OptixBuildInputCustomPrimitiveArray
 
struct  OptixBuildInputInstanceArray
 
struct  OptixRelocateInputInstanceArray
 
struct  OptixBuildInput
 
struct  OptixRelocateInput
 
struct  OptixInstance
 
struct  OptixOpacityMicromapDesc
 
struct  OptixOpacityMicromapHistogramEntry
 
struct  OptixOpacityMicromapArrayBuildInput
 
struct  OptixMicromapBufferSizes
 
struct  OptixMicromapBuffers
 
struct  OptixMotionOptions
 
struct  OptixAccelBuildOptions
 
struct  OptixAccelBufferSizes
 
struct  OptixAccelEmitDesc
 
struct  OptixRelocationInfo
 
struct  OptixStaticTransform
 
struct  OptixMatrixMotionTransform
 
struct  OptixSRTData
 
struct  OptixSRTMotionTransform
 
struct  OptixImage2D
 
struct  OptixDenoiserOptions
 
struct  OptixDenoiserGuideLayer
 
struct  OptixDenoiserLayer
 
struct  OptixDenoiserParams
 
struct  OptixDenoiserSizes
 
struct  OptixModuleCompileBoundValueEntry
 
struct  OptixPayloadType
 
struct  OptixModuleCompileOptions
 
struct  OptixProgramGroupSingleModule
 
struct  OptixProgramGroupHitgroup
 
struct  OptixProgramGroupCallables
 
struct  OptixProgramGroupDesc
 
struct  OptixProgramGroupOptions
 
struct  OptixPipelineCompileOptions
 
struct  OptixPipelineLinkOptions
 
struct  OptixShaderBindingTable
 
struct  OptixStackSizes
 
struct  OptixBuiltinISOptions
 

Macros

#define OPTIX_SBT_RECORD_HEADER_SIZE   ( (size_t)32 )
 
#define OPTIX_SBT_RECORD_ALIGNMENT   16ull
 
#define OPTIX_ACCEL_BUFFER_BYTE_ALIGNMENT   128ull
 
#define OPTIX_INSTANCE_BYTE_ALIGNMENT   16ull
 
#define OPTIX_AABB_BUFFER_BYTE_ALIGNMENT   8ull
 
#define OPTIX_GEOMETRY_TRANSFORM_BYTE_ALIGNMENT   16ull
 
#define OPTIX_TRANSFORM_BYTE_ALIGNMENT   64ull
 
#define OPTIX_OPACITY_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT   8ull
 
#define OPTIX_COMPILE_DEFAULT_MAX_REGISTER_COUNT   0
 
#define OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_TYPE_COUNT   8
 
#define OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_VALUE_COUNT   32
 
#define OPTIX_OPACITY_MICROMAP_STATE_TRANSPARENT   ( 0 )
 
#define OPTIX_OPACITY_MICROMAP_STATE_OPAQUE   ( 1 )
 
#define OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT   ( 2 )
 
#define OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE   ( 3 )
 
#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_TRANSPARENT   ( -1 )
 
#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_OPAQUE   ( -2 )
 
#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_TRANSPARENT   ( -3 )
 
#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_OPAQUE   ( -4 )
 
#define OPTIX_OPACITY_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT   128ull
 
#define OPTIX_OPACITY_MICROMAP_MAX_SUBDIVISION_LEVEL   12
 
#define OPTIX_DISPLACEMENT_MICROMAP_MAX_SUBDIVISION_LEVEL   5
 
#define OPTIX_DISPLACEMENT_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT   8ull
 
#define OPTIX_DISPLACEMENT_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT   128ull
 

Typedefs

typedef unsigned long long CUdeviceptr
 
typedef struct OptixDeviceContext_t * OptixDeviceContext
 
typedef struct OptixModule_t * OptixModule
 
typedef struct OptixProgramGroup_t * OptixProgramGroup
 
typedef struct OptixPipeline_t * OptixPipeline
 
typedef struct OptixDenoiser_t * OptixDenoiser
 
typedef struct OptixTask_t * OptixTask
 
typedef unsigned long long OptixTraversableHandle
 
typedef unsigned int OptixVisibilityMask
 
typedef enum OptixResult OptixResult
 
typedef enum OptixDeviceProperty OptixDeviceProperty
 
typedef void(* OptixLogCallback) (unsigned int level, const char *tag, const char *message, void *cbdata)
 
typedef enum OptixDeviceContextValidationMode OptixDeviceContextValidationMode
 
typedef struct OptixDeviceContextOptions OptixDeviceContextOptions
 
typedef enum OptixGeometryFlags OptixGeometryFlags
 
typedef enum OptixHitKind OptixHitKind
 
typedef enum OptixIndicesFormat OptixIndicesFormat
 
typedef enum OptixVertexFormat OptixVertexFormat
 
typedef enum OptixTransformFormat OptixTransformFormat
 
typedef enum OptixDisplacementMicromapBiasAndScaleFormat OptixDisplacementMicromapBiasAndScaleFormat
 
typedef enum OptixDisplacementMicromapDirectionFormat OptixDisplacementMicromapDirectionFormat
 
typedef enum OptixOpacityMicromapFormat OptixOpacityMicromapFormat
 
typedef enum OptixOpacityMicromapArrayIndexingMode OptixOpacityMicromapArrayIndexingMode
 
typedef struct OptixOpacityMicromapUsageCount OptixOpacityMicromapUsageCount
 
typedef struct OptixBuildInputOpacityMicromap OptixBuildInputOpacityMicromap
 
typedef struct OptixRelocateInputOpacityMicromap OptixRelocateInputOpacityMicromap
 
typedef enum OptixDisplacementMicromapFormat OptixDisplacementMicromapFormat
 
typedef enum OptixDisplacementMicromapFlags OptixDisplacementMicromapFlags
 
typedef enum OptixDisplacementMicromapTriangleFlags OptixDisplacementMicromapTriangleFlags
 
typedef struct OptixDisplacementMicromapDesc OptixDisplacementMicromapDesc
 
typedef struct OptixDisplacementMicromapHistogramEntry OptixDisplacementMicromapHistogramEntry
 
typedef struct OptixDisplacementMicromapArrayBuildInput OptixDisplacementMicromapArrayBuildInput
 
typedef struct OptixDisplacementMicromapUsageCount OptixDisplacementMicromapUsageCount
 
typedef enum OptixDisplacementMicromapArrayIndexingMode OptixDisplacementMicromapArrayIndexingMode
 
typedef struct OptixBuildInputDisplacementMicromap OptixBuildInputDisplacementMicromap
 
typedef struct OptixBuildInputTriangleArray OptixBuildInputTriangleArray
 
typedef struct OptixRelocateInputTriangleArray OptixRelocateInputTriangleArray
 
typedef enum OptixPrimitiveType OptixPrimitiveType
 
typedef enum OptixPrimitiveTypeFlags OptixPrimitiveTypeFlags
 
typedef enum OptixCurveEndcapFlags OptixCurveEndcapFlags
 
typedef struct OptixBuildInputCurveArray OptixBuildInputCurveArray
 
typedef struct OptixBuildInputSphereArray OptixBuildInputSphereArray
 
typedef struct OptixAabb OptixAabb
 
typedef struct OptixBuildInputCustomPrimitiveArray OptixBuildInputCustomPrimitiveArray
 
typedef struct OptixBuildInputInstanceArray OptixBuildInputInstanceArray
 
typedef struct OptixRelocateInputInstanceArray OptixRelocateInputInstanceArray
 
typedef enum OptixBuildInputType OptixBuildInputType
 
typedef struct OptixBuildInput OptixBuildInput
 
typedef struct OptixRelocateInput OptixRelocateInput
 
typedef enum OptixInstanceFlags OptixInstanceFlags
 
typedef struct OptixInstance OptixInstance
 
typedef enum OptixBuildFlags OptixBuildFlags
 
typedef enum OptixOpacityMicromapFlags OptixOpacityMicromapFlags
 
typedef struct OptixOpacityMicromapDesc OptixOpacityMicromapDesc
 
typedef struct OptixOpacityMicromapHistogramEntry OptixOpacityMicromapHistogramEntry
 
typedef struct OptixOpacityMicromapArrayBuildInput OptixOpacityMicromapArrayBuildInput
 
typedef struct OptixMicromapBufferSizes OptixMicromapBufferSizes
 
typedef struct OptixMicromapBuffers OptixMicromapBuffers
 
typedef enum OptixBuildOperation OptixBuildOperation
 
typedef enum OptixMotionFlags OptixMotionFlags
 
typedef struct OptixMotionOptions OptixMotionOptions
 
typedef struct OptixAccelBuildOptions OptixAccelBuildOptions
 
typedef struct OptixAccelBufferSizes OptixAccelBufferSizes
 
typedef enum OptixAccelPropertyType OptixAccelPropertyType
 
typedef struct OptixAccelEmitDesc OptixAccelEmitDesc
 
typedef struct OptixRelocationInfo OptixRelocationInfo
 
typedef struct OptixStaticTransform OptixStaticTransform
 
typedef struct OptixMatrixMotionTransform OptixMatrixMotionTransform
 
typedef struct OptixSRTData OptixSRTData
 
typedef struct OptixSRTMotionTransform OptixSRTMotionTransform
 
typedef enum OptixTraversableType OptixTraversableType
 
typedef enum OptixPixelFormat OptixPixelFormat
 
typedef struct OptixImage2D OptixImage2D
 
typedef enum OptixDenoiserModelKind OptixDenoiserModelKind
 
typedef struct OptixDenoiserOptions OptixDenoiserOptions
 
typedef struct OptixDenoiserGuideLayer OptixDenoiserGuideLayer
 
typedef enum OptixDenoiserAOVType OptixDenoiserAOVType
 
typedef struct OptixDenoiserLayer OptixDenoiserLayer
 
typedef enum OptixDenoiserAlphaMode OptixDenoiserAlphaMode
 
typedef struct OptixDenoiserParams OptixDenoiserParams
 
typedef struct OptixDenoiserSizes OptixDenoiserSizes
 
typedef enum OptixRayFlags OptixRayFlags
 
typedef enum OptixTransformType OptixTransformType
 
typedef enum OptixTraversableGraphFlags OptixTraversableGraphFlags
 
typedef enum OptixCompileOptimizationLevel OptixCompileOptimizationLevel
 
typedef enum OptixCompileDebugLevel OptixCompileDebugLevel
 
typedef enum OptixModuleCompileState OptixModuleCompileState
 
typedef struct OptixModuleCompileBoundValueEntry OptixModuleCompileBoundValueEntry
 
typedef enum OptixPayloadTypeID OptixPayloadTypeID
 
typedef enum OptixPayloadSemantics OptixPayloadSemantics
 
typedef struct OptixPayloadType OptixPayloadType
 
typedef struct OptixModuleCompileOptions OptixModuleCompileOptions
 
typedef enum OptixProgramGroupKind OptixProgramGroupKind
 
typedef enum OptixProgramGroupFlags OptixProgramGroupFlags
 
typedef struct OptixProgramGroupSingleModule OptixProgramGroupSingleModule
 
typedef struct OptixProgramGroupHitgroup OptixProgramGroupHitgroup
 
typedef struct OptixProgramGroupCallables OptixProgramGroupCallables
 
typedef struct OptixProgramGroupDesc OptixProgramGroupDesc
 
typedef struct OptixProgramGroupOptions OptixProgramGroupOptions
 
typedef enum OptixExceptionCodes OptixExceptionCodes
 
typedef enum OptixExceptionFlags OptixExceptionFlags
 
typedef struct OptixPipelineCompileOptions OptixPipelineCompileOptions
 
typedef struct OptixPipelineLinkOptions OptixPipelineLinkOptions
 
typedef struct OptixShaderBindingTable OptixShaderBindingTable
 
typedef struct OptixStackSizes OptixStackSizes
 
typedef enum OptixQueryFunctionTableOptions OptixQueryFunctionTableOptions
 
typedef OptixResult() OptixQueryFunctionTable_t(int abiId, unsigned int numOptions, OptixQueryFunctionTableOptions *, const void **, void *functionTable, size_t sizeOfTable)
 
typedef struct OptixBuiltinISOptions OptixBuiltinISOptions
 

Enumerations

enum  OptixResult {
  OPTIX_SUCCESS = 0 ,
  OPTIX_ERROR_INVALID_VALUE = 7001 ,
  OPTIX_ERROR_HOST_OUT_OF_MEMORY = 7002 ,
  OPTIX_ERROR_INVALID_OPERATION = 7003 ,
  OPTIX_ERROR_FILE_IO_ERROR = 7004 ,
  OPTIX_ERROR_INVALID_FILE_FORMAT = 7005 ,
  OPTIX_ERROR_DISK_CACHE_INVALID_PATH = 7010 ,
  OPTIX_ERROR_DISK_CACHE_PERMISSION_ERROR = 7011 ,
  OPTIX_ERROR_DISK_CACHE_DATABASE_ERROR = 7012 ,
  OPTIX_ERROR_DISK_CACHE_INVALID_DATA = 7013 ,
  OPTIX_ERROR_LAUNCH_FAILURE = 7050 ,
  OPTIX_ERROR_INVALID_DEVICE_CONTEXT = 7051 ,
  OPTIX_ERROR_CUDA_NOT_INITIALIZED = 7052 ,
  OPTIX_ERROR_VALIDATION_FAILURE = 7053 ,
  OPTIX_ERROR_INVALID_INPUT = 7200 ,
  OPTIX_ERROR_INVALID_LAUNCH_PARAMETER = 7201 ,
  OPTIX_ERROR_INVALID_PAYLOAD_ACCESS = 7202 ,
  OPTIX_ERROR_INVALID_ATTRIBUTE_ACCESS = 7203 ,
  OPTIX_ERROR_INVALID_FUNCTION_USE = 7204 ,
  OPTIX_ERROR_INVALID_FUNCTION_ARGUMENTS = 7205 ,
  OPTIX_ERROR_PIPELINE_OUT_OF_CONSTANT_MEMORY = 7250 ,
  OPTIX_ERROR_PIPELINE_LINK_ERROR = 7251 ,
  OPTIX_ERROR_ILLEGAL_DURING_TASK_EXECUTE = 7270 ,
  OPTIX_ERROR_INTERNAL_COMPILER_ERROR = 7299 ,
  OPTIX_ERROR_DENOISER_MODEL_NOT_SET = 7300 ,
  OPTIX_ERROR_DENOISER_NOT_INITIALIZED = 7301 ,
  OPTIX_ERROR_NOT_COMPATIBLE = 7400 ,
  OPTIX_ERROR_PAYLOAD_TYPE_MISMATCH = 7500 ,
  OPTIX_ERROR_PAYLOAD_TYPE_RESOLUTION_FAILED = 7501 ,
  OPTIX_ERROR_PAYLOAD_TYPE_ID_INVALID = 7502 ,
  OPTIX_ERROR_NOT_SUPPORTED = 7800 ,
  OPTIX_ERROR_UNSUPPORTED_ABI_VERSION = 7801 ,
  OPTIX_ERROR_FUNCTION_TABLE_SIZE_MISMATCH = 7802 ,
  OPTIX_ERROR_INVALID_ENTRY_FUNCTION_OPTIONS = 7803 ,
  OPTIX_ERROR_LIBRARY_NOT_FOUND = 7804 ,
  OPTIX_ERROR_ENTRY_SYMBOL_NOT_FOUND = 7805 ,
  OPTIX_ERROR_LIBRARY_UNLOAD_FAILURE = 7806 ,
  OPTIX_ERROR_DEVICE_OUT_OF_MEMORY = 7807 ,
  OPTIX_ERROR_CUDA_ERROR = 7900 ,
  OPTIX_ERROR_INTERNAL_ERROR = 7990 ,
  OPTIX_ERROR_UNKNOWN = 7999
}
 
enum  OptixDeviceProperty {
  OPTIX_DEVICE_PROPERTY_LIMIT_MAX_TRACE_DEPTH = 0x2001 ,
  OPTIX_DEVICE_PROPERTY_LIMIT_MAX_TRAVERSABLE_GRAPH_DEPTH = 0x2002 ,
  OPTIX_DEVICE_PROPERTY_LIMIT_MAX_PRIMITIVES_PER_GAS = 0x2003 ,
  OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCES_PER_IAS = 0x2004 ,
  OPTIX_DEVICE_PROPERTY_RTCORE_VERSION = 0x2005 ,
  OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCE_ID = 0x2006 ,
  OPTIX_DEVICE_PROPERTY_LIMIT_NUM_BITS_INSTANCE_VISIBILITY_MASK = 0x2007 ,
  OPTIX_DEVICE_PROPERTY_LIMIT_MAX_SBT_RECORDS_PER_GAS = 0x2008 ,
  OPTIX_DEVICE_PROPERTY_LIMIT_MAX_SBT_OFFSET = 0x2009
}
 
enum  OptixDeviceContextValidationMode {
  OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_OFF = 0 ,
  OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_ALL = 0xFFFFFFFF
}
 
enum  OptixGeometryFlags {
  OPTIX_GEOMETRY_FLAG_NONE = 0 ,
  OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT = 1u << 0 ,
  OPTIX_GEOMETRY_FLAG_REQUIRE_SINGLE_ANYHIT_CALL = 1u << 1 ,
  OPTIX_GEOMETRY_FLAG_DISABLE_TRIANGLE_FACE_CULLING = 1u << 2
}
 
enum  OptixHitKind {
  OPTIX_HIT_KIND_TRIANGLE_FRONT_FACE = 0xFE ,
  OPTIX_HIT_KIND_TRIANGLE_BACK_FACE = 0xFF
}
 
enum  OptixIndicesFormat {
  OPTIX_INDICES_FORMAT_NONE = 0 ,
  OPTIX_INDICES_FORMAT_UNSIGNED_SHORT3 = 0x2102 ,
  OPTIX_INDICES_FORMAT_UNSIGNED_INT3 = 0x2103
}
 
enum  OptixVertexFormat {
  OPTIX_VERTEX_FORMAT_NONE = 0 ,
  OPTIX_VERTEX_FORMAT_FLOAT3 = 0x2121 ,
  OPTIX_VERTEX_FORMAT_FLOAT2 = 0x2122 ,
  OPTIX_VERTEX_FORMAT_HALF3 = 0x2123 ,
  OPTIX_VERTEX_FORMAT_HALF2 = 0x2124 ,
  OPTIX_VERTEX_FORMAT_SNORM16_3 = 0x2125 ,
  OPTIX_VERTEX_FORMAT_SNORM16_2 = 0x2126
}
 
enum  OptixTransformFormat {
  OPTIX_TRANSFORM_FORMAT_NONE = 0 ,
  OPTIX_TRANSFORM_FORMAT_MATRIX_FLOAT12 = 0x21E1
}
 
enum  OptixDisplacementMicromapBiasAndScaleFormat {
  OPTIX_DISPLACEMENT_MICROMAP_BIAS_AND_SCALE_FORMAT_NONE = 0 ,
  OPTIX_DISPLACEMENT_MICROMAP_BIAS_AND_SCALE_FORMAT_FLOAT2 = 0x2241 ,
  OPTIX_DISPLACEMENT_MICROMAP_BIAS_AND_SCALE_FORMAT_HALF2 = 0x2242
}
 
enum  OptixDisplacementMicromapDirectionFormat {
  OPTIX_DISPLACEMENT_MICROMAP_DIRECTION_FORMAT_NONE = 0 ,
  OPTIX_DISPLACEMENT_MICROMAP_DIRECTION_FORMAT_FLOAT3 = 0x2261 ,
  OPTIX_DISPLACEMENT_MICROMAP_DIRECTION_FORMAT_HALF3 = 0x2262
}
 
enum  OptixOpacityMicromapFormat {
  OPTIX_OPACITY_MICROMAP_FORMAT_NONE = 0 ,
  OPTIX_OPACITY_MICROMAP_FORMAT_2_STATE = 1 ,
  OPTIX_OPACITY_MICROMAP_FORMAT_4_STATE = 2
}
 
enum  OptixOpacityMicromapArrayIndexingMode {
  OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_NONE = 0 ,
  OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_LINEAR = 1 ,
  OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_INDEXED = 2
}
 
enum  OptixDisplacementMicromapFormat {
  OPTIX_DISPLACEMENT_MICROMAP_FORMAT_NONE = 0 ,
  OPTIX_DISPLACEMENT_MICROMAP_FORMAT_64_MICRO_TRIS_64_BYTES = 1 ,
  OPTIX_DISPLACEMENT_MICROMAP_FORMAT_256_MICRO_TRIS_128_BYTES = 2 ,
  OPTIX_DISPLACEMENT_MICROMAP_FORMAT_1024_MICRO_TRIS_128_BYTES = 3
}
 
enum  OptixDisplacementMicromapFlags {
  OPTIX_DISPLACEMENT_MICROMAP_FLAG_NONE = 0 ,
  OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_TRACE = 1 << 0 ,
  OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_BUILD = 1 << 1
}
 
enum  OptixDisplacementMicromapTriangleFlags {
  OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_NONE = 0 ,
  OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_DECIMATE_EDGE_01 = 1 << 0 ,
  OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_DECIMATE_EDGE_12 = 1 << 1 ,
  OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_DECIMATE_EDGE_20 = 1 << 2
}
 
enum  OptixDisplacementMicromapArrayIndexingMode {
  OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_NONE = 0 ,
  OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_LINEAR = 1 ,
  OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_INDEXED = 2
}
 
enum  OptixPrimitiveType {
  OPTIX_PRIMITIVE_TYPE_CUSTOM = 0x2500 ,
  OPTIX_PRIMITIVE_TYPE_ROUND_QUADRATIC_BSPLINE = 0x2501 ,
  OPTIX_PRIMITIVE_TYPE_ROUND_CUBIC_BSPLINE = 0x2502 ,
  OPTIX_PRIMITIVE_TYPE_ROUND_LINEAR = 0x2503 ,
  OPTIX_PRIMITIVE_TYPE_ROUND_CATMULLROM = 0x2504 ,
  OPTIX_PRIMITIVE_TYPE_FLAT_QUADRATIC_BSPLINE = 0x2505 ,
  OPTIX_PRIMITIVE_TYPE_SPHERE = 0x2506 ,
  OPTIX_PRIMITIVE_TYPE_ROUND_CUBIC_BEZIER = 0x2507 ,
  OPTIX_PRIMITIVE_TYPE_TRIANGLE = 0x2531 ,
  OPTIX_PRIMITIVE_TYPE_DISPLACED_MICROMESH_TRIANGLE = 0x2532
}
 
enum  OptixPrimitiveTypeFlags {
  OPTIX_PRIMITIVE_TYPE_FLAGS_CUSTOM = 1 << 0 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_QUADRATIC_BSPLINE = 1 << 1 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CUBIC_BSPLINE = 1 << 2 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_LINEAR = 1 << 3 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CATMULLROM = 1 << 4 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_FLAT_QUADRATIC_BSPLINE = 1 << 5 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_SPHERE = 1 << 6 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CUBIC_BEZIER = 1 << 7 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_TRIANGLE = 1 << 31 ,
  OPTIX_PRIMITIVE_TYPE_FLAGS_DISPLACED_MICROMESH_TRIANGLE = 1 << 30
}
 
enum  OptixCurveEndcapFlags {
  OPTIX_CURVE_ENDCAP_DEFAULT = 0 ,
  OPTIX_CURVE_ENDCAP_ON = 1 << 0
}
 
enum  OptixBuildInputType {
  OPTIX_BUILD_INPUT_TYPE_TRIANGLES = 0x2141 ,
  OPTIX_BUILD_INPUT_TYPE_CUSTOM_PRIMITIVES = 0x2142 ,
  OPTIX_BUILD_INPUT_TYPE_INSTANCES = 0x2143 ,
  OPTIX_BUILD_INPUT_TYPE_INSTANCE_POINTERS = 0x2144 ,
  OPTIX_BUILD_INPUT_TYPE_CURVES = 0x2145 ,
  OPTIX_BUILD_INPUT_TYPE_SPHERES = 0x2146
}
 
enum  OptixInstanceFlags {
  OPTIX_INSTANCE_FLAG_NONE = 0 ,
  OPTIX_INSTANCE_FLAG_DISABLE_TRIANGLE_FACE_CULLING = 1u << 0 ,
  OPTIX_INSTANCE_FLAG_FLIP_TRIANGLE_FACING = 1u << 1 ,
  OPTIX_INSTANCE_FLAG_DISABLE_ANYHIT = 1u << 2 ,
  OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT = 1u << 3 ,
  OPTIX_INSTANCE_FLAG_FORCE_OPACITY_MICROMAP_2_STATE = 1u << 4 ,
  OPTIX_INSTANCE_FLAG_DISABLE_OPACITY_MICROMAPS = 1u << 5
}
 
enum  OptixBuildFlags {
  OPTIX_BUILD_FLAG_NONE = 0 ,
  OPTIX_BUILD_FLAG_ALLOW_UPDATE = 1u << 0 ,
  OPTIX_BUILD_FLAG_ALLOW_COMPACTION = 1u << 1 ,
  OPTIX_BUILD_FLAG_PREFER_FAST_TRACE = 1u << 2 ,
  OPTIX_BUILD_FLAG_PREFER_FAST_BUILD = 1u << 3 ,
  OPTIX_BUILD_FLAG_ALLOW_RANDOM_VERTEX_ACCESS = 1u << 4 ,
  OPTIX_BUILD_FLAG_ALLOW_RANDOM_INSTANCE_ACCESS = 1u << 5 ,
  OPTIX_BUILD_FLAG_ALLOW_OPACITY_MICROMAP_UPDATE = 1u << 6 ,
  OPTIX_BUILD_FLAG_ALLOW_DISABLE_OPACITY_MICROMAPS = 1u << 7
}
 
enum  OptixOpacityMicromapFlags {
  OPTIX_OPACITY_MICROMAP_FLAG_NONE = 0 ,
  OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_TRACE = 1 << 0 ,
  OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_BUILD = 1 << 1
}
 
enum  OptixBuildOperation {
  OPTIX_BUILD_OPERATION_BUILD = 0x2161 ,
  OPTIX_BUILD_OPERATION_UPDATE = 0x2162
}
 
enum  OptixMotionFlags {
  OPTIX_MOTION_FLAG_NONE = 0 ,
  OPTIX_MOTION_FLAG_START_VANISH = 1u << 0 ,
  OPTIX_MOTION_FLAG_END_VANISH = 1u << 1
}
 
enum  OptixAccelPropertyType {
  OPTIX_PROPERTY_TYPE_COMPACTED_SIZE = 0x2181 ,
  OPTIX_PROPERTY_TYPE_AABBS = 0x2182
}
 
enum  OptixTraversableType {
  OPTIX_TRAVERSABLE_TYPE_STATIC_TRANSFORM = 0x21C1 ,
  OPTIX_TRAVERSABLE_TYPE_MATRIX_MOTION_TRANSFORM = 0x21C2 ,
  OPTIX_TRAVERSABLE_TYPE_SRT_MOTION_TRANSFORM = 0x21C3
}
 
enum  OptixPixelFormat {
  OPTIX_PIXEL_FORMAT_HALF1 = 0x220a ,
  OPTIX_PIXEL_FORMAT_HALF2 = 0x2207 ,
  OPTIX_PIXEL_FORMAT_HALF3 = 0x2201 ,
  OPTIX_PIXEL_FORMAT_HALF4 = 0x2202 ,
  OPTIX_PIXEL_FORMAT_FLOAT1 = 0x220b ,
  OPTIX_PIXEL_FORMAT_FLOAT2 = 0x2208 ,
  OPTIX_PIXEL_FORMAT_FLOAT3 = 0x2203 ,
  OPTIX_PIXEL_FORMAT_FLOAT4 = 0x2204 ,
  OPTIX_PIXEL_FORMAT_UCHAR3 = 0x2205 ,
  OPTIX_PIXEL_FORMAT_UCHAR4 = 0x2206 ,
  OPTIX_PIXEL_FORMAT_INTERNAL_GUIDE_LAYER = 0x2209
}
 
enum  OptixDenoiserModelKind {
  OPTIX_DENOISER_MODEL_KIND_LDR = 0x2322 ,
  OPTIX_DENOISER_MODEL_KIND_HDR = 0x2323 ,
  OPTIX_DENOISER_MODEL_KIND_AOV = 0x2324 ,
  OPTIX_DENOISER_MODEL_KIND_TEMPORAL = 0x2325 ,
  OPTIX_DENOISER_MODEL_KIND_TEMPORAL_AOV = 0x2326 ,
  OPTIX_DENOISER_MODEL_KIND_UPSCALE2X = 0x2327 ,
  OPTIX_DENOISER_MODEL_KIND_TEMPORAL_UPSCALE2X = 0x2328
}
 
enum  OptixDenoiserAOVType {
  OPTIX_DENOISER_AOV_TYPE_NONE = 0 ,
  OPTIX_DENOISER_AOV_TYPE_BEAUTY = 0x7000 ,
  OPTIX_DENOISER_AOV_TYPE_SPECULAR = 0x7001 ,
  OPTIX_DENOISER_AOV_TYPE_REFLECTION = 0x7002 ,
  OPTIX_DENOISER_AOV_TYPE_REFRACTION = 0x7003 ,
  OPTIX_DENOISER_AOV_TYPE_DIFFUSE = 0x7004
}
 
enum  OptixDenoiserAlphaMode {
  OPTIX_DENOISER_ALPHA_MODE_COPY = 0 ,
  OPTIX_DENOISER_ALPHA_MODE_ALPHA_AS_AOV = 1 ,
  OPTIX_DENOISER_ALPHA_MODE_FULL_DENOISE_PASS = 2
}
 
enum  OptixRayFlags {
  OPTIX_RAY_FLAG_NONE = 0u ,
  OPTIX_RAY_FLAG_DISABLE_ANYHIT = 1u << 0 ,
  OPTIX_RAY_FLAG_ENFORCE_ANYHIT = 1u << 1 ,
  OPTIX_RAY_FLAG_TERMINATE_ON_FIRST_HIT = 1u << 2 ,
  OPTIX_RAY_FLAG_DISABLE_CLOSESTHIT = 1u << 3 ,
  OPTIX_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 1u << 4 ,
  OPTIX_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 1u << 5 ,
  OPTIX_RAY_FLAG_CULL_DISABLED_ANYHIT = 1u << 6 ,
  OPTIX_RAY_FLAG_CULL_ENFORCED_ANYHIT = 1u << 7 ,
  OPTIX_RAY_FLAG_FORCE_OPACITY_MICROMAP_2_STATE = 1u << 10
}
 
enum  OptixTransformType {
  OPTIX_TRANSFORM_TYPE_NONE = 0 ,
  OPTIX_TRANSFORM_TYPE_STATIC_TRANSFORM = 1 ,
  OPTIX_TRANSFORM_TYPE_MATRIX_MOTION_TRANSFORM = 2 ,
  OPTIX_TRANSFORM_TYPE_SRT_MOTION_TRANSFORM = 3 ,
  OPTIX_TRANSFORM_TYPE_INSTANCE = 4
}
 
enum  OptixTraversableGraphFlags {
  OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_ANY = 0 ,
  OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_GAS = 1u << 0 ,
  OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_LEVEL_INSTANCING = 1u << 1
}
 
enum  OptixCompileOptimizationLevel {
  OPTIX_COMPILE_OPTIMIZATION_DEFAULT = 0 ,
  OPTIX_COMPILE_OPTIMIZATION_LEVEL_0 = 0x2340 ,
  OPTIX_COMPILE_OPTIMIZATION_LEVEL_1 = 0x2341 ,
  OPTIX_COMPILE_OPTIMIZATION_LEVEL_2 = 0x2342 ,
  OPTIX_COMPILE_OPTIMIZATION_LEVEL_3 = 0x2343
}
 
enum  OptixCompileDebugLevel {
  OPTIX_COMPILE_DEBUG_LEVEL_DEFAULT = 0 ,
  OPTIX_COMPILE_DEBUG_LEVEL_NONE = 0x2350 ,
  OPTIX_COMPILE_DEBUG_LEVEL_MINIMAL = 0x2351 ,
  OPTIX_COMPILE_DEBUG_LEVEL_MODERATE = 0x2353 ,
  OPTIX_COMPILE_DEBUG_LEVEL_FULL = 0x2352
}
 
enum  OptixModuleCompileState {
  OPTIX_MODULE_COMPILE_STATE_NOT_STARTED = 0x2360 ,
  OPTIX_MODULE_COMPILE_STATE_STARTED = 0x2361 ,
  OPTIX_MODULE_COMPILE_STATE_IMPENDING_FAILURE = 0x2362 ,
  OPTIX_MODULE_COMPILE_STATE_FAILED = 0x2363 ,
  OPTIX_MODULE_COMPILE_STATE_COMPLETED = 0x2364
}
 
enum  OptixPayloadTypeID {
  OPTIX_PAYLOAD_TYPE_DEFAULT = 0 ,
  OPTIX_PAYLOAD_TYPE_ID_0 = (1 << 0u) ,
  OPTIX_PAYLOAD_TYPE_ID_1 = (1 << 1u) ,
  OPTIX_PAYLOAD_TYPE_ID_2 = (1 << 2u) ,
  OPTIX_PAYLOAD_TYPE_ID_3 = (1 << 3u) ,
  OPTIX_PAYLOAD_TYPE_ID_4 = (1 << 4u) ,
  OPTIX_PAYLOAD_TYPE_ID_5 = (1 << 5u) ,
  OPTIX_PAYLOAD_TYPE_ID_6 = (1 << 6u) ,
  OPTIX_PAYLOAD_TYPE_ID_7 = (1 << 7u)
}
 
enum  OptixPayloadSemantics {
  OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_NONE = 0 ,
  OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_READ = 1u << 0 ,
  OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE = 2u << 0 ,
  OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_READ_WRITE = 3u << 0 ,
  OPTIX_PAYLOAD_SEMANTICS_CH_NONE = 0 ,
  OPTIX_PAYLOAD_SEMANTICS_CH_READ = 1u << 2 ,
  OPTIX_PAYLOAD_SEMANTICS_CH_WRITE = 2u << 2 ,
  OPTIX_PAYLOAD_SEMANTICS_CH_READ_WRITE = 3u << 2 ,
  OPTIX_PAYLOAD_SEMANTICS_MS_NONE = 0 ,
  OPTIX_PAYLOAD_SEMANTICS_MS_READ = 1u << 4 ,
  OPTIX_PAYLOAD_SEMANTICS_MS_WRITE = 2u << 4 ,
  OPTIX_PAYLOAD_SEMANTICS_MS_READ_WRITE = 3u << 4 ,
  OPTIX_PAYLOAD_SEMANTICS_AH_NONE = 0 ,
  OPTIX_PAYLOAD_SEMANTICS_AH_READ = 1u << 6 ,
  OPTIX_PAYLOAD_SEMANTICS_AH_WRITE = 2u << 6 ,
  OPTIX_PAYLOAD_SEMANTICS_AH_READ_WRITE = 3u << 6 ,
  OPTIX_PAYLOAD_SEMANTICS_IS_NONE = 0 ,
  OPTIX_PAYLOAD_SEMANTICS_IS_READ = 1u << 8 ,
  OPTIX_PAYLOAD_SEMANTICS_IS_WRITE = 2u << 8 ,
  OPTIX_PAYLOAD_SEMANTICS_IS_READ_WRITE = 3u << 8
}
 
enum  OptixProgramGroupKind {
  OPTIX_PROGRAM_GROUP_KIND_RAYGEN = 0x2421 ,
  OPTIX_PROGRAM_GROUP_KIND_MISS = 0x2422 ,
  OPTIX_PROGRAM_GROUP_KIND_EXCEPTION = 0x2423 ,
  OPTIX_PROGRAM_GROUP_KIND_HITGROUP = 0x2424 ,
  OPTIX_PROGRAM_GROUP_KIND_CALLABLES = 0x2425
}
 
enum  OptixProgramGroupFlags { OPTIX_PROGRAM_GROUP_FLAGS_NONE = 0 }
 
enum  OptixExceptionCodes {
  OPTIX_EXCEPTION_CODE_STACK_OVERFLOW = -1 ,
  OPTIX_EXCEPTION_CODE_TRACE_DEPTH_EXCEEDED = -2 ,
  OPTIX_EXCEPTION_CODE_TRAVERSAL_DEPTH_EXCEEDED = -3 ,
  OPTIX_EXCEPTION_CODE_TRAVERSAL_INVALID_TRAVERSABLE = -5 ,
  OPTIX_EXCEPTION_CODE_TRAVERSAL_INVALID_MISS_SBT = -6 ,
  OPTIX_EXCEPTION_CODE_TRAVERSAL_INVALID_HIT_SBT = -7 ,
  OPTIX_EXCEPTION_CODE_UNSUPPORTED_PRIMITIVE_TYPE = -8 ,
  OPTIX_EXCEPTION_CODE_INVALID_RAY = -9 ,
  OPTIX_EXCEPTION_CODE_CALLABLE_PARAMETER_MISMATCH = -10 ,
  OPTIX_EXCEPTION_CODE_BUILTIN_IS_MISMATCH = -11 ,
  OPTIX_EXCEPTION_CODE_CALLABLE_INVALID_SBT = -12 ,
  OPTIX_EXCEPTION_CODE_CALLABLE_NO_DC_SBT_RECORD = -13 ,
  OPTIX_EXCEPTION_CODE_CALLABLE_NO_CC_SBT_RECORD = -14 ,
  OPTIX_EXCEPTION_CODE_UNSUPPORTED_SINGLE_LEVEL_GAS = -15 ,
  OPTIX_EXCEPTION_CODE_INVALID_VALUE_ARGUMENT_0 = -16 ,
  OPTIX_EXCEPTION_CODE_INVALID_VALUE_ARGUMENT_1 = -17 ,
  OPTIX_EXCEPTION_CODE_INVALID_VALUE_ARGUMENT_2 = -18 ,
  OPTIX_EXCEPTION_CODE_UNSUPPORTED_DATA_ACCESS = -32 ,
  OPTIX_EXCEPTION_CODE_PAYLOAD_TYPE_MISMATCH = -33
}
 
enum  OptixExceptionFlags {
  OPTIX_EXCEPTION_FLAG_NONE = 0 ,
  OPTIX_EXCEPTION_FLAG_STACK_OVERFLOW = 1u << 0 ,
  OPTIX_EXCEPTION_FLAG_TRACE_DEPTH = 1u << 1 ,
  OPTIX_EXCEPTION_FLAG_USER = 1u << 2 ,
  OPTIX_EXCEPTION_FLAG_DEBUG = 1u << 3
}
 
enum  OptixQueryFunctionTableOptions { OPTIX_QUERY_FUNCTION_TABLE_OPTION_DUMMY = 0 }
 

Detailed Description

OptiX Types.

Macro Definition Documentation

 OPTIX_AABB_BUFFER_BYTE_ALIGNMENT

#define OPTIX_AABB_BUFFER_BYTE_ALIGNMENT   8ull

 OPTIX_ACCEL_BUFFER_BYTE_ALIGNMENT

#define OPTIX_ACCEL_BUFFER_BYTE_ALIGNMENT   128ull

Alignment requirement for output and temporay buffers for acceleration structures.

 OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_TYPE_COUNT

#define OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_TYPE_COUNT   8

Maximum number of payload types allowed.

 OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_VALUE_COUNT

#define OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_VALUE_COUNT   32

Maximum number of payload values allowed.

 OPTIX_COMPILE_DEFAULT_MAX_REGISTER_COUNT

#define OPTIX_COMPILE_DEFAULT_MAX_REGISTER_COUNT   0

Maximum number of registers allowed. Defaults to no explicit limit.

 OPTIX_DISPLACEMENT_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT

#define OPTIX_DISPLACEMENT_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT   128ull

Alignment requirement for displacement micromap array buffers.

 OPTIX_DISPLACEMENT_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT

#define OPTIX_DISPLACEMENT_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT   8ull

Alignment requirement for displacement micromap descriptor buffers.

 OPTIX_DISPLACEMENT_MICROMAP_MAX_SUBDIVISION_LEVEL

#define OPTIX_DISPLACEMENT_MICROMAP_MAX_SUBDIVISION_LEVEL   5

Maximum subdivision level for displacement micromaps.

 OPTIX_GEOMETRY_TRANSFORM_BYTE_ALIGNMENT

#define OPTIX_GEOMETRY_TRANSFORM_BYTE_ALIGNMENT   16ull

Alignment requirement for OptixBuildInputTriangleArray::preTransform.

 OPTIX_INSTANCE_BYTE_ALIGNMENT

 OPTIX_OPACITY_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT

#define OPTIX_OPACITY_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT   128ull

Alignment requirement for opacity micromap array buffers.

 OPTIX_OPACITY_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT

#define OPTIX_OPACITY_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT   8ull

 OPTIX_OPACITY_MICROMAP_MAX_SUBDIVISION_LEVEL

#define OPTIX_OPACITY_MICROMAP_MAX_SUBDIVISION_LEVEL   12

Maximum subdivision level for opacity micromaps.

 OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_OPAQUE

#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_OPAQUE   ( -2 )

 OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_TRANSPARENT

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

 OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_OPAQUE

#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_OPAQUE   ( -4 )

 OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_TRANSPARENT

#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_TRANSPARENT   ( -3 )

 OPTIX_OPACITY_MICROMAP_STATE_OPAQUE

#define OPTIX_OPACITY_MICROMAP_STATE_OPAQUE   ( 1 )

 OPTIX_OPACITY_MICROMAP_STATE_TRANSPARENT

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

 OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE

#define OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE   ( 3 )

 OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT

#define OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT   ( 2 )

 OPTIX_SBT_RECORD_ALIGNMENT

#define OPTIX_SBT_RECORD_ALIGNMENT   16ull

Alignment requirement for device pointers in OptixShaderBindingTable.

 OPTIX_SBT_RECORD_HEADER_SIZE

#define OPTIX_SBT_RECORD_HEADER_SIZE   ( (size_t)32 )

Size of the SBT record headers.

 OPTIX_TRANSFORM_BYTE_ALIGNMENT

#define OPTIX_TRANSFORM_BYTE_ALIGNMENT   64ull

Typedef Documentation

 CUdeviceptr

typedef unsigned long long CUdeviceptr

CUDA device pointer.

 OptixAabb

typedef struct OptixAabb OptixAabb

AABB inputs.

 OptixAccelBufferSizes

Struct for querying builder allocation requirements.

Once queried the sizes should be used to allocate device memory of at least these sizes.

See also
optixAccelComputeMemoryUsage()

 OptixAccelBuildOptions

Build options for acceleration structures.

See also
optixAccelComputeMemoryUsage(), optixAccelBuild()

 OptixAccelEmitDesc

Specifies a type and output destination for emitted post-build properties.

See also
optixAccelBuild()

 OptixAccelPropertyType

Properties which can be emitted during acceleration structure build.

See also
OptixAccelEmitDesc::type.

 OptixBuildFlags

Builder Options.

Used for OptixAccelBuildOptions::buildFlags. Can be or'ed together.

 OptixBuildInput

Build inputs.

All of them support motion and the size of the data arrays needs to match the number of motion steps

See also
optixAccelComputeMemoryUsage(), optixAccelBuild()

 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.

See also
OptixBuildInput::curveArray

 OptixBuildInputCustomPrimitiveArray

 OptixBuildInputDisplacementMicromap

Optional displacement part of a triangle array input.

 OptixBuildInputInstanceArray

Instance and instance pointer inputs.

See also
OptixBuildInput::instanceArray

 OptixBuildInputOpacityMicromap

 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.

See also
OptixBuildInput::sphereArray

 OptixBuildInputTriangleArray

 OptixBuildInputType

Enum to distinguish the different build input types.

See also
OptixBuildInput::type

 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.

See also
optixAccelComputeMemoryUsage(), optixAccelBuild(), OptixAccelBuildOptions

 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.

See also
optixBuiltinISModuleGet()

 OptixCompileDebugLevel

 OptixCompileOptimizationLevel

 OptixCurveEndcapFlags

Curve end cap types, for non-linear curves.

 OptixDenoiser

typedef struct OptixDenoiser_t* OptixDenoiser

Opaque type representing a denoiser instance.

 OptixDenoiserAlphaMode

 OptixDenoiserAOVType

AOV type used by the denoiser.

 OptixDenoiserGuideLayer

Guide layer for the denoiser.

See also
optixDenoiserInvoke()

 OptixDenoiserLayer

Input/Output layers for the denoiser.

See also
optixDenoiserInvoke()

 OptixDenoiserModelKind

Model kind used by the denoiser.

See also
optixDenoiserCreate

 OptixDenoiserOptions

Options used by the denoiser.

See also
optixDenoiserCreate()

 OptixDenoiserParams

 OptixDenoiserSizes

Various sizes related to the denoiser.

See also
optixDenoiserComputeMemoryResources()

 OptixDeviceContext

typedef struct OptixDeviceContext_t* OptixDeviceContext

Opaque type representing a device context.

 OptixDeviceContextOptions

 OptixDeviceContextValidationMode

Validation mode settings.

When enabled, certain device code utilities will be enabled to provide as good debug and error checking facilities as possible.

See also
optixDeviceContextCreate()

 OptixDeviceProperty

 OptixDisplacementMicromapArrayBuildInput

Inputs to displacement micromaps array construction.

 OptixDisplacementMicromapArrayIndexingMode

indexing mode of triangles to displacement micromaps in an array, used in OptixBuildInputDisplacementMicromap.

 OptixDisplacementMicromapBiasAndScaleFormat

 OptixDisplacementMicromapDesc

 OptixDisplacementMicromapDirectionFormat

 OptixDisplacementMicromapFlags

Flags defining behavior of DMMs in a DMM array.

 OptixDisplacementMicromapFormat

 OptixDisplacementMicromapHistogramEntry

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.

 OptixDisplacementMicromapTriangleFlags

 OptixDisplacementMicromapUsageCount

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.

 OptixExceptionCodes

The following values are used to indicate which exception was thrown.

 OptixExceptionFlags

 OptixGeometryFlags

 OptixHitKind

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

See also
optixGetHitKind()

 OptixImage2D

typedef struct OptixImage2D OptixImage2D

Image descriptor used by the denoiser.

See also
optixDenoiserInvoke(), optixDenoiserComputeIntensity()

 OptixIndicesFormat

 OptixInstance

 OptixInstanceFlags

Flags set on the OptixInstance::flags.

These can be or'ed together to combine multiple flags.

 OptixLogCallback

typedef void(* OptixLogCallback) (unsigned int level, const char *tag, const char *message, void *cbdata)

Type of the callback function used for log messages.

Parameters
[in]levelThe log level indicates the severity of the message. See below for possible values.
[in]tagA terse message category description (e.g., 'SCENE STAT').
[in]messageNull terminated log message (without newline at the end).
[in]cbdataCallback 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.

See also
optixDeviceContextSetLogCallback(), OptixDeviceContextOptions

 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:

float matrixData[N][12];
... // setup matrixData
size_t transformSizeInBytes = sizeof( OptixMatrixMotionTransform ) + ( N-2 ) * 12 * sizeof( float );
OptixMatrixMotionTransform* matrixMoptionTransform = (OptixMatrixMotionTransform*) malloc( transformSizeInBytes );
memset( matrixMoptionTransform, 0, transformSizeInBytes );
... // setup other members of matrixMoptionTransform
matrixMoptionTransform->motionOptions.numKeys
memcpy( matrixMoptionTransform->transform, matrixData, N * 12 * sizeof( float ) );
... // copy matrixMoptionTransform to device memory
free( matrixMoptionTransform )
struct OptixMatrixMotionTransform OptixMatrixMotionTransform
Represents a matrix motion transformation.
Represents a matrix motion transformation.
Definition: optix_types.h:1435
OptixMotionOptions motionOptions
The motion options for this transformation. Must have at least two motion keys.
Definition: optix_types.h:1441
float transform[2][12]
Affine object-to-world transformation as 3x4 matrix in row-major layout.
Definition: optix_types.h:1447
unsigned short numKeys
If numKeys > 1, motion is enabled. timeBegin, timeEnd and flags are all ignored when motion is disabl...
Definition: optix_types.h:1301
See also
optixConvertPointerToTraversableHandle()

 OptixMicromapBuffers

Buffer inputs for opacity/displacement micromap array builds.

 OptixMicromapBufferSizes

Conservative memory requirements for building a opacity/displacement micromap array.

 OptixModule

typedef struct OptixModule_t* OptixModule

Opaque type representing a module.

 OptixModuleCompileBoundValueEntry

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.

See also
OptixModuleCompileOptions

 OptixModuleCompileOptions

Compilation options for module.

See also
optixModuleCreate()

 OptixModuleCompileState

 OptixMotionFlags

Enum to specify motion flags.

See also
OptixMotionOptions::flags.

 OptixMotionOptions

 OptixOpacityMicromapArrayBuildInput

Inputs to opacity micromap array construction.

 OptixOpacityMicromapArrayIndexingMode

indexing mode of triangles to opacity micromaps in an array, used in OptixBuildInputOpacityMicromap.

 OptixOpacityMicromapDesc

Opacity micromap descriptor.

 OptixOpacityMicromapFlags

Flags defining behavior of opacity micromaps in a opacity micromap array.

 OptixOpacityMicromapFormat

Specifies whether to use a 2- or 4-state opacity micromap format.

 OptixOpacityMicromapHistogramEntry

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.

 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.

 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.

 OptixPayloadType

Specifies a single payload type.

 OptixPayloadTypeID

Payload type identifiers.

 OptixPipeline

typedef struct OptixPipeline_t* OptixPipeline

Opaque type representing a pipeline.

 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.

See also
optixModuleCreate(), optixPipelineCreate()

 OptixPipelineLinkOptions

Link options for a pipeline.

See also
optixPipelineCreate()

 OptixPixelFormat

Pixel formats used by the denoiser.

See also
OptixImage2D::format

 OptixPrimitiveType

Builtin primitive types.

 OptixPrimitiveTypeFlags

 OptixProgramGroup

typedef struct OptixProgramGroup_t* OptixProgramGroup

Opaque type representing a program group.

 OptixProgramGroupCallables

Program group representing callables.

Module and entry function name need to be valid for at least one of the two callables.

See also
#OptixProgramGroupDesc::callables

 OptixProgramGroupDesc

Descriptor for program groups.

 OptixProgramGroupFlags

Flags for program groups.

 OptixProgramGroupHitgroup

Program group representing the hitgroup.

For each of the three program types, module and entry function name might both be nullptr.

See also
OptixProgramGroupDesc::hitgroup

 OptixProgramGroupKind

Distinguishes different kinds of program groups.

 OptixProgramGroupOptions

Program group options.

See also
optixProgramGroupCreate()

 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.

See also
OptixProgramGroupDesc::raygen, OptixProgramGroupDesc::miss, OptixProgramGroupDesc::exception

 OptixQueryFunctionTable_t

typedef OptixResult() OptixQueryFunctionTable_t(int abiId, unsigned int numOptions, OptixQueryFunctionTableOptions *, const void **, void *functionTable, size_t sizeOfTable)

Type of the function optixQueryFunctionTable()

 OptixQueryFunctionTableOptions

Options that can be passed to optixQueryFunctionTable()

 OptixRayFlags

Ray flags passed to the device function optixTrace(). These affect the behavior of traversal per invocation.

See also
optixTrace()

 OptixRelocateInput

Relocation inputs.

See also
optixAccelRelocate()

 OptixRelocateInputInstanceArray

Instance and instance pointer inputs.

See also
OptixRelocateInput::instanceArray

 OptixRelocateInputOpacityMicromap

 OptixRelocateInputTriangleArray

 OptixRelocationInfo

 OptixResult

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.

See also
optixGetErrorName(), optixGetErrorString()

 OptixShaderBindingTable

Describes the shader binding table (SBT)

See also
optixLaunch()

 OptixSRTData

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.

See also
OptixSRTMotionTransform::srtData, optixConvertPointerToTraversableHandle()

 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:

OptixSRTData srtData[N];
... // setup srtData
size_t transformSizeInBytes = sizeof( OptixSRTMotionTransform ) + ( N-2 ) * sizeof( OptixSRTData );
OptixSRTMotionTransform* srtMotionTransform = (OptixSRTMotionTransform*) malloc( transformSizeInBytes );
memset( srtMotionTransform, 0, transformSizeInBytes );
... // setup other members of srtMotionTransform
srtMotionTransform->motionOptions.numKeys = N;
memcpy( srtMotionTransform->srtData, srtData, N * sizeof( OptixSRTData ) );
... // copy srtMotionTransform to device memory
free( srtMotionTransform )
struct OptixSRTData OptixSRTData
Represents an SRT transformation.
struct OptixSRTMotionTransform OptixSRTMotionTransform
Represents an SRT motion transformation.
Represents an SRT transformation.
Definition: optix_types.h:1481
Represents an SRT motion transformation.
Definition: optix_types.h:1518
OptixMotionOptions motionOptions
The motion options for this transformation Must have at least two motion keys.
Definition: optix_types.h:1524
OptixSRTData srtData[2]
The actual SRT data describing the transformation.
Definition: optix_types.h:1530
See also
optixConvertPointerToTraversableHandle()

 OptixStackSizes

Describes the stack size requirements of a program group.

See also
optixProgramGroupGetStackSize()

 OptixStaticTransform

Static transform.

The device address of instances of this type must be a multiple of OPTIX_TRANSFORM_BYTE_ALIGNMENT.

See also
optixConvertPointerToTraversableHandle()

 OptixTask

typedef struct OptixTask_t* OptixTask

Opaque type representing a work task.

 OptixTransformFormat

 OptixTransformType

Transform.

OptixTransformType is used by the device function optixGetTransformTypeFromHandle() to determine the type of the OptixTraversableHandle returned from optixGetTransformListHandle().

 OptixTraversableGraphFlags

Specifies the set of valid traversable graphs that may be passed to invocation of optixTrace(). Flags may be bitwise combined.

 OptixTraversableHandle

typedef unsigned long long OptixTraversableHandle

Traversable handle.

 OptixTraversableType

 OptixVertexFormat

 OptixVisibilityMask

typedef unsigned int OptixVisibilityMask

Visibility mask.

Enumeration Type Documentation

 OptixAccelPropertyType

Properties which can be emitted during acceleration structure build.

See also
OptixAccelEmitDesc::type.
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.

 OptixBuildFlags

Builder Options.

Used for OptixAccelBuildOptions::buildFlags. Can be or'ed together.

Enumerator
OPTIX_BUILD_FLAG_NONE 

No special flags set.

OPTIX_BUILD_FLAG_ALLOW_UPDATE 

Allow updating the build with new vertex positions with subsequent calls to optixAccelBuild.

OPTIX_BUILD_FLAG_ALLOW_COMPACTION 
OPTIX_BUILD_FLAG_PREFER_FAST_TRACE 

This flag is mutually exclusive with OPTIX_BUILD_FLAG_PREFER_FAST_BUILD.

OPTIX_BUILD_FLAG_PREFER_FAST_BUILD 

This flag is mutually exclusive with OPTIX_BUILD_FLAG_PREFER_FAST_TRACE.

OPTIX_BUILD_FLAG_ALLOW_RANDOM_VERTEX_ACCESS 

Allow random access to build input vertices See optixGetTriangleVertexData optixGetLinearCurveVertexData optixGetQuadraticBSplineVertexData optixGetCubicBSplineVertexData optixGetCatmullRomVertexData optixGetRibbonVertexData optixGetRibbonNormal optixGetSphereData.

OPTIX_BUILD_FLAG_ALLOW_RANDOM_INSTANCE_ACCESS 

Allow random access to instances See optixGetInstanceTraversableFromIAS.

OPTIX_BUILD_FLAG_ALLOW_OPACITY_MICROMAP_UPDATE 

Support updating the opacity micromap array and opacity micromap indices on refits. May increase AS size and may have a small negative impact on traversal performance. If this flag is absent, all opacity micromap inputs must remain unchanged between the initial AS builds and their subsequent refits.

OPTIX_BUILD_FLAG_ALLOW_DISABLE_OPACITY_MICROMAPS 

If enabled, any instances referencing this GAS are allowed to disable the opacity micromap test through the DISABLE_OPACITY_MICROMAPS flag instance flag. Note that the GAS will not be optimized for the attached opacity micromap Arrays if this flag is set, which may result in reduced traversal performance.

 OptixBuildInputType

 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.

See also
optixAccelComputeMemoryUsage(), optixAccelBuild(), OptixAccelBuildOptions
Enumerator
OPTIX_BUILD_OPERATION_BUILD 

Perform a full build operation.

OPTIX_BUILD_OPERATION_UPDATE 

Perform an update using new bounds.

 OptixCompileDebugLevel

Debug levels.

See also
OptixModuleCompileOptions::debugLevel
Enumerator
OPTIX_COMPILE_DEBUG_LEVEL_DEFAULT 

Default currently is minimal.

OPTIX_COMPILE_DEBUG_LEVEL_NONE 

No debug information.

OPTIX_COMPILE_DEBUG_LEVEL_MINIMAL 

Generate information that does not impact performance. Note this replaces OPTIX_COMPILE_DEBUG_LEVEL_LINEINFO.

OPTIX_COMPILE_DEBUG_LEVEL_MODERATE 

Generate some debug information with slight performance cost.

OPTIX_COMPILE_DEBUG_LEVEL_FULL 

Generate full debug information.

 OptixCompileOptimizationLevel

 OptixCurveEndcapFlags

Curve end cap types, for non-linear curves.

Enumerator
OPTIX_CURVE_ENDCAP_DEFAULT 

Default end caps. Round end caps for linear, no end caps for quadratic/cubic.

OPTIX_CURVE_ENDCAP_ON 

Flat end caps at both ends of quadratic/cubic curve segments. Not valid for linear.

 OptixDenoiserAlphaMode

Various parameters used by the denoiser.

See also
optixDenoiserInvoke()
optixDenoiserComputeIntensity()
optixDenoiserComputeAverageColor()
Enumerator
OPTIX_DENOISER_ALPHA_MODE_COPY 

Copy alpha (if present) from input layer, no denoising.

OPTIX_DENOISER_ALPHA_MODE_ALPHA_AS_AOV 

Denoise alpha separately. With AOV model kinds, treat alpha like an AOV.

OPTIX_DENOISER_ALPHA_MODE_FULL_DENOISE_PASS 

With AOV model kinds, full denoise pass with alpha. This is slower than OPTIX_DENOISER_ALPHA_MODE_ALPHA_AS_AOV.

 OptixDenoiserAOVType

 OptixDenoiserModelKind

Model kind used by the denoiser.

See also
optixDenoiserCreate
Enumerator
OPTIX_DENOISER_MODEL_KIND_LDR 

Use the built-in model appropriate for low dynamic range input.

OPTIX_DENOISER_MODEL_KIND_HDR 

Use the built-in model appropriate for high dynamic range input.

OPTIX_DENOISER_MODEL_KIND_AOV 

Use the built-in model appropriate for high dynamic range input and support for AOVs.

OPTIX_DENOISER_MODEL_KIND_TEMPORAL 

Use the built-in model appropriate for high dynamic range input, temporally stable.

OPTIX_DENOISER_MODEL_KIND_TEMPORAL_AOV 

Use the built-in model appropriate for high dynamic range input and support for AOVs, temporally stable.

OPTIX_DENOISER_MODEL_KIND_UPSCALE2X 

Use the built-in model appropriate for high dynamic range input and support for AOVs, upscaling 2x.

OPTIX_DENOISER_MODEL_KIND_TEMPORAL_UPSCALE2X 

Use the built-in model appropriate for high dynamic range input and support for AOVs, upscaling 2x, temporally stable.

 OptixDeviceContextValidationMode

Validation mode settings.

When enabled, certain device code utilities will be enabled to provide as good debug and error checking facilities as possible.

See also
optixDeviceContextCreate()
Enumerator
OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_OFF 
OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_ALL 

 OptixDeviceProperty

Parameters used for optixDeviceContextGetProperty()

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

 OptixDisplacementMicromapArrayIndexingMode

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.

 OptixDisplacementMicromapBiasAndScaleFormat

 OptixDisplacementMicromapDirectionFormat

 OptixDisplacementMicromapFlags

Flags defining behavior of DMMs in a DMM array.

Enumerator
OPTIX_DISPLACEMENT_MICROMAP_FLAG_NONE 
OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_TRACE 

This flag is mutually exclusive with OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_BUILD.

OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_BUILD 

This flag is mutually exclusive with OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_TRACE.

 OptixDisplacementMicromapFormat

 OptixDisplacementMicromapTriangleFlags

Enumerator
OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_NONE 
OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_DECIMATE_EDGE_01 

The triangle edge v0..v1 is decimated: after subdivision the number of micro triangles on that edge is halved such that a neighboring triangle can have a lower subdivision level without introducing cracks.

OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_DECIMATE_EDGE_12 

The triangle edge v1..v2 is decimated.

OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_DECIMATE_EDGE_20 

The triangle edge v2..v0 is decimated.

 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.

 OptixExceptionFlags

Exception flags.

See also
OptixPipelineCompileOptions::exceptionFlags, OptixExceptionCodes
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.

 OptixGeometryFlags

Flags used by OptixBuildInputTriangleArray::flags and OptixBuildInputCustomPrimitiveArray::flags.

Enumerator
OPTIX_GEOMETRY_FLAG_NONE 

No flags set.

OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT 

Disables the invocation of the anyhit program. Can be overridden by OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT and OPTIX_RAY_FLAG_ENFORCE_ANYHIT.

OPTIX_GEOMETRY_FLAG_REQUIRE_SINGLE_ANYHIT_CALL 

If set, an intersection with the primitive will trigger one and only one invocation of the anyhit program. Otherwise, the anyhit program may be invoked more than once.

OPTIX_GEOMETRY_FLAG_DISABLE_TRIANGLE_FACE_CULLING 

Prevent triangles from getting culled due to their orientation. Effectively ignores ray flags OPTIX_RAY_FLAG_CULL_BACK_FACING_TRIANGLES and OPTIX_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES.

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

See also
optixGetHitKind()
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.

 OptixIndicesFormat

Format of indices used int OptixBuildInputTriangleArray::indexFormat.

Enumerator
OPTIX_INDICES_FORMAT_NONE 

No indices, this format must only be used in combination with triangle soups, i.e., numIndexTriplets must be zero.

OPTIX_INDICES_FORMAT_UNSIGNED_SHORT3 

Three shorts.

OPTIX_INDICES_FORMAT_UNSIGNED_INT3 

Three ints.

 OptixInstanceFlags

Flags set on the OptixInstance::flags.

These can be or'ed together to combine multiple flags.

Enumerator
OPTIX_INSTANCE_FLAG_NONE 

No special flag set.

OPTIX_INSTANCE_FLAG_DISABLE_TRIANGLE_FACE_CULLING 

Prevent triangles from getting culled due to their orientation. Effectively ignores ray flags OPTIX_RAY_FLAG_CULL_BACK_FACING_TRIANGLES and OPTIX_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES.

OPTIX_INSTANCE_FLAG_FLIP_TRIANGLE_FACING 

Flip triangle orientation. This affects front/backface culling as well as the reported face in case of a hit.

OPTIX_INSTANCE_FLAG_DISABLE_ANYHIT 

Disable anyhit programs for all geometries of the instance. Can be overridden by OPTIX_RAY_FLAG_ENFORCE_ANYHIT. This flag is mutually exclusive with OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT.

OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT 

Enables anyhit programs for all geometries of the instance. Overrides OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT Can be overridden by OPTIX_RAY_FLAG_DISABLE_ANYHIT. This flag is mutually exclusive with OPTIX_INSTANCE_FLAG_DISABLE_ANYHIT.

OPTIX_INSTANCE_FLAG_FORCE_OPACITY_MICROMAP_2_STATE 

Force 4-state opacity micromaps to behave as 2-state opacity micromaps during traversal.

OPTIX_INSTANCE_FLAG_DISABLE_OPACITY_MICROMAPS 

Don't perform opacity micromap query for this instance. GAS must be built with ALLOW_DISABLE_OPACITY_MICROMAPS for this to be valid. This flag overrides FORCE_OPACTIY_MIXROMAP_2_STATE instance and ray flags.

 OptixModuleCompileState

Module compilation state.

See also
optixModuleGetCompilationState(), optixModuleCreateWithTasks()
Enumerator
OPTIX_MODULE_COMPILE_STATE_NOT_STARTED 

No OptixTask objects have started.

OPTIX_MODULE_COMPILE_STATE_STARTED 

Started, but not all OptixTask objects have completed. No detected failures.

OPTIX_MODULE_COMPILE_STATE_IMPENDING_FAILURE 

Not all OptixTask objects have completed, but at least one has failed.

OPTIX_MODULE_COMPILE_STATE_FAILED 

All OptixTask objects have completed, and at least one has failed.

OPTIX_MODULE_COMPILE_STATE_COMPLETED 

All OptixTask objects have completed. The OptixModule is ready to be used.

 OptixMotionFlags

 OptixOpacityMicromapArrayIndexingMode

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.

 OptixOpacityMicromapFlags

Flags defining behavior of opacity micromaps in a opacity micromap array.

Enumerator
OPTIX_OPACITY_MICROMAP_FLAG_NONE 
OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_TRACE 

This flag is mutually exclusive with OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_BUILD.

OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_BUILD 

This flag is mutually exclusive with OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_TRACE.

 OptixOpacityMicromapFormat

Specifies whether to use a 2- or 4-state opacity micromap format.

Enumerator
OPTIX_OPACITY_MICROMAP_FORMAT_NONE 

invalid format

OPTIX_OPACITY_MICROMAP_FORMAT_2_STATE 

0: Transparent, 1: Opaque

OPTIX_OPACITY_MICROMAP_FORMAT_4_STATE 

0: Transparent, 1: Opaque, 2: Unknown-Transparent, 3: Unknown-Opaque

 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.

Enumerator
OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_NONE 
OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_READ 
OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE 
OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_READ_WRITE 
OPTIX_PAYLOAD_SEMANTICS_CH_NONE 
OPTIX_PAYLOAD_SEMANTICS_CH_READ 
OPTIX_PAYLOAD_SEMANTICS_CH_WRITE 
OPTIX_PAYLOAD_SEMANTICS_CH_READ_WRITE 
OPTIX_PAYLOAD_SEMANTICS_MS_NONE 
OPTIX_PAYLOAD_SEMANTICS_MS_READ 
OPTIX_PAYLOAD_SEMANTICS_MS_WRITE 
OPTIX_PAYLOAD_SEMANTICS_MS_READ_WRITE 
OPTIX_PAYLOAD_SEMANTICS_AH_NONE 
OPTIX_PAYLOAD_SEMANTICS_AH_READ 
OPTIX_PAYLOAD_SEMANTICS_AH_WRITE 
OPTIX_PAYLOAD_SEMANTICS_AH_READ_WRITE 
OPTIX_PAYLOAD_SEMANTICS_IS_NONE 
OPTIX_PAYLOAD_SEMANTICS_IS_READ 
OPTIX_PAYLOAD_SEMANTICS_IS_WRITE 
OPTIX_PAYLOAD_SEMANTICS_IS_READ_WRITE 

 OptixPayloadTypeID

 OptixPixelFormat

Pixel formats used by the denoiser.

See also
OptixImage2D::format
Enumerator
OPTIX_PIXEL_FORMAT_HALF1 

one half

OPTIX_PIXEL_FORMAT_HALF2 

two halfs, XY

OPTIX_PIXEL_FORMAT_HALF3 

three halfs, RGB

OPTIX_PIXEL_FORMAT_HALF4 

four halfs, RGBA

OPTIX_PIXEL_FORMAT_FLOAT1 

one float

OPTIX_PIXEL_FORMAT_FLOAT2 

two floats, XY

OPTIX_PIXEL_FORMAT_FLOAT3 

three floats, RGB

OPTIX_PIXEL_FORMAT_FLOAT4 

four floats, RGBA

OPTIX_PIXEL_FORMAT_UCHAR3 

three unsigned chars, RGB

OPTIX_PIXEL_FORMAT_UCHAR4 

four unsigned chars, RGBA

OPTIX_PIXEL_FORMAT_INTERNAL_GUIDE_LAYER 

internal format

 OptixPrimitiveType

Builtin primitive types.

Enumerator
OPTIX_PRIMITIVE_TYPE_CUSTOM 

Custom primitive.

OPTIX_PRIMITIVE_TYPE_ROUND_QUADRATIC_BSPLINE 

B-spline curve of degree 2 with circular cross-section.

OPTIX_PRIMITIVE_TYPE_ROUND_CUBIC_BSPLINE 

B-spline curve of degree 3 with circular cross-section.

OPTIX_PRIMITIVE_TYPE_ROUND_LINEAR 

Piecewise linear curve with circular cross-section.

OPTIX_PRIMITIVE_TYPE_ROUND_CATMULLROM 

CatmullRom curve with circular cross-section.

OPTIX_PRIMITIVE_TYPE_FLAT_QUADRATIC_BSPLINE 

B-spline curve of degree 2 with oriented, flat cross-section.

OPTIX_PRIMITIVE_TYPE_SPHERE 

Sphere.

OPTIX_PRIMITIVE_TYPE_ROUND_CUBIC_BEZIER 

Bezier curve of degree 3 with circular cross-section.

OPTIX_PRIMITIVE_TYPE_TRIANGLE 

Triangle.

OPTIX_PRIMITIVE_TYPE_DISPLACED_MICROMESH_TRIANGLE 

Triangle with an applied displacement micromap.

 OptixPrimitiveTypeFlags

Builtin flags may be bitwise combined.

See also
OptixPipelineCompileOptions::usesPrimitiveTypeFlags
Enumerator
OPTIX_PRIMITIVE_TYPE_FLAGS_CUSTOM 

Custom primitive.

OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_QUADRATIC_BSPLINE 

B-spline curve of degree 2 with circular cross-section.

OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CUBIC_BSPLINE 

B-spline curve of degree 3 with circular cross-section.

OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_LINEAR 

Piecewise linear curve with circular cross-section.

OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CATMULLROM 

CatmullRom curve with circular cross-section.

OPTIX_PRIMITIVE_TYPE_FLAGS_FLAT_QUADRATIC_BSPLINE 

B-spline curve of degree 2 with oriented, flat cross-section.

OPTIX_PRIMITIVE_TYPE_FLAGS_SPHERE 

Sphere.

OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CUBIC_BEZIER 

Bezier curve of degree 3 with circular cross-section.

OPTIX_PRIMITIVE_TYPE_FLAGS_TRIANGLE 

Triangle.

OPTIX_PRIMITIVE_TYPE_FLAGS_DISPLACED_MICROMESH_TRIANGLE 

Triangle with an applied displacement micromap.

 OptixProgramGroupFlags

Flags for program groups.

Enumerator
OPTIX_PROGRAM_GROUP_FLAGS_NONE 

Currently there are no flags.

 OptixProgramGroupKind

Distinguishes different kinds of program groups.

Enumerator
OPTIX_PROGRAM_GROUP_KIND_RAYGEN 

Program group containing a raygen (RG) program.

See also
OptixProgramGroupSingleModule, OptixProgramGroupDesc::raygen
OPTIX_PROGRAM_GROUP_KIND_MISS 

Program group containing a miss (MS) program.

See also
OptixProgramGroupSingleModule, OptixProgramGroupDesc::miss
OPTIX_PROGRAM_GROUP_KIND_EXCEPTION 

Program group containing an exception (EX) program.

See also
OptixProgramGroupHitgroup, OptixProgramGroupDesc::exception
OPTIX_PROGRAM_GROUP_KIND_HITGROUP 

Program group containing an intersection (IS), any hit (AH), and/or closest hit (CH) program.

See also
OptixProgramGroupSingleModule, OptixProgramGroupDesc::hitgroup
OPTIX_PROGRAM_GROUP_KIND_CALLABLES 

Program group containing a direct (DC) or continuation (CC) callable program.

See also
OptixProgramGroupCallables, OptixProgramGroupDesc::callables

 OptixQueryFunctionTableOptions

Options that can be passed to optixQueryFunctionTable()

Enumerator
OPTIX_QUERY_FUNCTION_TABLE_OPTION_DUMMY 

Placeholder (there are no options yet)

 OptixRayFlags

Ray flags passed to the device function optixTrace(). These affect the behavior of traversal per invocation.

See also
optixTrace()
Enumerator
OPTIX_RAY_FLAG_NONE 

No change from the behavior configured for the individual AS.

OPTIX_RAY_FLAG_DISABLE_ANYHIT 

Disables anyhit programs for the ray. Overrides OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT. This flag is mutually exclusive with OPTIX_RAY_FLAG_ENFORCE_ANYHIT, OPTIX_RAY_FLAG_CULL_DISABLED_ANYHIT, OPTIX_RAY_FLAG_CULL_ENFORCED_ANYHIT.

OPTIX_RAY_FLAG_ENFORCE_ANYHIT 

Forces anyhit program execution for the ray. Overrides OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT as well as OPTIX_INSTANCE_FLAG_DISABLE_ANYHIT. This flag is mutually exclusive with OPTIX_RAY_FLAG_DISABLE_ANYHIT, OPTIX_RAY_FLAG_CULL_DISABLED_ANYHIT, OPTIX_RAY_FLAG_CULL_ENFORCED_ANYHIT.

OPTIX_RAY_FLAG_TERMINATE_ON_FIRST_HIT 

Terminates the ray after the first hit and executes the closesthit program of that hit.

OPTIX_RAY_FLAG_DISABLE_CLOSESTHIT 

Disables closesthit programs for the ray, but still executes miss program in case of a miss.

OPTIX_RAY_FLAG_CULL_BACK_FACING_TRIANGLES 

Do not intersect triangle back faces (respects a possible face change due to instance flag OPTIX_INSTANCE_FLAG_FLIP_TRIANGLE_FACING). This flag is mutually exclusive with OPTIX_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES.

OPTIX_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES 

Do not intersect triangle front faces (respects a possible face change due to instance flag OPTIX_INSTANCE_FLAG_FLIP_TRIANGLE_FACING). This flag is mutually exclusive with OPTIX_RAY_FLAG_CULL_BACK_FACING_TRIANGLES.

OPTIX_RAY_FLAG_CULL_DISABLED_ANYHIT 

Do not intersect geometry which disables anyhit programs (due to setting geometry flag OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT or instance flag OPTIX_INSTANCE_FLAG_DISABLE_ANYHIT). This flag is mutually exclusive with OPTIX_RAY_FLAG_CULL_ENFORCED_ANYHIT, OPTIX_RAY_FLAG_ENFORCE_ANYHIT, OPTIX_RAY_FLAG_DISABLE_ANYHIT.

OPTIX_RAY_FLAG_CULL_ENFORCED_ANYHIT 

Do not intersect geometry which have an enabled anyhit program (due to not setting geometry flag OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT or setting instance flag OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT). This flag is mutually exclusive with OPTIX_RAY_FLAG_CULL_DISABLED_ANYHIT, OPTIX_RAY_FLAG_ENFORCE_ANYHIT, OPTIX_RAY_FLAG_DISABLE_ANYHIT.

OPTIX_RAY_FLAG_FORCE_OPACITY_MICROMAP_2_STATE 

Force 4-state opacity micromaps to behave as 2-state opactiy micromaps during traversal.

 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.

See also
optixGetErrorName(), optixGetErrorString()
Enumerator
OPTIX_SUCCESS 
OPTIX_ERROR_INVALID_VALUE 
OPTIX_ERROR_HOST_OUT_OF_MEMORY 
OPTIX_ERROR_INVALID_OPERATION 
OPTIX_ERROR_FILE_IO_ERROR 
OPTIX_ERROR_INVALID_FILE_FORMAT 
OPTIX_ERROR_DISK_CACHE_INVALID_PATH 
OPTIX_ERROR_DISK_CACHE_PERMISSION_ERROR 
OPTIX_ERROR_DISK_CACHE_DATABASE_ERROR 
OPTIX_ERROR_DISK_CACHE_INVALID_DATA 
OPTIX_ERROR_LAUNCH_FAILURE 
OPTIX_ERROR_INVALID_DEVICE_CONTEXT 
OPTIX_ERROR_CUDA_NOT_INITIALIZED 
OPTIX_ERROR_VALIDATION_FAILURE 
OPTIX_ERROR_INVALID_INPUT 
OPTIX_ERROR_INVALID_LAUNCH_PARAMETER 
OPTIX_ERROR_INVALID_PAYLOAD_ACCESS 
OPTIX_ERROR_INVALID_ATTRIBUTE_ACCESS 
OPTIX_ERROR_INVALID_FUNCTION_USE 
OPTIX_ERROR_INVALID_FUNCTION_ARGUMENTS 
OPTIX_ERROR_PIPELINE_OUT_OF_CONSTANT_MEMORY 
OPTIX_ERROR_PIPELINE_LINK_ERROR 
OPTIX_ERROR_ILLEGAL_DURING_TASK_EXECUTE 
OPTIX_ERROR_INTERNAL_COMPILER_ERROR 
OPTIX_ERROR_DENOISER_MODEL_NOT_SET 
OPTIX_ERROR_DENOISER_NOT_INITIALIZED 
OPTIX_ERROR_NOT_COMPATIBLE 
OPTIX_ERROR_PAYLOAD_TYPE_MISMATCH 
OPTIX_ERROR_PAYLOAD_TYPE_RESOLUTION_FAILED 
OPTIX_ERROR_PAYLOAD_TYPE_ID_INVALID 
OPTIX_ERROR_NOT_SUPPORTED 
OPTIX_ERROR_UNSUPPORTED_ABI_VERSION 
OPTIX_ERROR_FUNCTION_TABLE_SIZE_MISMATCH 
OPTIX_ERROR_INVALID_ENTRY_FUNCTION_OPTIONS 
OPTIX_ERROR_LIBRARY_NOT_FOUND 
OPTIX_ERROR_ENTRY_SYMBOL_NOT_FOUND 
OPTIX_ERROR_LIBRARY_UNLOAD_FAILURE 
OPTIX_ERROR_DEVICE_OUT_OF_MEMORY 
OPTIX_ERROR_CUDA_ERROR 
OPTIX_ERROR_INTERNAL_ERROR 
OPTIX_ERROR_UNKNOWN 

 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

 OptixTransformType

 OptixTraversableGraphFlags

Specifies the set of valid traversable graphs that may be passed to invocation of optixTrace(). Flags may be bitwise combined.

Enumerator
OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_ANY 

Used to signal that any traversable graphs is valid. This flag is mutually exclusive with all other flags.

OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_GAS 

Used to signal that a traversable graph of a single Geometry Acceleration Structure (GAS) without any transforms is valid. This flag may be combined with other flags except for OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_ANY.

OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_LEVEL_INSTANCING 

Used to signal that a traversable graph of a single Instance Acceleration Structure (IAS) directly connected to Geometry Acceleration Structure (GAS) traversables without transform traversables in between is valid. This flag may be combined with other flags except for OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_ANY.

 OptixTraversableType

 OptixVertexFormat

Format of vertices used in OptixBuildInputTriangleArray::vertexFormat.

Enumerator
OPTIX_VERTEX_FORMAT_NONE 

No vertices.

OPTIX_VERTEX_FORMAT_FLOAT3 

Vertices are represented by three floats.

OPTIX_VERTEX_FORMAT_FLOAT2 

Vertices are represented by two floats.

OPTIX_VERTEX_FORMAT_HALF3 

Vertices are represented by three halfs.

OPTIX_VERTEX_FORMAT_HALF2 

Vertices are represented by two halfs.

OPTIX_VERTEX_FORMAT_SNORM16_3 
OPTIX_VERTEX_FORMAT_SNORM16_2