NVIDIA OptiX 7.1 API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
optix_7_types.h File Reference

Go to the source code of this file.

Classes

struct  OptixDeviceContextOptions
 
struct  OptixBuildInputTriangleArray
 
struct  OptixBuildInputCurveArray
 
struct  OptixAabb
 
struct  OptixBuildInputCustomPrimitiveArray
 
struct  OptixBuildInputInstanceArray
 
struct  OptixBuildInput
 
struct  OptixInstance
 
struct  OptixMotionOptions
 
struct  OptixAccelBuildOptions
 
struct  OptixAccelBufferSizes
 
struct  OptixAccelEmitDesc
 
struct  OptixAccelRelocationInfo
 
struct  OptixStaticTransform
 
struct  OptixMatrixMotionTransform
 
struct  OptixSRTData
 
struct  OptixSRTMotionTransform
 
struct  OptixImage2D
 
struct  OptixDenoiserOptions
 
struct  OptixDenoiserParams
 
struct  OptixDenoiserSizes
 
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_COMPILE_DEFAULT_MAX_REGISTER_COUNT   0
 

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 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 struct
OptixDeviceContextOptions 
OptixDeviceContextOptions
 
typedef enum OptixGeometryFlags OptixGeometryFlags
 
typedef enum OptixHitKind OptixHitKind
 
typedef enum OptixIndicesFormat OptixIndicesFormat
 
typedef enum OptixVertexFormat OptixVertexFormat
 
typedef enum OptixTransformFormat OptixTransformFormat
 
typedef struct
OptixBuildInputTriangleArray 
OptixBuildInputTriangleArray
 
typedef enum OptixPrimitiveType OptixPrimitiveType
 
typedef enum
OptixPrimitiveTypeFlags 
OptixPrimitiveTypeFlags
 
typedef struct
OptixBuildInputCurveArray 
OptixBuildInputCurveArray
 
typedef struct OptixAabb OptixAabb
 
typedef struct
OptixBuildInputCustomPrimitiveArray 
OptixBuildInputCustomPrimitiveArray
 
typedef struct
OptixBuildInputInstanceArray 
OptixBuildInputInstanceArray
 
typedef enum OptixBuildInputType OptixBuildInputType
 
typedef struct OptixBuildInput OptixBuildInput
 
typedef enum OptixInstanceFlags OptixInstanceFlags
 
typedef struct OptixInstance OptixInstance
 
typedef enum OptixBuildFlags OptixBuildFlags
 
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
OptixAccelRelocationInfo 
OptixAccelRelocationInfo
 
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 OptixDenoiserInputKind OptixDenoiserInputKind
 
typedef enum OptixDenoiserModelKind OptixDenoiserModelKind
 
typedef struct OptixDenoiserOptions OptixDenoiserOptions
 
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 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 OptixResultOptixQueryFunctionTable_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_INVALID_PTX = 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_INTERNAL_COMPILER_ERROR = 7299,
  OPTIX_ERROR_DENOISER_MODEL_NOT_SET = 7300,
  OPTIX_ERROR_DENOISER_NOT_INITIALIZED = 7301,
  OPTIX_ERROR_ACCEL_NOT_COMPATIBLE = 7400,
  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_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  OptixGeometryFlags {
  OPTIX_GEOMETRY_FLAG_NONE = 0,
  OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT = 1u << 0,
  OPTIX_GEOMETRY_FLAG_REQUIRE_SINGLE_ANYHIT_CALL = 1u << 1
}
 
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  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_TRIANGLE = 0x2531
}
 
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_TRIANGLE = 1 << 31
}
 
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
}
 
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_DISABLE_TRANSFORM = 1u << 6
}
 
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
}
 
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_HALF3 = 0x2201,
  OPTIX_PIXEL_FORMAT_HALF4 = 0x2202,
  OPTIX_PIXEL_FORMAT_FLOAT3 = 0x2203,
  OPTIX_PIXEL_FORMAT_FLOAT4 = 0x2204,
  OPTIX_PIXEL_FORMAT_UCHAR3 = 0x2205,
  OPTIX_PIXEL_FORMAT_UCHAR4 = 0x2206
}
 
enum  OptixDenoiserInputKind {
  OPTIX_DENOISER_INPUT_RGB = 0x2301,
  OPTIX_DENOISER_INPUT_RGB_ALBEDO = 0x2302,
  OPTIX_DENOISER_INPUT_RGB_ALBEDO_NORMAL = 0x2303
}
 
enum  OptixDenoiserModelKind {
  OPTIX_DENOISER_MODEL_KIND_USER = 0x2321,
  OPTIX_DENOISER_MODEL_KIND_LDR = 0x2322,
  OPTIX_DENOISER_MODEL_KIND_HDR = 0x2323
}
 
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
}
 
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_LINEINFO = 0x2351,
  OPTIX_COMPILE_DEBUG_LEVEL_FULL = 0x2352
}
 
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_UNSUPPORTED_SINGLE_LEVEL_GAS = -15
}
 
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 public API header.

Author
NVIDIA Corporation OptiX types include file -- defines types and enums used by the API. For the math library routines include optix_math.h