NVIDIA OptiX 8.0 nvidia_logo_transpbg.gif Up
optix_types.h
Go to the documentation of this file.
1
2/*
3 * Copyright (c) 2023 NVIDIA Corporation. All rights reserved.
4 *
5 * NVIDIA Corporation and its licensors retain all intellectual property and proprietary
6 * rights in and to this software, related documentation and any modifications thereto.
7 * Any use, reproduction, disclosure or distribution of this software and related
8 * documentation without an express license agreement from NVIDIA Corporation is strictly
9 * prohibited.
10 *
11 * TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED *AS IS*
12 * AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED,
13 * INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
14 * PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS BE LIABLE FOR ANY
15 * SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT
16 * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF
17 * BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
18 * INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF
19 * SUCH DAMAGES
20 */
21
28
29#ifndef OPTIX_OPTIX_TYPES_H
30#define OPTIX_OPTIX_TYPES_H
31
32#if !defined(__CUDACC_RTC__)
33#include <stddef.h> /* for size_t */
34#endif
35
36#ifdef NV_MODULE_OPTIX
37// This is a mechanism to include <g_nvconfig.h> in driver builds only and translate any nvconfig macro to a custom OPTIX-specific macro, that can also be used in SDK builds/installs
38#include <exp/misc/optix_nvconfig_translate.h> // includes <g_nvconfig.h>
39#endif // NV_MODULE_OPTIX
40
41
44
49// This typedef should match the one in cuda.h in order to avoid compilation errors.
50#if defined(_WIN64) || defined(__LP64__)
52typedef unsigned long long CUdeviceptr;
53#else
55typedef unsigned int CUdeviceptr;
56#endif
57
59typedef struct OptixDeviceContext_t* OptixDeviceContext;
60
62typedef struct OptixModule_t* OptixModule;
63
65typedef struct OptixProgramGroup_t* OptixProgramGroup;
66
68typedef struct OptixPipeline_t* OptixPipeline;
69
71typedef struct OptixDenoiser_t* OptixDenoiser;
72
74typedef struct OptixTask_t* OptixTask;
75
77typedef unsigned long long OptixTraversableHandle;
78
80typedef unsigned int OptixVisibilityMask;
81
83#define OPTIX_SBT_RECORD_HEADER_SIZE ( (size_t)32 )
84
86#define OPTIX_SBT_RECORD_ALIGNMENT 16ull
87
89#define OPTIX_ACCEL_BUFFER_BYTE_ALIGNMENT 128ull
90
92#define OPTIX_INSTANCE_BYTE_ALIGNMENT 16ull
93
95#define OPTIX_AABB_BUFFER_BYTE_ALIGNMENT 8ull
96
98#define OPTIX_GEOMETRY_TRANSFORM_BYTE_ALIGNMENT 16ull
99
101#define OPTIX_TRANSFORM_BYTE_ALIGNMENT 64ull
102
104#define OPTIX_OPACITY_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT 8ull
105
107#define OPTIX_COMPILE_DEFAULT_MAX_REGISTER_COUNT 0
108
110#define OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_TYPE_COUNT 8
111
113#define OPTIX_COMPILE_DEFAULT_MAX_PAYLOAD_VALUE_COUNT 32
114
117#define OPTIX_OPACITY_MICROMAP_STATE_TRANSPARENT ( 0 )
118#define OPTIX_OPACITY_MICROMAP_STATE_OPAQUE ( 1 )
119#define OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT ( 2 )
120#define OPTIX_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE ( 3 )
121
124#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_TRANSPARENT ( -1 )
125#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_OPAQUE ( -2 )
126#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_TRANSPARENT ( -3 )
127#define OPTIX_OPACITY_MICROMAP_PREDEFINED_INDEX_FULLY_UNKNOWN_OPAQUE ( -4 )
128
130#define OPTIX_OPACITY_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT 128ull
131
133#define OPTIX_OPACITY_MICROMAP_MAX_SUBDIVISION_LEVEL 12
134
136#define OPTIX_DISPLACEMENT_MICROMAP_MAX_SUBDIVISION_LEVEL 5
137
139#define OPTIX_DISPLACEMENT_MICROMAP_DESC_BUFFER_BYTE_ALIGNMENT 8ull
140
142#define OPTIX_DISPLACEMENT_MICROMAP_ARRAY_BUFFER_BYTE_ALIGNMENT 128ull
143
151typedef enum OptixResult
152{
195
200{
203
207
211
215
219
222
226
230
235
241
266typedef void ( *OptixLogCallback )( unsigned int level, const char* tag, const char* message, void* cbdata );
267
276{
280
285{
295
301{
305
306 // Standard thread reordering is supported
309
313{
316
320
325
331
337typedef enum OptixHitKind
338{
344
347{
355
358{
367
370{
374
376{
381
383{
388
391{
399
402{
413
419{
422 unsigned int count;
424 unsigned int subdivisionLevel;
428
430{
433
439
450
453 unsigned int indexSizeInBytes;
454
457 unsigned int indexStrideInBytes;
458
460 unsigned int indexOffset;
461
468
470{
476
477
480{
486
489{
491
494
497
499
501{
511
513{
515 unsigned int byteOffset;
517 unsigned short subdivisionLevel;
519 unsigned short format;
521
527{
529 unsigned int count;
531 unsigned int subdivisionLevel;
535
538{
556
562{
565 unsigned int count;
567 unsigned int subdivisionLevel;
571
574{
585
588{
591
602
610
615
620
623
629
631
632
637{
646
648 unsigned int numVertices;
649
652
656
661
663 unsigned int numIndexTriplets;
664
667
670 unsigned int indexStrideInBytes;
671
676
680 const unsigned int* flags;
681
683 unsigned int numSbtRecords;
684
689
692
696
700
703
708
710
715{
718 unsigned int numSbtRecords;
719
723
727{
749
754{
776
780{
786
805{
810 unsigned int numPrimitives;
811
818 unsigned int numVertices;
822
828 unsigned int widthStrideInBytes;
829
834
843 unsigned int indexStrideInBytes;
844
847 unsigned int flag;
848
852
854 unsigned int endcapFlags;
856
870{
876
881 unsigned int numVertices;
882
892
896 const unsigned int* flags;
897
899 unsigned int numSbtRecords;
909
914
916typedef struct OptixAabb
917{
918 float minX;
919 float minY;
920 float minZ;
921 float maxX;
922 float maxY;
923 float maxZ;
925
930{
936
939 unsigned int numPrimitives;
940
944 unsigned int strideInBytes;
945
949 const unsigned int* flags;
950
952 unsigned int numSbtRecords;
953
958
961
965
970
975{
984
986 unsigned int numInstances;
987
991 unsigned int instanceStride;
993
998{
1001 unsigned int numInstances;
1002
1009
1011
1016{
1030
1036typedef struct OptixBuildInput
1037{
1040
1041 union
1042 {
1053 char pad[1024];
1054 };
1056
1061{
1064
1065 union
1066 {
1069
1072
1074 };
1076
1077// Some 32-bit tools use this header. This static_assert fails for them because
1078// the default enum size is 4 bytes, rather than 8, under 32-bit compilers.
1079// This #ifndef allows them to disable the static assert.
1080
1081// TODO Define a static assert for C/pre-C++-11
1082#if defined( __cplusplus ) && __cplusplus >= 201103L
1083static_assert( sizeof( OptixBuildInput ) == 8 + 1024, "OptixBuildInput has wrong size" );
1084#endif
1085
1090{
1093
1098
1102
1107
1113
1114
1120
1122
1126typedef struct OptixInstance
1127{
1129 float transform[12];
1130
1132 unsigned int instanceId;
1133
1137 unsigned int sbtOffset;
1138
1141 unsigned int visibilityMask;
1142
1144 unsigned int flags;
1145
1148
1150 unsigned int pad[2];
1152
1157{
1160
1164
1166
1169
1172
1183
1187
1192
1198
1199
1202{
1204
1207
1211
1214{
1216 unsigned int byteOffset;
1218 unsigned short subdivisionLevel;
1220 unsigned short format;
1222
1228{
1230 unsigned int count;
1232 unsigned int subdivisionLevel;
1236
1239{
1241 unsigned int flags;
1242
1245
1249
1254
1261
1264{
1268
1271{
1281
1282
1295{
1301
1306{
1311
1317{
1320 unsigned short numKeys;
1321
1323 unsigned short flags;
1324
1327
1329 float timeEnd;
1331
1336{
1338 unsigned int buildFlags;
1339
1347
1351
1358{
1362
1366
1373
1378{
1381
1385
1390{
1393
1397
1403{
1405 unsigned long long info[4];
1407
1414{
1417
1419 unsigned int pad[2];
1420
1422 float transform[12];
1423
1426 float invTransform[12];
1428
1454{
1457
1461
1463 unsigned int pad[3];
1464
1466 float transform[2][12];
1468
1476// [ sx a b pvx ]
1477// S = [ 0 sy c pvy ]
1478// [ 0 0 sz pvz ]
1487// [ 1 0 0 tx ]
1488// T = [ 0 1 0 ty ]
1489// [ 0 0 1 tz ]
1499typedef struct OptixSRTData
1500{
1503 float sx, a, b, pvx, sy, c, pvy, sz, pvz, qx, qy, qz, qw, tx, ty, tz;
1506
1507// TODO Define a static assert for C/pre-C++-11
1508#if defined( __cplusplus ) && __cplusplus >= 201103L
1509static_assert( sizeof( OptixSRTData ) == 16 * 4, "OptixSRTData has wrong size" );
1510#endif
1511
1537{
1540
1544
1546 unsigned int pad[3];
1547
1551
1552// TODO Define a static assert for C/pre-C++-11
1553#if defined( __cplusplus ) && __cplusplus >= 201103L
1554static_assert( sizeof( OptixSRTMotionTransform ) == 8 + 12 + 12 + 2 * 16 * 4, "OptixSRTMotionTransform has wrong size" );
1555#endif
1556
1561{
1569
1574{
1587
1591typedef struct OptixImage2D
1592{
1596 unsigned int width;
1598 unsigned int height;
1600 unsigned int rowStrideInBytes;
1609
1614{
1617
1620
1623
1626
1629
1632
1637
1642{
1645
1649
1654{
1655 // if nonzero, albedo image must be given in OptixDenoiserGuideLayer
1656 unsigned int guideAlbedo;
1657
1658 // if nonzero, normal image must be given in OptixDenoiserGuideLayer
1659 unsigned int guideNormal;
1660
1664
1669{
1670 // image with three components: R, G, B.
1672
1673 // image with two or three components: X, Y, Z.
1674 // (X, Y) camera space. (X, Y, Z) world space, depending on model.
1676
1677 // image with two components: X, Y.
1678 // pixel movement from previous to current frame for each pixel in screen space.
1680
1681 // Internal images used in temporal AOV denoising modes,
1682 // pixel format OPTIX_PIXEL_FORMAT_INTERNAL_GUIDE_LAYER.
1685
1686 // image with a single component value that specifies how trustworthy the flow vector at x,y position in
1687 // OptixDenoiserGuideLayer::flow is. Range 0..1 (low->high trustworthiness).
1688 // Ignored if data pointer in the image is zero.
1690
1692
1696{
1699
1705
1707
1712{
1713 // input image (beauty or AOV)
1715
1716 // denoised output image from previous frame if temporal model kind selected
1718
1719 // denoised output for given input
1721
1722 // Type of AOV, used in temporal AOV modes as a hint to improve image quality.
1725
1731
1733{
1739
1745
1752
1759
1764{
1767
1771
1775
1778
1782
1786
1790
1795typedef enum OptixRayFlags
1796{
1799
1805
1811
1815
1818
1824
1830
1837
1844
1848
1855{
1862
1866{
1870
1875
1882
1887{
1899
1904{
1917
1922{
1925
1928
1931
1934
1938
1939
1940
1976 const void* boundValuePtr;
1977 const char* annotation; // optional string to display, set to 0 if unused. If unused,
1978 // OptiX will report the annotation as "No annotation"
1980
1991 OPTIX_PAYLOAD_TYPE_ID_7 = (1 << 7u)
1993
2008{
2013
2018
2023
2028
2034
2036typedef struct OptixPayloadType
2037{
2039 unsigned int numPayloadValues;
2040
2042 const unsigned int *payloadSemantics;
2044
2049{
2053
2056
2059
2062
2064 unsigned int numBoundValues;
2065
2068 unsigned int numPayloadTypes;
2069
2072
2074
2077{
2081
2085
2089
2093
2098
2101{
2105
2113{
2119
2126{
2140
2147{
2157
2160{
2163
2165 unsigned int flags;
2166
2167 union
2168 {
2179 };
2181
2186{
2201
2204{
2208
2212
2213
2215
2220{
2223
2231
2239
2243
2245
2252{
2255
2258
2262
2266
2268 unsigned int exceptionFlags;
2269
2274
2278
2282
2287{
2290 unsigned int maxTraceDepth;
2291
2293
2298{
2302
2306
2312 unsigned int missRecordCount;
2314
2322
2331
2333
2337typedef struct OptixStackSizes
2338{
2340 unsigned int cssRG;
2342 unsigned int cssMS;
2344 unsigned int cssCH;
2346 unsigned int cssAH;
2348 unsigned int cssIS;
2350 unsigned int cssCC;
2352 unsigned int dssDC;
2353
2355
2358{
2361
2363
2366 unsigned int numOptions,
2367 OptixQueryFunctionTableOptions* /*optionKeys*/,
2368 const void** /*optionValues*/,
2369 void* functionTable,
2370 size_t sizeOfTable );
2371
2377{
2382 unsigned int buildFlags;
2384 unsigned int curveEndcapFlags;
2386
2387#if defined( __CUDACC__ )
2392typedef struct OptixInvalidRayExceptionDetails
2393{
2394 float3 origin;
2395 float3 direction;
2396 float tmin;
2397 float tmax;
2398 float time;
2399} OptixInvalidRayExceptionDetails;
2400
2407typedef struct OptixParameterMismatchExceptionDetails
2408{
2410 unsigned int expectedParameterCount;
2412 unsigned int passedArgumentCount;
2414 unsigned int sbtIndex;
2416 char* callableName;
2417} OptixParameterMismatchExceptionDetails;
2418#endif
2419
2420 // end group optix_types
2422
2423#endif // OPTIX_OPTIX_TYPES_H
struct OptixStackSizes OptixStackSizes
Describes the stack size requirements of a program group.
struct OptixRelocateInputTriangleArray OptixRelocateInputTriangleArray
Triangle inputs.
struct OptixProgramGroup_t * OptixProgramGroup
Opaque type representing a program group.
Definition: optix_types.h:65
struct OptixDenoiser_t * OptixDenoiser
Opaque type representing a denoiser instance.
Definition: optix_types.h:71
struct OptixRelocateInputOpacityMicromap OptixRelocateInputOpacityMicromap
OptixDeviceContextValidationMode
Validation mode settings.
Definition: optix_types.h:276
OptixPrimitiveTypeFlags
Builtin flags may be bitwise combined.
Definition: optix_types.h:754
struct OptixProgramGroupOptions OptixProgramGroupOptions
Program group options.
OptixGeometryFlags
Flags used by OptixBuildInputTriangleArray::flags and OptixBuildInputCustomPrimitiveArray::flags.
Definition: optix_types.h:313
struct OptixAabb OptixAabb
AABB inputs.
OptixDeviceProperty
Parameters used for optixDeviceContextGetProperty()
Definition: optix_types.h:200
struct OptixMotionOptions OptixMotionOptions
Motion options.
OptixDisplacementMicromapFlags
Flags defining behavior of DMMs in a DMM array.
Definition: optix_types.h:489
struct OptixDisplacementMicromapArrayBuildInput OptixDisplacementMicromapArrayBuildInput
Inputs to displacement micromaps array construction.
struct OptixProgramGroupDesc OptixProgramGroupDesc
Descriptor for program groups.
OptixMotionFlags
Enum to specify motion flags.
Definition: optix_types.h:1306
struct OptixPayloadType OptixPayloadType
Specifies a single payload type.
struct OptixDenoiserLayer OptixDenoiserLayer
Input/Output layers for the denoiser.
OptixExceptionCodes
The following values are used to indicate which exception was thrown.
Definition: optix_types.h:2204
struct OptixPipelineLinkOptions OptixPipelineLinkOptions
Link options for a pipeline.
struct OptixDenoiserGuideLayer OptixDenoiserGuideLayer
Guide layer for the denoiser.
OptixDenoiserAlphaMode
Alpha denoising mode.
Definition: optix_types.h:1642
OptixCompileDebugLevel
Debug levels.
Definition: optix_types.h:1904
struct OptixAccelBuildOptions OptixAccelBuildOptions
Build options for acceleration structures.
struct OptixBuildInputOpacityMicromap OptixBuildInputOpacityMicromap
struct OptixOpacityMicromapHistogramEntry OptixOpacityMicromapHistogramEntry
Opacity micromap histogram entry. Specifies how many opacity micromaps of a specific type are input t...
struct OptixMatrixMotionTransform OptixMatrixMotionTransform
Represents a matrix motion transformation.
OptixTransformType
Transform.
Definition: optix_types.h:1855
unsigned long long CUdeviceptr
CUDA device pointer.
Definition: optix_types.h:52
OptixPayloadSemantics
Semantic flags for a single payload word.
Definition: optix_types.h:2008
OptixResult
Result codes returned from API functions.
Definition: optix_types.h:152
OptixBuildOperation
Enum to specify the acceleration build operation.
Definition: optix_types.h:1295
OptixResult() OptixQueryFunctionTable_t(int abiId, unsigned int numOptions, OptixQueryFunctionTableOptions *, const void **, void *functionTable, size_t sizeOfTable)
Type of the function optixQueryFunctionTable()
Definition: optix_types.h:2365
struct OptixShaderBindingTable OptixShaderBindingTable
Describes the shader binding table (SBT)
OptixOpacityMicromapFormat
Specifies whether to use a 2- or 4-state opacity micromap format.
Definition: optix_types.h:391
OptixAccelPropertyType
Properties which can be emitted during acceleration structure build.
Definition: optix_types.h:1378
struct OptixBuildInputSphereArray OptixBuildInputSphereArray
Sphere inputs.
struct OptixBuildInputCurveArray OptixBuildInputCurveArray
Curve inputs.
struct OptixAccelBufferSizes OptixAccelBufferSizes
Struct for querying builder allocation requirements.
struct OptixDisplacementMicromapHistogramEntry OptixDisplacementMicromapHistogramEntry
Displacement micromap histogram entry. Specifies how many displacement micromaps of a specific type a...
struct OptixProgramGroupHitgroup OptixProgramGroupHitgroup
Program group representing the hitgroup.
OptixDenoiserAOVType
AOV type used by the denoiser.
Definition: optix_types.h:1696
OptixRayFlags
Ray flags passed to the device function optixTrace(). These affect the behavior of traversal per invo...
Definition: optix_types.h:1796
struct OptixStaticTransform OptixStaticTransform
Static transform.
OptixModuleCompileState
Module compilation state.
Definition: optix_types.h:1922
OptixVertexFormat
Format of vertices used in OptixBuildInputTriangleArray::vertexFormat.
Definition: optix_types.h:358
struct OptixPipelineCompileOptions OptixPipelineCompileOptions
Compilation options for all modules of a pipeline.
OptixPixelFormat
Pixel formats used by the denoiser.
Definition: optix_types.h:1574
OptixDisplacementMicromapArrayIndexingMode
indexing mode of triangles to displacement micromaps in an array, used in OptixBuildInputDisplacement...
Definition: optix_types.h:574
OptixDisplacementMicromapDirectionFormat
Definition: optix_types.h:383
struct OptixRelocateInput OptixRelocateInput
Relocation inputs.
struct OptixDeviceContextOptions OptixDeviceContextOptions
Parameters used for optixDeviceContextCreate()
struct OptixProgramGroupCallables OptixProgramGroupCallables
Program group representing callables.
OptixDevicePropertyShaderExecutionReorderingFlags
Flags used to interpret the result of optixDeviceContextGetProperty() and OPTIX_DEVICE_PROPERTY_SHADE...
Definition: optix_types.h:301
struct OptixImage2D OptixImage2D
Image descriptor used by the denoiser.
struct OptixMicromapBuffers OptixMicromapBuffers
Buffer inputs for opacity/displacement micromap array builds.
struct OptixModule_t * OptixModule
Opaque type representing a module.
Definition: optix_types.h:62
struct OptixProgramGroupSingleModule OptixProgramGroupSingleModule
Program group representing a single module.
struct OptixOpacityMicromapDesc OptixOpacityMicromapDesc
Opacity micromap descriptor.
OptixDenoiserModelKind
Model kind used by the denoiser.
Definition: optix_types.h:1614
struct OptixSRTData OptixSRTData
Represents an SRT transformation.
struct OptixSRTMotionTransform OptixSRTMotionTransform
Represents an SRT motion transformation.
struct OptixModuleCompileBoundValueEntry OptixModuleCompileBoundValueEntry
Struct for specifying specializations for pipelineParams as specified in OptixPipelineCompileOptions:...
OptixBuildInputType
Enum to distinguish the different build input types.
Definition: optix_types.h:1016
struct OptixRelocateInputInstanceArray OptixRelocateInputInstanceArray
Instance and instance pointer inputs.
struct OptixAccelEmitDesc OptixAccelEmitDesc
Specifies a type and output destination for emitted post-build properties.
OptixDisplacementMicromapBiasAndScaleFormat
Definition: optix_types.h:376
struct OptixDisplacementMicromapDesc OptixDisplacementMicromapDesc
struct OptixBuildInputTriangleArray OptixBuildInputTriangleArray
Triangle inputs.
struct OptixBuildInput OptixBuildInput
Build inputs.
struct OptixRelocationInfo OptixRelocationInfo
Used to store information related to relocation of optix data structures.
struct OptixBuildInputCustomPrimitiveArray OptixBuildInputCustomPrimitiveArray
Custom primitive inputs.
struct OptixOpacityMicromapUsageCount OptixOpacityMicromapUsageCount
Opacity micromap usage count for acceleration structure builds. Specifies how many opacity micromaps ...
unsigned int OptixVisibilityMask
Visibility mask.
Definition: optix_types.h:80
OptixCurveEndcapFlags
Curve end cap types, for non-linear curves.
Definition: optix_types.h:780
struct OptixDenoiserParams OptixDenoiserParams
Various parameters used by the denoiser.
OptixOpacityMicromapFlags
Flags defining behavior of opacity micromaps in a opacity micromap array.
Definition: optix_types.h:1202
OptixExceptionFlags
Exception flags.
Definition: optix_types.h:2220
OptixDisplacementMicromapTriangleFlags
Definition: optix_types.h:501
OptixHitKind
Legacy type: A subset of the hit kinds for built-in primitive intersections. It is preferred to use o...
Definition: optix_types.h:338
struct OptixPipeline_t * OptixPipeline
Opaque type representing a pipeline.
Definition: optix_types.h:68
OptixProgramGroupFlags
Flags for program groups.
Definition: optix_types.h:2101
OptixIndicesFormat
Format of indices used int OptixBuildInputTriangleArray::indexFormat.
Definition: optix_types.h:347
unsigned long long OptixTraversableHandle
Traversable handle.
Definition: optix_types.h:77
OptixProgramGroupKind
Distinguishes different kinds of program groups.
Definition: optix_types.h:2077
OptixTraversableGraphFlags
Specifies the set of valid traversable graphs that may be passed to invocation of optixTrace()....
Definition: optix_types.h:1866
struct OptixDenoiserSizes OptixDenoiserSizes
Various sizes related to the denoiser.
OptixPrimitiveType
Builtin primitive types.
Definition: optix_types.h:727
struct OptixModuleCompileOptions OptixModuleCompileOptions
Compilation options for module.
OptixPayloadTypeID
Payload type identifiers.
Definition: optix_types.h:1982
OptixTraversableType
Traversable Handles.
Definition: optix_types.h:1561
struct OptixBuildInputDisplacementMicromap OptixBuildInputDisplacementMicromap
Optional displacement part of a triangle array input.
void(* OptixLogCallback)(unsigned int level, const char *tag, const char *message, void *cbdata)
Type of the callback function used for log messages.
Definition: optix_types.h:266
struct OptixBuildInputInstanceArray OptixBuildInputInstanceArray
Instance and instance pointer inputs.
struct OptixDisplacementMicromapUsageCount OptixDisplacementMicromapUsageCount
Displacement micromap usage count for acceleration structure builds. Specifies how many displacement ...
struct OptixBuiltinISOptions OptixBuiltinISOptions
Specifies the options for retrieving an intersection program for a built-in primitive type....
OptixInstanceFlags
Flags set on the OptixInstance::flags.
Definition: optix_types.h:1090
OptixOpacityMicromapArrayIndexingMode
indexing mode of triangles to opacity micromaps in an array, used in OptixBuildInputOpacityMicromap.
Definition: optix_types.h:402
OptixDisplacementMicromapFormat
DMM input data format.
Definition: optix_types.h:480
struct OptixTask_t * OptixTask
Opaque type representing a work task.
Definition: optix_types.h:74
OptixCompileOptimizationLevel
Optimization levels.
Definition: optix_types.h:1887
struct OptixInstance OptixInstance
Instances.
struct OptixMicromapBufferSizes OptixMicromapBufferSizes
Conservative memory requirements for building a opacity/displacement micromap array.
struct OptixDeviceContext_t * OptixDeviceContext
Opaque type representing a device context.
Definition: optix_types.h:59
struct OptixDenoiserOptions OptixDenoiserOptions
Options used by the denoiser.
OptixTransformFormat
Format of transform used in OptixBuildInputTriangleArray::transformFormat.
Definition: optix_types.h:370
OptixQueryFunctionTableOptions
Options that can be passed to optixQueryFunctionTable()
Definition: optix_types.h:2358
struct OptixOpacityMicromapArrayBuildInput OptixOpacityMicromapArrayBuildInput
Inputs to opacity micromap array construction.
OptixBuildFlags
Builder Options.
Definition: optix_types.h:1157
@ OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_ALL
Definition: optix_types.h:278
@ OPTIX_DEVICE_CONTEXT_VALIDATION_MODE_OFF
Definition: optix_types.h:277
@ OPTIX_PRIMITIVE_TYPE_FLAGS_TRIANGLE
Triangle.
Definition: optix_types.h:772
@ OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_LINEAR
Piecewise linear curve with circular cross-section.
Definition: optix_types.h:762
@ OPTIX_PRIMITIVE_TYPE_FLAGS_FLAT_QUADRATIC_BSPLINE
B-spline curve of degree 2 with oriented, flat cross-section.
Definition: optix_types.h:766
@ OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CUBIC_BEZIER
Bezier curve of degree 3 with circular cross-section.
Definition: optix_types.h:770
@ OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CATMULLROM
CatmullRom curve with circular cross-section.
Definition: optix_types.h:764
@ OPTIX_PRIMITIVE_TYPE_FLAGS_SPHERE
Sphere.
Definition: optix_types.h:768
@ OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_CUBIC_BSPLINE
B-spline curve of degree 3 with circular cross-section.
Definition: optix_types.h:760
@ OPTIX_PRIMITIVE_TYPE_FLAGS_DISPLACED_MICROMESH_TRIANGLE
Triangle with an applied displacement micromap.
Definition: optix_types.h:774
@ OPTIX_PRIMITIVE_TYPE_FLAGS_ROUND_QUADRATIC_BSPLINE
B-spline curve of degree 2 with circular cross-section.
Definition: optix_types.h:758
@ OPTIX_PRIMITIVE_TYPE_FLAGS_CUSTOM
Custom primitive.
Definition: optix_types.h:756
@ OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT
Disables the invocation of the anyhit program. Can be overridden by OPTIX_INSTANCE_FLAG_ENFORCE_ANYHI...
Definition: optix_types.h:319
@ OPTIX_GEOMETRY_FLAG_DISABLE_TRIANGLE_FACE_CULLING
Prevent triangles from getting culled due to their orientation. Effectively ignores ray flags OPTIX_R...
Definition: optix_types.h:329
@ OPTIX_GEOMETRY_FLAG_NONE
No flags set.
Definition: optix_types.h:315
@ OPTIX_GEOMETRY_FLAG_REQUIRE_SINGLE_ANYHIT_CALL
If set, an intersection with the primitive will trigger one and only one invocation of the anyhit pro...
Definition: optix_types.h:324
@ OPTIX_DEVICE_PROPERTY_LIMIT_MAX_SBT_OFFSET
The maximum summed value of OptixInstance::sbtOffset. Also the maximum summed value of sbt offsets of...
Definition: optix_types.h:234
@ OPTIX_DEVICE_PROPERTY_RTCORE_VERSION
The RT core version supported by the device (0 for no support, 10 for version 1.0)....
Definition: optix_types.h:218
@ 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)....
Definition: optix_types.h:229
@ OPTIX_DEVICE_PROPERTY_LIMIT_MAX_TRACE_DEPTH
Maximum value for OptixPipelineLinkOptions::maxTraceDepth. sizeof( unsigned int )
Definition: optix_types.h:202
@ OPTIX_DEVICE_PROPERTY_LIMIT_MAX_PRIMITIVES_PER_GAS
The maximum number of primitives (over all build inputs) as input to a single Geometry Acceleration S...
Definition: optix_types.h:210
@ OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCE_ID
The maximum value for OptixInstance::instanceId. sizeof( unsigned int )
Definition: optix_types.h:221
@ 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....
Definition: optix_types.h:225
@ OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCES_PER_IAS
The maximum number of instances (over all build inputs) as input to a single Instance Acceleration St...
Definition: optix_types.h:214
@ OPTIX_DEVICE_PROPERTY_LIMIT_MAX_TRAVERSABLE_GRAPH_DEPTH
Maximum value to pass into optixPipelineSetStackSize for parameter maxTraversableGraphDepth....
Definition: optix_types.h:206
@ OPTIX_DEVICE_PROPERTY_SHADER_EXECUTION_REORDERING
Returns a flag specifying capabilities of the optixReorder() device function. See OptixDeviceProperty...
Definition: optix_types.h:239
@ OPTIX_DISPLACEMENT_MICROMAP_FLAG_NONE
Definition: optix_types.h:490
@ OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_BUILD
This flag is mutually exclusive with OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_TRACE.
Definition: optix_types.h:496
@ OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_TRACE
This flag is mutually exclusive with OPTIX_DISPLACEMENT_MICROMAP_FLAG_PREFER_FAST_BUILD.
Definition: optix_types.h:493
@ OPTIX_MOTION_FLAG_END_VANISH
Definition: optix_types.h:1309
@ OPTIX_MOTION_FLAG_NONE
Definition: optix_types.h:1307
@ OPTIX_MOTION_FLAG_START_VANISH
Definition: optix_types.h:1308
@ OPTIX_EXCEPTION_CODE_STACK_OVERFLOW
Stack overflow of the continuation stack. no exception details.
Definition: optix_types.h:2207
@ OPTIX_EXCEPTION_CODE_TRACE_DEPTH_EXCEEDED
The trace depth is exceeded. no exception details.
Definition: optix_types.h:2211
@ OPTIX_DENOISER_ALPHA_MODE_DENOISE
Denoise alpha.
Definition: optix_types.h:1647
@ OPTIX_DENOISER_ALPHA_MODE_COPY
Copy alpha (if present) from input layer, no denoising.
Definition: optix_types.h:1644
@ OPTIX_COMPILE_DEBUG_LEVEL_MINIMAL
Generate information that does not impact performance. Note this replaces OPTIX_COMPILE_DEBUG_LEVEL_L...
Definition: optix_types.h:1911
@ OPTIX_COMPILE_DEBUG_LEVEL_FULL
Generate full debug information.
Definition: optix_types.h:1915
@ OPTIX_COMPILE_DEBUG_LEVEL_MODERATE
Generate some debug information with slight performance cost.
Definition: optix_types.h:1913
@ OPTIX_COMPILE_DEBUG_LEVEL_NONE
No debug information.
Definition: optix_types.h:1908
@ OPTIX_COMPILE_DEBUG_LEVEL_DEFAULT
Default currently is minimal.
Definition: optix_types.h:1906
@ OPTIX_TRANSFORM_TYPE_SRT_MOTION_TRANSFORM
Definition: optix_types.h:1859
@ OPTIX_TRANSFORM_TYPE_STATIC_TRANSFORM
Definition: optix_types.h:1857
@ OPTIX_TRANSFORM_TYPE_INSTANCE
Definition: optix_types.h:1860
@ OPTIX_TRANSFORM_TYPE_MATRIX_MOTION_TRANSFORM
Definition: optix_types.h:1858
@ OPTIX_TRANSFORM_TYPE_NONE
Not a transformation.
Definition: optix_types.h:1856
@ OPTIX_PAYLOAD_SEMANTICS_CH_NONE
Definition: optix_types.h:2014
@ OPTIX_PAYLOAD_SEMANTICS_CH_WRITE
Definition: optix_types.h:2016
@ OPTIX_PAYLOAD_SEMANTICS_IS_READ_WRITE
Definition: optix_types.h:2032
@ OPTIX_PAYLOAD_SEMANTICS_CH_READ
Definition: optix_types.h:2015
@ OPTIX_PAYLOAD_SEMANTICS_AH_READ_WRITE
Definition: optix_types.h:2027
@ OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_NONE
Definition: optix_types.h:2009
@ OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_READ_WRITE
Definition: optix_types.h:2012
@ OPTIX_PAYLOAD_SEMANTICS_MS_READ
Definition: optix_types.h:2020
@ OPTIX_PAYLOAD_SEMANTICS_MS_NONE
Definition: optix_types.h:2019
@ OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_READ
Definition: optix_types.h:2010
@ OPTIX_PAYLOAD_SEMANTICS_AH_NONE
Definition: optix_types.h:2024
@ OPTIX_PAYLOAD_SEMANTICS_CH_READ_WRITE
Definition: optix_types.h:2017
@ OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE
Definition: optix_types.h:2011
@ OPTIX_PAYLOAD_SEMANTICS_IS_READ
Definition: optix_types.h:2030
@ OPTIX_PAYLOAD_SEMANTICS_IS_NONE
Definition: optix_types.h:2029
@ OPTIX_PAYLOAD_SEMANTICS_MS_WRITE
Definition: optix_types.h:2021
@ OPTIX_PAYLOAD_SEMANTICS_MS_READ_WRITE
Definition: optix_types.h:2022
@ OPTIX_PAYLOAD_SEMANTICS_AH_READ
Definition: optix_types.h:2025
@ OPTIX_PAYLOAD_SEMANTICS_IS_WRITE
Definition: optix_types.h:2031
@ OPTIX_PAYLOAD_SEMANTICS_AH_WRITE
Definition: optix_types.h:2026
@ OPTIX_ERROR_DISK_CACHE_DATABASE_ERROR
Definition: optix_types.h:161
@ OPTIX_ERROR_PIPELINE_LINK_ERROR
Definition: optix_types.h:174
@ OPTIX_ERROR_INVALID_FUNCTION_USE
Definition: optix_types.h:171
@ OPTIX_ERROR_INVALID_OPERATION
Definition: optix_types.h:156
@ OPTIX_ERROR_LIBRARY_NOT_FOUND
Definition: optix_types.h:187
@ OPTIX_ERROR_DISK_CACHE_INVALID_PATH
Definition: optix_types.h:159
@ OPTIX_ERROR_DENOISER_NOT_INITIALIZED
Definition: optix_types.h:178
@ OPTIX_ERROR_INVALID_PAYLOAD_ACCESS
Definition: optix_types.h:169
@ OPTIX_ERROR_LAUNCH_FAILURE
Definition: optix_types.h:163
@ OPTIX_ERROR_FILE_IO_ERROR
Definition: optix_types.h:157
@ OPTIX_ERROR_PAYLOAD_TYPE_MISMATCH
Definition: optix_types.h:180
@ OPTIX_ERROR_DEVICE_OUT_OF_MEMORY
Definition: optix_types.h:190
@ OPTIX_ERROR_LIBRARY_UNLOAD_FAILURE
Definition: optix_types.h:189
@ OPTIX_ERROR_ENTRY_SYMBOL_NOT_FOUND
Definition: optix_types.h:188
@ OPTIX_ERROR_PAYLOAD_TYPE_ID_INVALID
Definition: optix_types.h:182
@ OPTIX_ERROR_CUDA_ERROR
Definition: optix_types.h:191
@ OPTIX_ERROR_INVALID_LAUNCH_PARAMETER
Definition: optix_types.h:168
@ OPTIX_ERROR_VALIDATION_FAILURE
Definition: optix_types.h:166
@ OPTIX_ERROR_DENOISER_MODEL_NOT_SET
Definition: optix_types.h:177
@ OPTIX_ERROR_INTERNAL_COMPILER_ERROR
Definition: optix_types.h:176
@ OPTIX_ERROR_HOST_OUT_OF_MEMORY
Definition: optix_types.h:155
@ OPTIX_SUCCESS
Definition: optix_types.h:153
@ OPTIX_ERROR_DISK_CACHE_INVALID_DATA
Definition: optix_types.h:162
@ OPTIX_ERROR_DISK_CACHE_PERMISSION_ERROR
Definition: optix_types.h:160
@ OPTIX_ERROR_INVALID_VALUE
Definition: optix_types.h:154
@ OPTIX_ERROR_INVALID_INPUT
Definition: optix_types.h:167
@ OPTIX_ERROR_INVALID_DEVICE_CONTEXT
Definition: optix_types.h:164
@ OPTIX_ERROR_CUDA_NOT_INITIALIZED
Definition: optix_types.h:165
@ OPTIX_ERROR_PAYLOAD_TYPE_RESOLUTION_FAILED
Definition: optix_types.h:181
@ OPTIX_ERROR_UNSUPPORTED_ABI_VERSION
Definition: optix_types.h:184
@ OPTIX_ERROR_NOT_COMPATIBLE
Definition: optix_types.h:179
@ OPTIX_ERROR_NOT_SUPPORTED
Definition: optix_types.h:183
@ OPTIX_ERROR_UNKNOWN
Definition: optix_types.h:193
@ OPTIX_ERROR_PIPELINE_OUT_OF_CONSTANT_MEMORY
Definition: optix_types.h:173
@ OPTIX_ERROR_INVALID_FUNCTION_ARGUMENTS
Definition: optix_types.h:172
@ OPTIX_ERROR_INVALID_ENTRY_FUNCTION_OPTIONS
Definition: optix_types.h:186
@ OPTIX_ERROR_INTERNAL_ERROR
Definition: optix_types.h:192
@ OPTIX_ERROR_INVALID_FILE_FORMAT
Definition: optix_types.h:158
@ OPTIX_ERROR_FUNCTION_TABLE_SIZE_MISMATCH
Definition: optix_types.h:185
@ OPTIX_ERROR_INVALID_ATTRIBUTE_ACCESS
Definition: optix_types.h:170
@ OPTIX_ERROR_ILLEGAL_DURING_TASK_EXECUTE
Definition: optix_types.h:175
@ OPTIX_BUILD_OPERATION_BUILD
Perform a full build operation.
Definition: optix_types.h:1297
@ OPTIX_BUILD_OPERATION_UPDATE
Perform an update using new bounds.
Definition: optix_types.h:1299
@ OPTIX_OPACITY_MICROMAP_FORMAT_2_STATE
0: Transparent, 1: Opaque
Definition: optix_types.h:395
@ OPTIX_OPACITY_MICROMAP_FORMAT_NONE
invalid format
Definition: optix_types.h:393
@ OPTIX_OPACITY_MICROMAP_FORMAT_4_STATE
0: Transparent, 1: Opaque, 2: Unknown-Transparent, 3: Unknown-Opaque
Definition: optix_types.h:397
@ OPTIX_PROPERTY_TYPE_AABBS
OptixAabb * numMotionSteps.
Definition: optix_types.h:1383
@ OPTIX_PROPERTY_TYPE_COMPACTED_SIZE
Size of a compacted acceleration structure. The device pointer points to a uint64.
Definition: optix_types.h:1380
@ OPTIX_DENOISER_AOV_TYPE_SPECULAR
Definition: optix_types.h:1701
@ OPTIX_DENOISER_AOV_TYPE_NONE
Unspecified AOV type.
Definition: optix_types.h:1698
@ OPTIX_DENOISER_AOV_TYPE_DIFFUSE
Definition: optix_types.h:1704
@ OPTIX_DENOISER_AOV_TYPE_REFRACTION
Definition: optix_types.h:1703
@ OPTIX_DENOISER_AOV_TYPE_BEAUTY
Definition: optix_types.h:1700
@ OPTIX_DENOISER_AOV_TYPE_REFLECTION
Definition: optix_types.h:1702
@ OPTIX_RAY_FLAG_FORCE_OPACITY_MICROMAP_2_STATE
Force 4-state opacity micromaps to behave as 2-state opactiy micromaps during traversal.
Definition: optix_types.h:1846
@ OPTIX_RAY_FLAG_TERMINATE_ON_FIRST_HIT
Terminates the ray after the first hit and executes the closesthit program of that hit.
Definition: optix_types.h:1814
@ OPTIX_RAY_FLAG_DISABLE_CLOSESTHIT
Disables closesthit programs for the ray, but still executes miss program in case of a miss.
Definition: optix_types.h:1817
@ OPTIX_RAY_FLAG_NONE
No change from the behavior configured for the individual AS.
Definition: optix_types.h:1798
@ OPTIX_RAY_FLAG_DISABLE_ANYHIT
Disables anyhit programs for the ray. Overrides OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT....
Definition: optix_types.h:1804
@ OPTIX_RAY_FLAG_CULL_BACK_FACING_TRIANGLES
Do not intersect triangle back faces (respects a possible face change due to instance flag OPTIX_INST...
Definition: optix_types.h:1823
@ OPTIX_RAY_FLAG_CULL_ENFORCED_ANYHIT
Do not intersect geometry which have an enabled anyhit program (due to not setting geometry flag OPTI...
Definition: optix_types.h:1843
@ OPTIX_RAY_FLAG_CULL_DISABLED_ANYHIT
Do not intersect geometry which disables anyhit programs (due to setting geometry flag OPTIX_GEOMETRY...
Definition: optix_types.h:1836
@ OPTIX_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES
Do not intersect triangle front faces (respects a possible face change due to instance flag OPTIX_INS...
Definition: optix_types.h:1829
@ OPTIX_RAY_FLAG_ENFORCE_ANYHIT
Forces anyhit program execution for the ray. Overrides OPTIX_GEOMETRY_FLAG_DISABLE_ANYHIT as well as ...
Definition: optix_types.h:1810
@ OPTIX_MODULE_COMPILE_STATE_STARTED
Started, but not all OptixTask objects have completed. No detected failures.
Definition: optix_types.h:1927
@ OPTIX_MODULE_COMPILE_STATE_FAILED
All OptixTask objects have completed, and at least one has failed.
Definition: optix_types.h:1933
@ OPTIX_MODULE_COMPILE_STATE_NOT_STARTED
No OptixTask objects have started.
Definition: optix_types.h:1924
@ OPTIX_MODULE_COMPILE_STATE_IMPENDING_FAILURE
Not all OptixTask objects have completed, but at least one has failed.
Definition: optix_types.h:1930
@ OPTIX_MODULE_COMPILE_STATE_COMPLETED
All OptixTask objects have completed. The OptixModule is ready to be used.
Definition: optix_types.h:1936
@ OPTIX_VERTEX_FORMAT_FLOAT3
Vertices are represented by three floats.
Definition: optix_types.h:360
@ OPTIX_VERTEX_FORMAT_HALF3
Vertices are represented by three halfs.
Definition: optix_types.h:362
@ OPTIX_VERTEX_FORMAT_SNORM16_3
Definition: optix_types.h:364
@ OPTIX_VERTEX_FORMAT_SNORM16_2
Definition: optix_types.h:365
@ OPTIX_VERTEX_FORMAT_NONE
No vertices.
Definition: optix_types.h:359
@ OPTIX_VERTEX_FORMAT_HALF2
Vertices are represented by two halfs.
Definition: optix_types.h:363
@ OPTIX_VERTEX_FORMAT_FLOAT2
Vertices are represented by two floats.
Definition: optix_types.h:361
@ OPTIX_PIXEL_FORMAT_HALF4
four halfs, RGBA
Definition: optix_types.h:1578
@ OPTIX_PIXEL_FORMAT_FLOAT2
two floats, XY
Definition: optix_types.h:1580
@ OPTIX_PIXEL_FORMAT_FLOAT4
four floats, RGBA
Definition: optix_types.h:1582
@ OPTIX_PIXEL_FORMAT_UCHAR4
four unsigned chars, RGBA
Definition: optix_types.h:1584
@ OPTIX_PIXEL_FORMAT_HALF3
three halfs, RGB
Definition: optix_types.h:1577
@ OPTIX_PIXEL_FORMAT_FLOAT3
three floats, RGB
Definition: optix_types.h:1581
@ OPTIX_PIXEL_FORMAT_UCHAR3
three unsigned chars, RGB
Definition: optix_types.h:1583
@ OPTIX_PIXEL_FORMAT_HALF1
one half
Definition: optix_types.h:1575
@ OPTIX_PIXEL_FORMAT_INTERNAL_GUIDE_LAYER
internal format
Definition: optix_types.h:1585
@ OPTIX_PIXEL_FORMAT_FLOAT1
one float
Definition: optix_types.h:1579
@ OPTIX_PIXEL_FORMAT_HALF2
two halfs, XY
Definition: optix_types.h:1576
@ OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_LINEAR
An implicit linear mapping of triangles to displacement micromaps in the displacement micromap array ...
Definition: optix_types.h:579
@ OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_NONE
No displacement micromap is used.
Definition: optix_types.h:576
@ OPTIX_DISPLACEMENT_MICROMAP_ARRAY_INDEXING_MODE_INDEXED
OptixBuildInputDisplacementMicromap::displacementMicromapIndexBuffer provides a per triangle array of...
Definition: optix_types.h:583
@ OPTIX_DISPLACEMENT_MICROMAP_DIRECTION_FORMAT_HALF3
Definition: optix_types.h:386
@ OPTIX_DISPLACEMENT_MICROMAP_DIRECTION_FORMAT_FLOAT3
Definition: optix_types.h:385
@ OPTIX_DISPLACEMENT_MICROMAP_DIRECTION_FORMAT_NONE
Definition: optix_types.h:384
@ OPTIX_DEVICE_PROPERTY_SHADER_EXECUTION_REORDERING_FLAG_STANDARD
Definition: optix_types.h:307
@ OPTIX_DEVICE_PROPERTY_SHADER_EXECUTION_REORDERING_FLAG_NONE
optixReorder() acts as a no-op, and no thread reordering is performed. Note that it is still legal to...
Definition: optix_types.h:304
@ OPTIX_DENOISER_MODEL_KIND_HDR
Use the built-in model appropriate for high dynamic range input.
Definition: optix_types.h:1619
@ OPTIX_DENOISER_MODEL_KIND_TEMPORAL
Use the built-in model appropriate for high dynamic range input, temporally stable.
Definition: optix_types.h:1625
@ OPTIX_DENOISER_MODEL_KIND_AOV
Use the built-in model appropriate for high dynamic range input and support for AOVs.
Definition: optix_types.h:1622
@ OPTIX_DENOISER_MODEL_KIND_LDR
Use the built-in model appropriate for low dynamic range input.
Definition: optix_types.h:1616
@ OPTIX_DENOISER_MODEL_KIND_TEMPORAL_UPSCALE2X
Use the built-in model appropriate for high dynamic range input and support for AOVs,...
Definition: optix_types.h:1635
@ OPTIX_DENOISER_MODEL_KIND_UPSCALE2X
Use the built-in model appropriate for high dynamic range input and support for AOVs,...
Definition: optix_types.h:1631
@ OPTIX_DENOISER_MODEL_KIND_TEMPORAL_AOV
Use the built-in model appropriate for high dynamic range input and support for AOVs,...
Definition: optix_types.h:1628
@ OPTIX_BUILD_INPUT_TYPE_INSTANCES
Instance inputs.
Definition: optix_types.h:1022
@ OPTIX_BUILD_INPUT_TYPE_TRIANGLES
Triangle inputs.
Definition: optix_types.h:1018
@ OPTIX_BUILD_INPUT_TYPE_SPHERES
Sphere inputs.
Definition: optix_types.h:1028
@ OPTIX_BUILD_INPUT_TYPE_CUSTOM_PRIMITIVES
Custom primitive inputs.
Definition: optix_types.h:1020
@ OPTIX_BUILD_INPUT_TYPE_CURVES
Curve inputs.
Definition: optix_types.h:1026
@ OPTIX_BUILD_INPUT_TYPE_INSTANCE_POINTERS
Instance pointer inputs.
Definition: optix_types.h:1024
@ OPTIX_DISPLACEMENT_MICROMAP_BIAS_AND_SCALE_FORMAT_NONE
Definition: optix_types.h:377
@ OPTIX_DISPLACEMENT_MICROMAP_BIAS_AND_SCALE_FORMAT_HALF2
Definition: optix_types.h:379
@ OPTIX_DISPLACEMENT_MICROMAP_BIAS_AND_SCALE_FORMAT_FLOAT2
Definition: optix_types.h:378
@ OPTIX_CURVE_ENDCAP_ON
Flat end caps at both ends of quadratic/cubic curve segments. Not valid for linear.
Definition: optix_types.h:784
@ OPTIX_CURVE_ENDCAP_DEFAULT
Default end caps. Round end caps for linear, no end caps for quadratic/cubic.
Definition: optix_types.h:782
@ OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_BUILD
This flag is mutually exclusive with OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_TRACE.
Definition: optix_types.h:1209
@ OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_TRACE
This flag is mutually exclusive with OPTIX_OPACITY_MICROMAP_FLAG_PREFER_FAST_BUILD.
Definition: optix_types.h:1206
@ OPTIX_OPACITY_MICROMAP_FLAG_NONE
Definition: optix_types.h:1203
@ OPTIX_EXCEPTION_FLAG_STACK_OVERFLOW
Enables exceptions check related to the continuation stack. This flag should be used when the applica...
Definition: optix_types.h:2230
@ OPTIX_EXCEPTION_FLAG_TRACE_DEPTH
Enables exceptions check related to trace depth. This flag should be used when the application handle...
Definition: optix_types.h:2238
@ OPTIX_EXCEPTION_FLAG_USER
Enables user exceptions via optixThrowException(). This flag must be specified for all modules in a p...
Definition: optix_types.h:2242
@ OPTIX_EXCEPTION_FLAG_NONE
No exception are enabled.
Definition: optix_types.h:2222
@ OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_DECIMATE_EDGE_20
The triangle edge v2..v0 is decimated.
Definition: optix_types.h:509
@ OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_DECIMATE_EDGE_12
The triangle edge v1..v2 is decimated.
Definition: optix_types.h:507
@ 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 i...
Definition: optix_types.h:505
@ OPTIX_DISPLACEMENT_MICROMAP_TRIANGLE_FLAG_NONE
Definition: optix_types.h:502
@ OPTIX_HIT_KIND_TRIANGLE_BACK_FACE
Ray hit the triangle on the back face.
Definition: optix_types.h:342
@ OPTIX_HIT_KIND_TRIANGLE_FRONT_FACE
Ray hit the triangle on the front face.
Definition: optix_types.h:340
@ OPTIX_PROGRAM_GROUP_FLAGS_NONE
Currently there are no flags.
Definition: optix_types.h:2103
@ OPTIX_INDICES_FORMAT_NONE
No indices, this format must only be used in combination with triangle soups, i.e....
Definition: optix_types.h:349
@ OPTIX_INDICES_FORMAT_UNSIGNED_INT3
Three ints.
Definition: optix_types.h:353
@ OPTIX_INDICES_FORMAT_UNSIGNED_SHORT3
Three shorts.
Definition: optix_types.h:351
@ OPTIX_PROGRAM_GROUP_KIND_CALLABLES
Program group containing a direct (DC) or continuation (CC) callable program.
Definition: optix_types.h:2096
@ OPTIX_PROGRAM_GROUP_KIND_MISS
Program group containing a miss (MS) program.
Definition: optix_types.h:2084
@ OPTIX_PROGRAM_GROUP_KIND_HITGROUP
Program group containing an intersection (IS), any hit (AH), and/or closest hit (CH) program.
Definition: optix_types.h:2092
@ OPTIX_PROGRAM_GROUP_KIND_RAYGEN
Program group containing a raygen (RG) program.
Definition: optix_types.h:2080
@ OPTIX_PROGRAM_GROUP_KIND_EXCEPTION
Program group containing an exception (EX) program.
Definition: optix_types.h:2088
@ OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_LEVEL_INSTANCING
Used to signal that a traversable graph of a single Instance Acceleration Structure (IAS) directly co...
Definition: optix_types.h:1880
@ OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_ANY
Used to signal that any traversable graphs is valid. This flag is mutually exclusive with all other f...
Definition: optix_types.h:1869
@ OPTIX_TRAVERSABLE_GRAPH_FLAG_ALLOW_SINGLE_GAS
Used to signal that a traversable graph of a single Geometry Acceleration Structure (GAS) without any...
Definition: optix_types.h:1874
@ OPTIX_PRIMITIVE_TYPE_TRIANGLE
Triangle.
Definition: optix_types.h:745
@ OPTIX_PRIMITIVE_TYPE_ROUND_CUBIC_BEZIER
Bezier curve of degree 3 with circular cross-section.
Definition: optix_types.h:743
@ OPTIX_PRIMITIVE_TYPE_ROUND_QUADRATIC_BSPLINE
B-spline curve of degree 2 with circular cross-section.
Definition: optix_types.h:731
@ OPTIX_PRIMITIVE_TYPE_DISPLACED_MICROMESH_TRIANGLE
Triangle with an applied displacement micromap.
Definition: optix_types.h:747
@ OPTIX_PRIMITIVE_TYPE_CUSTOM
Custom primitive.
Definition: optix_types.h:729
@ OPTIX_PRIMITIVE_TYPE_SPHERE
Sphere.
Definition: optix_types.h:741
@ OPTIX_PRIMITIVE_TYPE_ROUND_LINEAR
Piecewise linear curve with circular cross-section.
Definition: optix_types.h:735
@ OPTIX_PRIMITIVE_TYPE_ROUND_CATMULLROM
CatmullRom curve with circular cross-section.
Definition: optix_types.h:737
@ OPTIX_PRIMITIVE_TYPE_ROUND_CUBIC_BSPLINE
B-spline curve of degree 3 with circular cross-section.
Definition: optix_types.h:733
@ OPTIX_PRIMITIVE_TYPE_FLAT_QUADRATIC_BSPLINE
B-spline curve of degree 2 with oriented, flat cross-section.
Definition: optix_types.h:739
@ OPTIX_PAYLOAD_TYPE_ID_5
Definition: optix_types.h:1989
@ OPTIX_PAYLOAD_TYPE_ID_1
Definition: optix_types.h:1985
@ OPTIX_PAYLOAD_TYPE_ID_0
Definition: optix_types.h:1984
@ OPTIX_PAYLOAD_TYPE_ID_2
Definition: optix_types.h:1986
@ OPTIX_PAYLOAD_TYPE_ID_3
Definition: optix_types.h:1987
@ OPTIX_PAYLOAD_TYPE_DEFAULT
Definition: optix_types.h:1983
@ OPTIX_PAYLOAD_TYPE_ID_6
Definition: optix_types.h:1990
@ OPTIX_PAYLOAD_TYPE_ID_7
Definition: optix_types.h:1991
@ OPTIX_PAYLOAD_TYPE_ID_4
Definition: optix_types.h:1988
@ OPTIX_TRAVERSABLE_TYPE_MATRIX_MOTION_TRANSFORM
Matrix motion transform.
Definition: optix_types.h:1565
@ OPTIX_TRAVERSABLE_TYPE_STATIC_TRANSFORM
Static transforms.
Definition: optix_types.h:1563
@ OPTIX_TRAVERSABLE_TYPE_SRT_MOTION_TRANSFORM
SRT motion transform.
Definition: optix_types.h:1567
@ OPTIX_INSTANCE_FLAG_ENFORCE_ANYHIT
Enables anyhit programs for all geometries of the instance. Overrides OPTIX_GEOMETRY_FLAG_DISABLE_ANY...
Definition: optix_types.h:1112
@ OPTIX_INSTANCE_FLAG_DISABLE_TRIANGLE_FACE_CULLING
Prevent triangles from getting culled due to their orientation. Effectively ignores ray flags OPTIX_R...
Definition: optix_types.h:1097
@ OPTIX_INSTANCE_FLAG_DISABLE_ANYHIT
Disable anyhit programs for all geometries of the instance. Can be overridden by OPTIX_RAY_FLAG_ENFOR...
Definition: optix_types.h:1106
@ OPTIX_INSTANCE_FLAG_DISABLE_OPACITY_MICROMAPS
Don't perform opacity micromap query for this instance. GAS must be built with ALLOW_DISABLE_OPACITY_...
Definition: optix_types.h:1119
@ OPTIX_INSTANCE_FLAG_NONE
No special flag set.
Definition: optix_types.h:1092
@ OPTIX_INSTANCE_FLAG_FLIP_TRIANGLE_FACING
Flip triangle orientation. This affects front/backface culling as well as the reported face in case o...
Definition: optix_types.h:1101
@ OPTIX_INSTANCE_FLAG_FORCE_OPACITY_MICROMAP_2_STATE
Force 4-state opacity micromaps to behave as 2-state opacity micromaps during traversal.
Definition: optix_types.h:1116
@ OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_INDEXED
OptixBuildInputOpacityMicromap::indexBuffer provides a per triangle array of predefined indices and/o...
Definition: optix_types.h:411
@ OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_NONE
No opacity micromap is used.
Definition: optix_types.h:404
@ OPTIX_OPACITY_MICROMAP_ARRAY_INDEXING_MODE_LINEAR
An implicit linear mapping of triangles to opacity micromaps in the opacity micromap array is used....
Definition: optix_types.h:407
@ OPTIX_DISPLACEMENT_MICROMAP_FORMAT_NONE
Definition: optix_types.h:481
@ OPTIX_DISPLACEMENT_MICROMAP_FORMAT_1024_MICRO_TRIS_128_BYTES
Definition: optix_types.h:484
@ OPTIX_DISPLACEMENT_MICROMAP_FORMAT_256_MICRO_TRIS_128_BYTES
Definition: optix_types.h:483
@ OPTIX_DISPLACEMENT_MICROMAP_FORMAT_64_MICRO_TRIS_64_BYTES
Definition: optix_types.h:482
@ OPTIX_COMPILE_OPTIMIZATION_DEFAULT
Default is to run all optimizations.
Definition: optix_types.h:1889
@ OPTIX_COMPILE_OPTIMIZATION_LEVEL_1
Some optimizations.
Definition: optix_types.h:1893
@ OPTIX_COMPILE_OPTIMIZATION_LEVEL_3
All optimizations.
Definition: optix_types.h:1897
@ OPTIX_COMPILE_OPTIMIZATION_LEVEL_0
No optimizations.
Definition: optix_types.h:1891
@ OPTIX_COMPILE_OPTIMIZATION_LEVEL_2
Most optimizations.
Definition: optix_types.h:1895
@ OPTIX_TRANSFORM_FORMAT_NONE
no transform, default for zero initialization
Definition: optix_types.h:371
@ OPTIX_TRANSFORM_FORMAT_MATRIX_FLOAT12
3x4 row major affine matrix
Definition: optix_types.h:372
@ OPTIX_QUERY_FUNCTION_TABLE_OPTION_DUMMY
Placeholder (there are no options yet)
Definition: optix_types.h:2360
@ OPTIX_BUILD_FLAG_ALLOW_DISABLE_OPACITY_MICROMAPS
If enabled, any instances referencing this GAS are allowed to disable the opacity micromap test throu...
Definition: optix_types.h:1196
@ OPTIX_BUILD_FLAG_ALLOW_UPDATE
Allow updating the build with new vertex positions with subsequent calls to optixAccelBuild.
Definition: optix_types.h:1163
@ OPTIX_BUILD_FLAG_ALLOW_RANDOM_INSTANCE_ACCESS
Allow random access to instances See optixGetInstanceTraversableFromIAS.
Definition: optix_types.h:1186
@ OPTIX_BUILD_FLAG_PREFER_FAST_BUILD
This flag is mutually exclusive with OPTIX_BUILD_FLAG_PREFER_FAST_TRACE.
Definition: optix_types.h:1171
@ OPTIX_BUILD_FLAG_PREFER_FAST_TRACE
This flag is mutually exclusive with OPTIX_BUILD_FLAG_PREFER_FAST_BUILD.
Definition: optix_types.h:1168
@ OPTIX_BUILD_FLAG_ALLOW_OPACITY_MICROMAP_UPDATE
Support updating the opacity micromap array and opacity micromap indices on refits....
Definition: optix_types.h:1191
@ OPTIX_BUILD_FLAG_NONE
No special flags set.
Definition: optix_types.h:1159
@ OPTIX_BUILD_FLAG_ALLOW_RANDOM_VERTEX_ACCESS
Allow random access to build input vertices See optixGetTriangleVertexData optixGetLinearCurveVertexD...
Definition: optix_types.h:1182
@ OPTIX_BUILD_FLAG_ALLOW_COMPACTION
Definition: optix_types.h:1165
AABB inputs.
Definition: optix_types.h:917
float minX
Lower extent in X direction.
Definition: optix_types.h:918
float minY
Lower extent in Y direction.
Definition: optix_types.h:919
float maxX
Upper extent in X direction.
Definition: optix_types.h:921
float maxY
Upper extent in Y direction.
Definition: optix_types.h:922
float minZ
Lower extent in Z direction.
Definition: optix_types.h:920
float maxZ
Upper extent in Z direction.
Definition: optix_types.h:923
Struct for querying builder allocation requirements.
Definition: optix_types.h:1358
size_t tempSizeInBytes
The size in bytes required for the tempBuffer paramter to optixAccelBuild when doing a build (OPTIX_B...
Definition: optix_types.h:1365
size_t outputSizeInBytes
The size in bytes required for the outputBuffer parameter to optixAccelBuild when doing a build (OPTI...
Definition: optix_types.h:1361
size_t tempUpdateSizeInBytes
The size in bytes required for the tempBuffer parameter to optixAccelBuild when doing an update (OPTI...
Definition: optix_types.h:1371
Build options for acceleration structures.
Definition: optix_types.h:1336
unsigned int buildFlags
Combinations of OptixBuildFlags.
Definition: optix_types.h:1338
OptixMotionOptions motionOptions
Options for motion.
Definition: optix_types.h:1349
OptixBuildOperation operation
If OPTIX_BUILD_OPERATION_UPDATE the output buffer is assumed to contain the result of a full build wi...
Definition: optix_types.h:1346
Specifies a type and output destination for emitted post-build properties.
Definition: optix_types.h:1390
OptixAccelPropertyType type
Requested property.
Definition: optix_types.h:1395
CUdeviceptr result
Output buffer for the properties.
Definition: optix_types.h:1392
Curve inputs.
Definition: optix_types.h:805
unsigned int widthStrideInBytes
Stride between widths. If set to zero, widths are assumed to be tightly packed and stride is sizeof( ...
Definition: optix_types.h:828
unsigned int primitiveIndexOffset
Primitive index bias, applied in optixGetPrimitiveIndex(). Sum of primitiveIndexOffset and number of ...
Definition: optix_types.h:851
unsigned int endcapFlags
End cap flags, see OptixCurveEndcapFlags.
Definition: optix_types.h:854
unsigned int numPrimitives
Number of primitives. Each primitive is a polynomial curve segment.
Definition: optix_types.h:810
const CUdeviceptr * vertexBuffers
Pointer to host array of device pointers, one per motion step. Host array size must match number of m...
Definition: optix_types.h:816
unsigned int normalStrideInBytes
Reserved for future use.
Definition: optix_types.h:833
CUdeviceptr indexBuffer
Device pointer to array of unsigned ints, one per curve segment. This buffer is required (unlike for ...
Definition: optix_types.h:840
unsigned int indexStrideInBytes
Stride between indices. If set to zero, indices are assumed to be tightly packed and stride is sizeof...
Definition: optix_types.h:843
const CUdeviceptr * normalBuffers
Reserved for future use.
Definition: optix_types.h:831
unsigned int vertexStrideInBytes
Stride between vertices. If set to zero, vertices are assumed to be tightly packed and stride is size...
Definition: optix_types.h:821
const CUdeviceptr * widthBuffers
Parallel to vertexBuffers: a device pointer per motion step, each with numVertices float values,...
Definition: optix_types.h:825
unsigned int numVertices
Number of vertices in each buffer in vertexBuffers.
Definition: optix_types.h:818
OptixPrimitiveType curveType
Curve degree and basis.
Definition: optix_types.h:808
unsigned int flag
Combination of OptixGeometryFlags describing the primitive behavior.
Definition: optix_types.h:847
Custom primitive inputs.
Definition: optix_types.h:930
const CUdeviceptr * aabbBuffers
Points to host array of device pointers to AABBs (type OptixAabb), one per motion step....
Definition: optix_types.h:935
const unsigned int * flags
Array of flags, to specify flags per sbt record, combinations of OptixGeometryFlags describing the pr...
Definition: optix_types.h:949
unsigned int sbtIndexOffsetStrideInBytes
Stride between the index offsets. If set to zero, the offsets are assumed to be tightly packed and th...
Definition: optix_types.h:964
CUdeviceptr sbtIndexOffsetBuffer
Device pointer to per-primitive local sbt index offset buffer. May be NULL. Every entry must be in ra...
Definition: optix_types.h:957
unsigned int numSbtRecords
Number of sbt records available to the sbt index offset override.
Definition: optix_types.h:952
unsigned int numPrimitives
Number of primitives in each buffer (i.e., per motion step) in OptixBuildInputCustomPrimitiveArray::a...
Definition: optix_types.h:939
unsigned int sbtIndexOffsetSizeInBytes
Size of type of the sbt index offset. Needs to be 0, 1, 2 or 4 (8, 16 or 32 bit).
Definition: optix_types.h:960
unsigned int primitiveIndexOffset
Primitive index bias, applied in optixGetPrimitiveIndex(). Sum of primitiveIndexOffset and number of ...
Definition: optix_types.h:968
unsigned int strideInBytes
Stride between AABBs (per motion key). If set to zero, the aabbs are assumed to be tightly packed and...
Definition: optix_types.h:944
Optional displacement part of a triangle array input.
Definition: optix_types.h:588
unsigned int displacementMicromapIndexSizeInBytes
2 or 4 (16 or 32 bit)
Definition: optix_types.h:609
CUdeviceptr displacementMicromapArray
Address to a displacement micromap array used by this build input array. Set to NULL to disable DMs f...
Definition: optix_types.h:593
unsigned int vertexBiasAndScaleStrideInBytes
Stride in bytes for vertex bias and direction scale entries.
Definition: optix_types.h:619
CUdeviceptr triangleFlagsBuffer
Optional per-triangle flags, uint8_t per triangle, possible values defined in enum OptixDisplacementM...
Definition: optix_types.h:601
unsigned int vertexDirectionStrideInBytes
Stride between displacement vectors.
Definition: optix_types.h:614
unsigned int triangleFlagsStrideInBytes
Stride in bytes for triangleFlags.
Definition: optix_types.h:622
OptixDisplacementMicromapDirectionFormat vertexDirectionFormat
Format of displacement vectors.
Definition: optix_types.h:612
CUdeviceptr vertexBiasAndScaleBuffer
Optional per-vertex bias (offset) along displacement direction and displacement direction scale.
Definition: optix_types.h:599
unsigned int numDisplacementMicromapUsageCounts
Number of OptixDisplacementMicromapUsageCount entries.
Definition: optix_types.h:625
const OptixDisplacementMicromapUsageCount * displacementMicromapUsageCounts
List of number of usages of displacement micromaps of format and subdivision combinations....
Definition: optix_types.h:628
unsigned int displacementMicromapIndexStrideInBytes
Displacement micromap index buffer stride. If set to zero, indices are assumed to be tightly packed a...
Definition: optix_types.h:607
CUdeviceptr displacementMicromapIndexBuffer
int16 or int32 buffer specifying which displacement micromap index to use for each triangle....
Definition: optix_types.h:595
OptixDisplacementMicromapBiasAndScaleFormat vertexBiasAndScaleFormat
Format of vertex bias and direction scale.
Definition: optix_types.h:617
OptixDisplacementMicromapArrayIndexingMode indexingMode
Indexing mode of triangle to displacement micromap array mapping.
Definition: optix_types.h:590
CUdeviceptr vertexDirectionsBuffer
Per triangle-vertex displacement directions.
Definition: optix_types.h:597
unsigned int displacementMicromapIndexOffset
Constant offset to displacement micromap indices as specified by the displacement micromap index buff...
Definition: optix_types.h:604
Build inputs.
Definition: optix_types.h:1037
OptixBuildInputCurveArray curveArray
Curve inputs.
Definition: optix_types.h:1046
char pad[1024]
Definition: optix_types.h:1053
OptixBuildInputInstanceArray instanceArray
Instance and instance pointer inputs.
Definition: optix_types.h:1052
OptixBuildInputSphereArray sphereArray
Sphere inputs.
Definition: optix_types.h:1048
OptixBuildInputTriangleArray triangleArray
Triangle inputs.
Definition: optix_types.h:1044
OptixBuildInputCustomPrimitiveArray customPrimitiveArray
Custom primitive inputs.
Definition: optix_types.h:1050
OptixBuildInputType type
The type of the build input.
Definition: optix_types.h:1039
Instance and instance pointer inputs.
Definition: optix_types.h:975
CUdeviceptr instances
If OptixBuildInput::type is OPTIX_BUILD_INPUT_TYPE_INSTANCE_POINTERS instances and aabbs should be in...
Definition: optix_types.h:983
unsigned int numInstances
Number of elements in OptixBuildInputInstanceArray::instances.
Definition: optix_types.h:986
unsigned int instanceStride
Only valid for OPTIX_BUILD_INPUT_TYPE_INSTANCE Defines the stride between instances....
Definition: optix_types.h:991
Definition: optix_types.h:430
CUdeviceptr opacityMicromapArray
Device pointer to a opacity micromap array used by this build input array. This buffer is required wh...
Definition: optix_types.h:438
const OptixOpacityMicromapUsageCount * micromapUsageCounts
List of number of usages of opacity micromaps of format and subdivision combinations....
Definition: optix_types.h:466
unsigned int indexStrideInBytes
Opacity micromap index buffer stride. If set to zero, indices are assumed to be tightly packed and st...
Definition: optix_types.h:457
unsigned int indexOffset
Constant offset to non-negative opacity micromap indices.
Definition: optix_types.h:460
unsigned int indexSizeInBytes
0, 2 or 4 (unused, 16 or 32 bit) Must be non-zero when OptixBuildInputOpacityMicromap::indexingMode i...
Definition: optix_types.h:453
CUdeviceptr indexBuffer
int16 or int32 buffer specifying which opacity micromap index to use for each triangle....
Definition: optix_types.h:449
unsigned int numMicromapUsageCounts
Number of OptixOpacityMicromapUsageCount.
Definition: optix_types.h:463
OptixOpacityMicromapArrayIndexingMode indexingMode
Indexing mode of triangle to opacity micromap array mapping.
Definition: optix_types.h:432
Sphere inputs.
Definition: optix_types.h:870
unsigned int numVertices
Number of vertices in each buffer in vertexBuffers.
Definition: optix_types.h:881
unsigned int radiusStrideInBytes
Stride between radii. If set to zero, widths are assumed to be tightly packed and stride is sizeof( f...
Definition: optix_types.h:888
const CUdeviceptr * vertexBuffers
Pointer to host array of device pointers, one per motion step. Host array size must match number of m...
Definition: optix_types.h:875
unsigned int sbtIndexOffsetSizeInBytes
Size of type of the sbt index offset. Needs to be 0, 1, 2 or 4 (8, 16 or 32 bit).
Definition: optix_types.h:905
unsigned int numSbtRecords
Number of sbt records available to the sbt index offset override.
Definition: optix_types.h:899
int singleRadius
Boolean value indicating whether a single radius per radius buffer is used, or the number of radii in...
Definition: optix_types.h:891
const unsigned int * flags
Array of flags, to specify flags per sbt record, combinations of OptixGeometryFlags describing the pr...
Definition: optix_types.h:896
const CUdeviceptr * radiusBuffers
Parallel to vertexBuffers: a device pointer per motion step, each with numRadii float values,...
Definition: optix_types.h:885
unsigned int primitiveIndexOffset
Primitive index bias, applied in optixGetPrimitiveIndex(). Sum of primitiveIndexOffset and number of ...
Definition: optix_types.h:912
unsigned int vertexStrideInBytes
Stride between vertices. If set to zero, vertices are assumed to be tightly packed and stride is size...
Definition: optix_types.h:879
CUdeviceptr sbtIndexOffsetBuffer
Device pointer to per-primitive local sbt index offset buffer. May be NULL. Every entry must be in ra...
Definition: optix_types.h:903
unsigned int sbtIndexOffsetStrideInBytes
Stride between the sbt index offsets. If set to zero, the offsets are assumed to be tightly packed an...
Definition: optix_types.h:908
Triangle inputs.
Definition: optix_types.h:637
const CUdeviceptr * vertexBuffers
Points to host array of device pointers, one per motion step. Host array size must match the number o...
Definition: optix_types.h:645
OptixBuildInputOpacityMicromap opacityMicromap
Optional opacity micromap inputs.
Definition: optix_types.h:705
unsigned int primitiveIndexOffset
Primitive index bias, applied in optixGetPrimitiveIndex(). Sum of primitiveIndexOffset and number of ...
Definition: optix_types.h:699
OptixVertexFormat vertexFormat
Definition: optix_types.h:651
unsigned int numVertices
Number of vertices in each of buffer in OptixBuildInputTriangleArray::vertexBuffers.
Definition: optix_types.h:648
OptixTransformFormat transformFormat
Definition: optix_types.h:702
unsigned int numIndexTriplets
Size of array in OptixBuildInputTriangleArray::indexBuffer. For build, needs to be zero if indexBuffe...
Definition: optix_types.h:663
const unsigned int * flags
Array of flags, to specify flags per sbt record, combinations of OptixGeometryFlags describing the pr...
Definition: optix_types.h:680
CUdeviceptr preTransform
Optional pointer to array of floats representing a 3x4 row major affine transformation matrix....
Definition: optix_types.h:675
OptixIndicesFormat indexFormat
Definition: optix_types.h:666
CUdeviceptr indexBuffer
Optional pointer to array of 16 or 32-bit int triplets, one triplet per triangle. The minimum alignme...
Definition: optix_types.h:660
unsigned int indexStrideInBytes
Stride between triplets of indices. If set to zero, indices are assumed to be tightly packed and stri...
Definition: optix_types.h:670
unsigned int sbtIndexOffsetStrideInBytes
Stride between the index offsets. If set to zero, the offsets are assumed to be tightly packed and th...
Definition: optix_types.h:695
OptixBuildInputDisplacementMicromap displacementMicromap
Optional displacement micromap inputs.
Definition: optix_types.h:707
unsigned int sbtIndexOffsetSizeInBytes
Size of type of the sbt index offset. Needs to be 0, 1, 2 or 4 (8, 16 or 32 bit).
Definition: optix_types.h:691
unsigned int numSbtRecords
Number of sbt records available to the sbt index offset override.
Definition: optix_types.h:683
CUdeviceptr sbtIndexOffsetBuffer
Device pointer to per-primitive local sbt index offset buffer. May be NULL. Every entry must be in ra...
Definition: optix_types.h:688
unsigned int vertexStrideInBytes
Stride between vertices. If set to zero, vertices are assumed to be tightly packed and stride is infe...
Definition: optix_types.h:655
Specifies the options for retrieving an intersection program for a built-in primitive type....
Definition: optix_types.h:2377
OptixPrimitiveType builtinISModuleType
Definition: optix_types.h:2378
int usesMotionBlur
Boolean value indicating whether vertex motion blur is used (but not motion transform blur).
Definition: optix_types.h:2380
unsigned int buildFlags
Build flags, see OptixBuildFlags.
Definition: optix_types.h:2382
unsigned int curveEndcapFlags
End cap properties of curves, see OptixCurveEndcapFlags, 0 for non-curve types.
Definition: optix_types.h:2384
Guide layer for the denoiser.
Definition: optix_types.h:1669
OptixImage2D normal
Definition: optix_types.h:1675
OptixImage2D flowTrustworthiness
Definition: optix_types.h:1689
OptixImage2D flow
Definition: optix_types.h:1679
OptixImage2D previousOutputInternalGuideLayer
Definition: optix_types.h:1683
OptixImage2D albedo
Definition: optix_types.h:1671
OptixImage2D outputInternalGuideLayer
Definition: optix_types.h:1684
Input/Output layers for the denoiser.
Definition: optix_types.h:1712
OptixImage2D output
Definition: optix_types.h:1720
OptixImage2D input
Definition: optix_types.h:1714
OptixDenoiserAOVType type
Definition: optix_types.h:1723
OptixImage2D previousOutput
Definition: optix_types.h:1717
Options used by the denoiser.
Definition: optix_types.h:1654
OptixDenoiserAlphaMode denoiseAlpha
alpha denoise mode
Definition: optix_types.h:1662
unsigned int guideAlbedo
Definition: optix_types.h:1656
unsigned int guideNormal
Definition: optix_types.h:1659
Various parameters used by the denoiser.
Definition: optix_types.h:1733
CUdeviceptr hdrAverageColor
this parameter is used when the OPTIX_DENOISER_MODEL_KIND_AOV model kind is set. average log color of...
Definition: optix_types.h:1751
float blendFactor
blend factor. If set to 0 the output is 100% of the denoised input. If set to 1, the output is 100% o...
Definition: optix_types.h:1744
CUdeviceptr hdrIntensity
average log intensity of input image (default null pointer). points to a single float....
Definition: optix_types.h:1738
unsigned int temporalModeUsePreviousLayers
In temporal modes this parameter must be set to 1 if previous layers (e.g. previousOutputInternalGuid...
Definition: optix_types.h:1757
Various sizes related to the denoiser.
Definition: optix_types.h:1764
size_t withoutOverlapScratchSizeInBytes
Size of scratch memory passed to optixDenoiserSetup, optixDenoiserInvoke. No overlap added.
Definition: optix_types.h:1774
size_t withOverlapScratchSizeInBytes
Size of scratch memory passed to optixDenoiserSetup, optixDenoiserInvoke. Overlap added to dimensions...
Definition: optix_types.h:1770
size_t internalGuideLayerPixelSizeInBytes
Number of bytes for each pixel in internal guide layers.
Definition: optix_types.h:1788
size_t computeIntensitySizeInBytes
Size of scratch memory passed to optixDenoiserComputeIntensity. The size is independent of the tile/i...
Definition: optix_types.h:1785
size_t stateSizeInBytes
Size of state memory passed to optixDenoiserSetup, optixDenoiserInvoke.
Definition: optix_types.h:1766
size_t computeAverageColorSizeInBytes
Size of scratch memory passed to optixDenoiserComputeAverageColor. The size is independent of the til...
Definition: optix_types.h:1781
unsigned int overlapWindowSizeInPixels
Overlap on all four tile sides.
Definition: optix_types.h:1777
Parameters used for optixDeviceContextCreate()
Definition: optix_types.h:285
OptixLogCallback logCallbackFunction
Function pointer used when OptiX wishes to generate messages.
Definition: optix_types.h:287
int logCallbackLevel
Maximum callback level to generate message for (see OptixLogCallback)
Definition: optix_types.h:291
void * logCallbackData
Pointer stored and passed to logCallbackFunction when a message is generated.
Definition: optix_types.h:289
OptixDeviceContextValidationMode validationMode
Validation mode of context.
Definition: optix_types.h:293
Inputs to displacement micromaps array construction.
Definition: optix_types.h:538
OptixDisplacementMicromapFlags flags
Flags that apply to all displacement micromaps in array.
Definition: optix_types.h:540
const OptixDisplacementMicromapHistogramEntry * displacementMicromapHistogramEntries
Histogram over DMMs for input format and subdivision combinations. Counts of histogram bins with equa...
Definition: optix_types.h:554
unsigned int perDisplacementMicromapDescStrideInBytes
Stride between OptixDisplacementMicromapDesc in perDisplacementMicromapDescBuffer If set to zero,...
Definition: optix_types.h:549
unsigned int numDisplacementMicromapHistogramEntries
Number of OptixDisplacementMicromapHistogramEntry entries.
Definition: optix_types.h:551
CUdeviceptr displacementValuesBuffer
128 byte aligned pointer for displacement micromap raw input data.
Definition: optix_types.h:542
CUdeviceptr perDisplacementMicromapDescBuffer
Descriptors for interpreting raw input data, one OptixDisplacementMicromapDesc entry required per dis...
Definition: optix_types.h:545
Definition: optix_types.h:513
unsigned short subdivisionLevel
Number of micro-triangles is 4^level. Valid levels are [0, 5].
Definition: optix_types.h:517
unsigned short format
Format (OptixDisplacementMicromapFormat)
Definition: optix_types.h:519
unsigned int byteOffset
Block is located at displacementValuesBuffer + byteOffset.
Definition: optix_types.h:515
Displacement micromap histogram entry. Specifies how many displacement micromaps of a specific type a...
Definition: optix_types.h:527
unsigned int count
Number of displacement micromaps with the format and subdivision level that are input to the displace...
Definition: optix_types.h:529
unsigned int subdivisionLevel
Number of micro-triangles is 4^level. Valid levels are [0, 5].
Definition: optix_types.h:531
OptixDisplacementMicromapFormat format
Displacement micromap format.
Definition: optix_types.h:533
Displacement micromap usage count for acceleration structure builds. Specifies how many displacement ...
Definition: optix_types.h:562
unsigned int subdivisionLevel
Number of micro-triangles is 4^level. Valid levels are [0, 5].
Definition: optix_types.h:567
OptixDisplacementMicromapFormat format
Displacement micromaps format.
Definition: optix_types.h:569
unsigned int count
Number of displacement micromaps with this format and subdivision level referenced by triangles in th...
Definition: optix_types.h:565
Image descriptor used by the denoiser.
Definition: optix_types.h:1592
unsigned int rowStrideInBytes
Stride between subsequent rows of the image (in bytes).
Definition: optix_types.h:1600
CUdeviceptr data
Pointer to the actual pixel data.
Definition: optix_types.h:1594
OptixPixelFormat format
Pixel format.
Definition: optix_types.h:1607
unsigned int width
Width of the image (in pixels)
Definition: optix_types.h:1596
unsigned int height
Height of the image (in pixels)
Definition: optix_types.h:1598
unsigned int pixelStrideInBytes
Stride between subsequent pixels of the image (in bytes). If set to 0, dense packing (no gaps) is ass...
Definition: optix_types.h:1605
Instances.
Definition: optix_types.h:1127
unsigned int sbtOffset
SBT record offset. In a traversable graph with multiple levels of instance acceleration structure (IA...
Definition: optix_types.h:1137
float transform[12]
affine object-to-world transformation as 3x4 matrix in row-major layout
Definition: optix_types.h:1129
unsigned int pad[2]
round up to 80-byte, to ensure 16-byte alignment
Definition: optix_types.h:1150
unsigned int flags
Any combination of OptixInstanceFlags is allowed.
Definition: optix_types.h:1144
OptixTraversableHandle traversableHandle
Set with an OptixTraversableHandle.
Definition: optix_types.h:1147
unsigned int instanceId
Application supplied ID. The maximal ID can be queried using OPTIX_DEVICE_PROPERTY_LIMIT_MAX_INSTANCE...
Definition: optix_types.h:1132
unsigned int visibilityMask
Visibility mask. If rayMask & instanceMask == 0 the instance is culled. The number of available bits ...
Definition: optix_types.h:1141
Represents a matrix motion transformation.
Definition: optix_types.h:1454
OptixMotionOptions motionOptions
The motion options for this transformation. Must have at least two motion keys.
Definition: optix_types.h:1460
unsigned int pad[3]
Padding to make the transformation 16 byte aligned.
Definition: optix_types.h:1463
float transform[2][12]
Affine object-to-world transformation as 3x4 matrix in row-major layout.
Definition: optix_types.h:1466
OptixTraversableHandle child
The traversable that is transformed by this transformation.
Definition: optix_types.h:1456
Conservative memory requirements for building a opacity/displacement micromap array.
Definition: optix_types.h:1264
size_t tempSizeInBytes
Definition: optix_types.h:1266
size_t outputSizeInBytes
Definition: optix_types.h:1265
Buffer inputs for opacity/displacement micromap array builds.
Definition: optix_types.h:1271
CUdeviceptr output
Output buffer.
Definition: optix_types.h:1273
size_t tempSizeInBytes
Temp buffer size.
Definition: optix_types.h:1279
CUdeviceptr temp
Temp buffer.
Definition: optix_types.h:1277
size_t outputSizeInBytes
Output buffer size.
Definition: optix_types.h:1275
Struct for specifying specializations for pipelineParams as specified in OptixPipelineCompileOptions:...
Definition: optix_types.h:1973
size_t pipelineParamOffsetInBytes
Definition: optix_types.h:1974
const void * boundValuePtr
Definition: optix_types.h:1976
const char * annotation
Definition: optix_types.h:1977
size_t sizeInBytes
Definition: optix_types.h:1975
Compilation options for module.
Definition: optix_types.h:2049
unsigned int numPayloadTypes
The number of different payload types available for compilation. Must be zero if OptixPipelineCompile...
Definition: optix_types.h:2068
OptixCompileDebugLevel debugLevel
Generate debug information.
Definition: optix_types.h:2058
int maxRegisterCount
Maximum number of registers allowed when compiling to SASS. Set to 0 for no explicit limit....
Definition: optix_types.h:2052
OptixCompileOptimizationLevel optLevel
Optimization level. May vary within a pipeline.
Definition: optix_types.h:2055
const OptixPayloadType * payloadTypes
Points to host array of payload type definitions, size must match numPayloadTypes.
Definition: optix_types.h:2071
const OptixModuleCompileBoundValueEntry * boundValues
Ingored if numBoundValues is set to 0.
Definition: optix_types.h:2061
unsigned int numBoundValues
set to 0 if unused
Definition: optix_types.h:2064
Motion options.
Definition: optix_types.h:1317
unsigned short numKeys
If numKeys > 1, motion is enabled. timeBegin, timeEnd and flags are all ignored when motion is disabl...
Definition: optix_types.h:1320
float timeBegin
Point in time where motion starts. Must be lesser than timeEnd.
Definition: optix_types.h:1326
float timeEnd
Point in time where motion ends. Must be greater than timeBegin.
Definition: optix_types.h:1329
unsigned short flags
Combinations of OptixMotionFlags.
Definition: optix_types.h:1323
Inputs to opacity micromap array construction.
Definition: optix_types.h:1239
unsigned int numMicromapHistogramEntries
Number of OptixOpacityMicromapHistogramEntry.
Definition: optix_types.h:1256
unsigned int perMicromapDescStrideInBytes
Stride between OptixOpacityMicromapDescs in perOmDescBuffer. If set to zero, the opacity micromap des...
Definition: optix_types.h:1253
CUdeviceptr inputBuffer
128B aligned base pointer for raw opacity micromap input data.
Definition: optix_types.h:1244
CUdeviceptr perMicromapDescBuffer
One OptixOpacityMicromapDesc entry per opacity micromap. This device pointer must be a multiple of OP...
Definition: optix_types.h:1248
unsigned int flags
Applies to all opacity micromaps in array.
Definition: optix_types.h:1241
const OptixOpacityMicromapHistogramEntry * micromapHistogramEntries
Histogram over opacity micromaps of input format and subdivision combinations. Counts of entries with...
Definition: optix_types.h:1259
Opacity micromap descriptor.
Definition: optix_types.h:1214
unsigned int byteOffset
Byte offset to opacity micromap in data input buffer of opacity micromap array build.
Definition: optix_types.h:1216
unsigned short subdivisionLevel
Number of micro-triangles is 4^level. Valid levels are [0, 12].
Definition: optix_types.h:1218
unsigned short format
OptixOpacityMicromapFormat.
Definition: optix_types.h:1220
Opacity micromap histogram entry. Specifies how many opacity micromaps of a specific type are input t...
Definition: optix_types.h:1228
unsigned int count
Number of opacity micromaps with the format and subdivision level that are input to the opacity micro...
Definition: optix_types.h:1230
unsigned int subdivisionLevel
Number of micro-triangles is 4^level. Valid levels are [0, 12].
Definition: optix_types.h:1232
OptixOpacityMicromapFormat format
Opacity micromap format.
Definition: optix_types.h:1234
Opacity micromap usage count for acceleration structure builds. Specifies how many opacity micromaps ...
Definition: optix_types.h:419
OptixOpacityMicromapFormat format
opacity micromap format.
Definition: optix_types.h:426
unsigned int count
Number of opacity micromaps with this format and subdivision level referenced by triangles in the cor...
Definition: optix_types.h:422
unsigned int subdivisionLevel
Number of micro-triangles is 4^level. Valid levels are [0, 12].
Definition: optix_types.h:424
Specifies a single payload type.
Definition: optix_types.h:2037
unsigned int numPayloadValues
The number of 32b words the payload of this type holds.
Definition: optix_types.h:2039
const unsigned int * payloadSemantics
Points to host array of payload word semantics, size must match numPayloadValues.
Definition: optix_types.h:2042
Compilation options for all modules of a pipeline.
Definition: optix_types.h:2252
int allowOpacityMicromaps
Boolean value indicating whether opacity micromaps could be used.
Definition: optix_types.h:2280
unsigned int usesPrimitiveTypeFlags
Bit field enabling primitive types. See OptixPrimitiveTypeFlags. Setting to zero corresponds to enabl...
Definition: optix_types.h:2277
unsigned int exceptionFlags
A bitmask of OptixExceptionFlags indicating which exceptions are enabled.
Definition: optix_types.h:2268
const char * pipelineLaunchParamsVariableName
The name of the pipeline parameter variable. If 0, no pipeline parameter will be available....
Definition: optix_types.h:2273
unsigned int traversableGraphFlags
Traversable graph bitfield. See OptixTraversableGraphFlags.
Definition: optix_types.h:2257
int numPayloadValues
How much storage, in 32b words, to make available for the payload, [0..32] Must be zero if numPayload...
Definition: optix_types.h:2261
int numAttributeValues
How much storage, in 32b words, to make available for the attributes. The minimum number is 2....
Definition: optix_types.h:2265
int usesMotionBlur
Boolean value indicating whether motion blur could be used.
Definition: optix_types.h:2254
Program group representing callables.
Definition: optix_types.h:2147
OptixModule moduleDC
Module holding the direct callable (DC) program.
Definition: optix_types.h:2149
const char * entryFunctionNameDC
Entry function name of the direct callable (DC) program.
Definition: optix_types.h:2151
OptixModule moduleCC
Module holding the continuation callable (CC) program.
Definition: optix_types.h:2153
const char * entryFunctionNameCC
Entry function name of the continuation callable (CC) program.
Definition: optix_types.h:2155
Descriptor for program groups.
Definition: optix_types.h:2160
OptixProgramGroupCallables callables
Definition: optix_types.h:2176
OptixProgramGroupHitgroup hitgroup
Definition: optix_types.h:2178
OptixProgramGroupSingleModule exception
Definition: optix_types.h:2174
OptixProgramGroupKind kind
The kind of program group.
Definition: optix_types.h:2162
OptixProgramGroupSingleModule raygen
Definition: optix_types.h:2170
unsigned int flags
See OptixProgramGroupFlags.
Definition: optix_types.h:2165
OptixProgramGroupSingleModule miss
Definition: optix_types.h:2172
Program group representing the hitgroup.
Definition: optix_types.h:2126
const char * entryFunctionNameIS
Entry function name of the intersection (IS) program.
Definition: optix_types.h:2138
OptixModule moduleCH
Module holding the closest hit (CH) program.
Definition: optix_types.h:2128
OptixModule moduleIS
Module holding the intersection (Is) program.
Definition: optix_types.h:2136
OptixModule moduleAH
Module holding the any hit (AH) program.
Definition: optix_types.h:2132
const char * entryFunctionNameAH
Entry function name of the any hit (AH) program.
Definition: optix_types.h:2134
const char * entryFunctionNameCH
Entry function name of the closest hit (CH) program.
Definition: optix_types.h:2130
Program group options.
Definition: optix_types.h:2186
const OptixPayloadType * payloadType
Specifies the payload type of this program group. All programs in the group must support the payload ...
Definition: optix_types.h:2199
Program group representing a single module.
Definition: optix_types.h:2113
OptixModule module
Module holding single program.
Definition: optix_types.h:2115
const char * entryFunctionName
Entry function name of the single program.
Definition: optix_types.h:2117
Relocation inputs.
Definition: optix_types.h:1061
OptixRelocateInputTriangleArray triangleArray
Triangle inputs.
Definition: optix_types.h:1071
OptixBuildInputType type
The type of the build input to relocate.
Definition: optix_types.h:1063
OptixRelocateInputInstanceArray instanceArray
Instance and instance pointer inputs.
Definition: optix_types.h:1068
Instance and instance pointer inputs.
Definition: optix_types.h:998
CUdeviceptr traversableHandles
These are the traversable handles of the instances (See OptixInstance::traversableHandle) These can b...
Definition: optix_types.h:1008
unsigned int numInstances
Number of elements in OptixRelocateInputInstanceArray::traversableHandles. Must match OptixBuildInput...
Definition: optix_types.h:1001
Definition: optix_types.h:470
CUdeviceptr opacityMicromapArray
Device pointer to a relocated opacity micromap array used by the source build input array....
Definition: optix_types.h:474
Triangle inputs.
Definition: optix_types.h:715
unsigned int numSbtRecords
Number of sbt records available to the sbt index offset override. Must match OptixBuildInputTriangleA...
Definition: optix_types.h:718
OptixRelocateInputOpacityMicromap opacityMicromap
Opacity micromap inputs.
Definition: optix_types.h:721
Used to store information related to relocation of optix data structures.
Definition: optix_types.h:1403
unsigned long long info[4]
Opaque data, used internally, should not be modified.
Definition: optix_types.h:1405
Represents an SRT transformation.
Definition: optix_types.h:1500
float qz
Definition: optix_types.h:1503
float b
Definition: optix_types.h:1503
float tz
Definition: optix_types.h:1503
float qx
Definition: optix_types.h:1503
float sz
Definition: optix_types.h:1503
float c
Definition: optix_types.h:1503
float sy
Definition: optix_types.h:1503
float pvz
Definition: optix_types.h:1503
float qw
Definition: optix_types.h:1503
float ty
Definition: optix_types.h:1503
float pvy
Definition: optix_types.h:1503
float pvx
Definition: optix_types.h:1503
float sx
Definition: optix_types.h:1503
float a
Definition: optix_types.h:1503
float qy
Definition: optix_types.h:1503
float tx
Definition: optix_types.h:1503
Represents an SRT motion transformation.
Definition: optix_types.h:1537
OptixMotionOptions motionOptions
The motion options for this transformation Must have at least two motion keys.
Definition: optix_types.h:1543
OptixSRTData srtData[2]
The actual SRT data describing the transformation.
Definition: optix_types.h:1549
OptixTraversableHandle child
The traversable transformed by this transformation.
Definition: optix_types.h:1539
unsigned int pad[3]
Padding to make the SRT data 16 byte aligned.
Definition: optix_types.h:1546
Describes the shader binding table (SBT)
Definition: optix_types.h:2298
unsigned int hitgroupRecordCount
Arrays of SBT records for hit groups. The base address and the stride must be a multiple of OPTIX_SBT...
Definition: optix_types.h:2320
unsigned int callablesRecordCount
Arrays of SBT records for callable programs. If the base address is not null, the stride and count mu...
Definition: optix_types.h:2329
unsigned int missRecordCount
Arrays of SBT records for miss programs. The base address and the stride must be a multiple of OPTIX_...
Definition: optix_types.h:2312
CUdeviceptr missRecordBase
Arrays of SBT records for miss programs. The base address and the stride must be a multiple of OPTIX_...
Definition: optix_types.h:2310
unsigned int missRecordStrideInBytes
Arrays of SBT records for miss programs. The base address and the stride must be a multiple of OPTIX_...
Definition: optix_types.h:2311
unsigned int hitgroupRecordStrideInBytes
Arrays of SBT records for hit groups. The base address and the stride must be a multiple of OPTIX_SBT...
Definition: optix_types.h:2319
CUdeviceptr exceptionRecord
Device address of the SBT record of the exception program. The address must be a multiple of OPTIX_SB...
Definition: optix_types.h:2305
CUdeviceptr callablesRecordBase
Arrays of SBT records for callable programs. If the base address is not null, the stride and count mu...
Definition: optix_types.h:2327
unsigned int callablesRecordStrideInBytes
Arrays of SBT records for callable programs. If the base address is not null, the stride and count mu...
Definition: optix_types.h:2328
CUdeviceptr raygenRecord
Device address of the SBT record of the ray gen program to start launch at. The address must be a mul...
Definition: optix_types.h:2301
CUdeviceptr hitgroupRecordBase
Arrays of SBT records for hit groups. The base address and the stride must be a multiple of OPTIX_SBT...
Definition: optix_types.h:2318
Describes the stack size requirements of a program group.
Definition: optix_types.h:2338
unsigned int cssRG
Continuation stack size of RG programs in bytes.
Definition: optix_types.h:2340
unsigned int cssAH
Continuation stack size of AH programs in bytes.
Definition: optix_types.h:2346
unsigned int cssCH
Continuation stack size of CH programs in bytes.
Definition: optix_types.h:2344
unsigned int cssCC
Continuation stack size of CC programs in bytes.
Definition: optix_types.h:2350
unsigned int cssIS
Continuation stack size of IS programs in bytes.
Definition: optix_types.h:2348
unsigned int dssDC
Direct stack size of DC programs in bytes.
Definition: optix_types.h:2352
unsigned int cssMS
Continuation stack size of MS programs in bytes.
Definition: optix_types.h:2342
Static transform.
Definition: optix_types.h:1414
OptixTraversableHandle child
The traversable transformed by this transformation.
Definition: optix_types.h:1416
unsigned int pad[2]
Padding to make the transformations 16 byte aligned.
Definition: optix_types.h:1419
float invTransform[12]
Affine world-to-object transformation as 3x4 matrix in row-major layout Must be the inverse of the tr...
Definition: optix_types.h:1426
float transform[12]
Affine object-to-world transformation as 3x4 matrix in row-major layout.
Definition: optix_types.h:1422