NVIDIA OptiX 8.1 nvidia_logo_transpbg.gif Up
optix_device.h
Go to the documentation of this file.
1/*
2* SPDX-FileCopyrightText: Copyright (c) 2010 - 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3* SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4*
5* NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6* property and proprietary rights in and to this material, related
7* documentation and any modifications thereto. Any use, reproduction,
8* disclosure or distribution of this material and related documentation
9* without an express license agreement from NVIDIA CORPORATION or
10* its affiliates is strictly prohibited.
11*/
17
18#ifndef OPTIX_OPTIX_DEVICE_H
19#define OPTIX_OPTIX_DEVICE_H
20
21#if defined( __cplusplus ) && ( __cplusplus < 201103L ) && !defined( _WIN32 )
22#error Device code for OptiX requires at least C++11. Consider adding "--std c++11" to the nvcc command-line.
23#endif
24
25#include "optix_types.h"
26
29
51template <typename... Payload>
52static __forceinline__ __device__ void optixTrace( OptixTraversableHandle handle,
53 float3 rayOrigin,
54 float3 rayDirection,
55 float tmin,
56 float tmax,
57 float rayTime,
58 OptixVisibilityMask visibilityMask,
59 unsigned int rayFlags,
60 unsigned int SBToffset,
61 unsigned int SBTstride,
62 unsigned int missSBTIndex,
63 Payload&... payload );
64
84template <typename... Payload>
85static __forceinline__ __device__ void optixTraverse( OptixTraversableHandle handle,
86 float3 rayOrigin,
87 float3 rayDirection,
88 float tmin,
89 float tmax,
90 float rayTime,
91 OptixVisibilityMask visibilityMask,
92 unsigned int rayFlags,
93 unsigned int SBToffset,
94 unsigned int SBTstride,
95 unsigned int missSBTIndex,
96 Payload&... payload );
97
115template <typename... Payload>
116static __forceinline__ __device__ void optixTrace( OptixPayloadTypeID type,
118 float3 rayOrigin,
119 float3 rayDirection,
120 float tmin,
121 float tmax,
122 float rayTime,
123 OptixVisibilityMask visibilityMask,
124 unsigned int rayFlags,
125 unsigned int SBToffset,
126 unsigned int SBTstride,
127 unsigned int missSBTIndex,
128 Payload&... payload );
129
150template <typename... Payload>
151static __forceinline__ __device__ void optixTraverse( OptixPayloadTypeID type,
153 float3 rayOrigin,
154 float3 rayDirection,
155 float tmin,
156 float tmax,
157 float rayTime,
158 OptixVisibilityMask visibilityMask,
159 unsigned int rayFlags,
160 unsigned int SBToffset,
161 unsigned int SBTstride,
162 unsigned int missSBTIndex,
163 Payload&... payload );
164
175static __forceinline__ __device__ void optixReorder( unsigned int coherenceHint, unsigned int numCoherenceHintBitsFromLSB );
176
180static __forceinline__ __device__ void optixReorder();
181
190template <typename... Payload>
191static __forceinline__ __device__ void optixInvoke( Payload&... payload );
192
202template <typename... Payload>
203static __forceinline__ __device__ void optixInvoke( OptixPayloadTypeID type, Payload&... payload );
204
223template <typename... RegAttributes>
224static __forceinline__ __device__ void optixMakeHitObject( OptixTraversableHandle handle,
225 float3 rayOrigin,
226 float3 rayDirection,
227 float tmin,
228 float tmax,
229 float rayTime,
230 unsigned int SBToffset,
231 unsigned int SBTstride,
232 unsigned int instIdx,
233 unsigned int sbtGASIdx,
234 unsigned int primIdx,
235 unsigned int hitKind,
236 RegAttributes... regAttributes );
237
260template <typename... RegAttributes>
261static __forceinline__ __device__ void optixMakeHitObject( OptixTraversableHandle handle,
262 float3 rayOrigin,
263 float3 rayDirection,
264 float tmin,
265 float tmax,
266 float rayTime,
267 unsigned int SBToffset,
268 unsigned int SBTstride,
269 unsigned int instIdx,
270 const OptixTraversableHandle* transforms,
271 unsigned int numTransforms,
272 unsigned int sbtGASIdx,
273 unsigned int primIdx,
274 unsigned int hitKind,
275 RegAttributes... regAttributes );
276
297template <typename... RegAttributes>
298static __forceinline__ __device__ void optixMakeHitObjectWithRecord( OptixTraversableHandle handle,
299 float3 rayOrigin,
300 float3 rayDirection,
301 float tmin,
302 float tmax,
303 float rayTime,
304 unsigned int sbtRecordIndex,
305 unsigned int instIdx,
306 const OptixTraversableHandle* transforms,
307 unsigned int numTransforms,
308 unsigned int sbtGASIdx,
309 unsigned int primIdx,
310 unsigned int hitKind,
311 RegAttributes... regAttributes );
312
325static __forceinline__ __device__ void optixMakeMissHitObject( unsigned int missSBTIndex,
326 float3 rayOrigin,
327 float3 rayDirection,
328 float tmin,
329 float tmax,
330 float rayTime );
331
339static __forceinline__ __device__ void optixMakeNopHitObject();
340
344static __forceinline__ __device__ bool optixHitObjectIsHit();
345
349static __forceinline__ __device__ bool optixHitObjectIsMiss();
350
356static __forceinline__ __device__ bool optixHitObjectIsNop();
357
364static __forceinline__ __device__ unsigned int optixHitObjectGetSbtRecordIndex();
365
371static __forceinline__ __device__ void optixSetPayload_0( unsigned int p );
372static __forceinline__ __device__ void optixSetPayload_1( unsigned int p );
373static __forceinline__ __device__ void optixSetPayload_2( unsigned int p );
374static __forceinline__ __device__ void optixSetPayload_3( unsigned int p );
375static __forceinline__ __device__ void optixSetPayload_4( unsigned int p );
376static __forceinline__ __device__ void optixSetPayload_5( unsigned int p );
377static __forceinline__ __device__ void optixSetPayload_6( unsigned int p );
378static __forceinline__ __device__ void optixSetPayload_7( unsigned int p );
379static __forceinline__ __device__ void optixSetPayload_8( unsigned int p );
380static __forceinline__ __device__ void optixSetPayload_9( unsigned int p );
381static __forceinline__ __device__ void optixSetPayload_10( unsigned int p );
382static __forceinline__ __device__ void optixSetPayload_11( unsigned int p );
383static __forceinline__ __device__ void optixSetPayload_12( unsigned int p );
384static __forceinline__ __device__ void optixSetPayload_13( unsigned int p );
385static __forceinline__ __device__ void optixSetPayload_14( unsigned int p );
386static __forceinline__ __device__ void optixSetPayload_15( unsigned int p );
387static __forceinline__ __device__ void optixSetPayload_16( unsigned int p );
388static __forceinline__ __device__ void optixSetPayload_17( unsigned int p );
389static __forceinline__ __device__ void optixSetPayload_18( unsigned int p );
390static __forceinline__ __device__ void optixSetPayload_19( unsigned int p );
391static __forceinline__ __device__ void optixSetPayload_20( unsigned int p );
392static __forceinline__ __device__ void optixSetPayload_21( unsigned int p );
393static __forceinline__ __device__ void optixSetPayload_22( unsigned int p );
394static __forceinline__ __device__ void optixSetPayload_23( unsigned int p );
395static __forceinline__ __device__ void optixSetPayload_24( unsigned int p );
396static __forceinline__ __device__ void optixSetPayload_25( unsigned int p );
397static __forceinline__ __device__ void optixSetPayload_26( unsigned int p );
398static __forceinline__ __device__ void optixSetPayload_27( unsigned int p );
399static __forceinline__ __device__ void optixSetPayload_28( unsigned int p );
400static __forceinline__ __device__ void optixSetPayload_29( unsigned int p );
401static __forceinline__ __device__ void optixSetPayload_30( unsigned int p );
402static __forceinline__ __device__ void optixSetPayload_31( unsigned int p );
403
409static __forceinline__ __device__ unsigned int optixGetPayload_0();
410static __forceinline__ __device__ unsigned int optixGetPayload_1();
411static __forceinline__ __device__ unsigned int optixGetPayload_2();
412static __forceinline__ __device__ unsigned int optixGetPayload_3();
413static __forceinline__ __device__ unsigned int optixGetPayload_4();
414static __forceinline__ __device__ unsigned int optixGetPayload_5();
415static __forceinline__ __device__ unsigned int optixGetPayload_6();
416static __forceinline__ __device__ unsigned int optixGetPayload_7();
417static __forceinline__ __device__ unsigned int optixGetPayload_8();
418static __forceinline__ __device__ unsigned int optixGetPayload_9();
419static __forceinline__ __device__ unsigned int optixGetPayload_10();
420static __forceinline__ __device__ unsigned int optixGetPayload_11();
421static __forceinline__ __device__ unsigned int optixGetPayload_12();
422static __forceinline__ __device__ unsigned int optixGetPayload_13();
423static __forceinline__ __device__ unsigned int optixGetPayload_14();
424static __forceinline__ __device__ unsigned int optixGetPayload_15();
425static __forceinline__ __device__ unsigned int optixGetPayload_16();
426static __forceinline__ __device__ unsigned int optixGetPayload_17();
427static __forceinline__ __device__ unsigned int optixGetPayload_18();
428static __forceinline__ __device__ unsigned int optixGetPayload_19();
429static __forceinline__ __device__ unsigned int optixGetPayload_20();
430static __forceinline__ __device__ unsigned int optixGetPayload_21();
431static __forceinline__ __device__ unsigned int optixGetPayload_22();
432static __forceinline__ __device__ unsigned int optixGetPayload_23();
433static __forceinline__ __device__ unsigned int optixGetPayload_24();
434static __forceinline__ __device__ unsigned int optixGetPayload_25();
435static __forceinline__ __device__ unsigned int optixGetPayload_26();
436static __forceinline__ __device__ unsigned int optixGetPayload_27();
437static __forceinline__ __device__ unsigned int optixGetPayload_28();
438static __forceinline__ __device__ unsigned int optixGetPayload_29();
439static __forceinline__ __device__ unsigned int optixGetPayload_30();
440static __forceinline__ __device__ unsigned int optixGetPayload_31();
441
450static __forceinline__ __device__ void optixSetPayloadTypes( unsigned int typeMask );
451
455static __forceinline__ __device__ unsigned int optixUndefinedValue();
456
463static __forceinline__ __device__ float3 optixGetWorldRayOrigin();
464
471static __forceinline__ __device__ float3 optixHitObjectGetWorldRayOrigin();
472
479static __forceinline__ __device__ float3 optixGetWorldRayDirection();
480
487static __forceinline__ __device__ float3 optixHitObjectGetWorldRayDirection();
488
492static __forceinline__ __device__ float3 optixGetObjectRayOrigin();
493
497static __forceinline__ __device__ float3 optixGetObjectRayDirection();
498
502static __forceinline__ __device__ float optixGetRayTmin();
503
510static __forceinline__ __device__ float optixHitObjectGetRayTmin();
511
520static __forceinline__ __device__ float optixGetRayTmax();
521
530static __forceinline__ __device__ float optixHitObjectGetRayTmax();
531
537static __forceinline__ __device__ float optixGetRayTime();
538
545static __forceinline__ __device__ float optixHitObjectGetRayTime();
546
550static __forceinline__ __device__ unsigned int optixGetRayFlags();
551
555static __forceinline__ __device__ unsigned int optixGetRayVisibilityMask();
556
563static __forceinline__ __device__ OptixTraversableHandle optixGetInstanceTraversableFromIAS( OptixTraversableHandle ias, unsigned int instIdx );
564
575static __forceinline__ __device__ void optixGetTriangleVertexData( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float3 data[3]);
576
581static __forceinline__ __device__ void optixGetMicroTriangleVertexData( float3 data[3] );
582
587static __forceinline__ __device__ void optixGetMicroTriangleBarycentricsData( float2 data[3] );
588
601static __forceinline__ __device__ void optixGetLinearCurveVertexData( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[2] );
602
615static __forceinline__ __device__ void optixGetQuadraticBSplineVertexData( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[3] );
616
629static __forceinline__ __device__ void optixGetCubicBSplineVertexData( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[4] );
630
643static __forceinline__ __device__ void optixGetCatmullRomVertexData( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[4] );
644
657static __forceinline__ __device__ void optixGetCubicBezierVertexData( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[4] );
658
671static __forceinline__ __device__ void optixGetRibbonVertexData( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[3] );
672
676static __forceinline__ __device__ float3 optixGetRibbonNormal( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float2 ribbonParameters );
677
690static __forceinline__ __device__ void optixGetSphereData( OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[1] );
691
696static __forceinline__ __device__ OptixTraversableHandle optixGetGASTraversableHandle();
697
701static __forceinline__ __device__ float optixGetGASMotionTimeBegin( OptixTraversableHandle gas );
702
706static __forceinline__ __device__ float optixGetGASMotionTimeEnd( OptixTraversableHandle gas );
707
711static __forceinline__ __device__ unsigned int optixGetGASMotionStepCount( OptixTraversableHandle gas );
712
719static __forceinline__ __device__ void optixGetWorldToObjectTransformMatrix( float m[12] );
720
727static __forceinline__ __device__ void optixGetObjectToWorldTransformMatrix( float m[12] );
728
735static __forceinline__ __device__ float3 optixTransformPointFromWorldToObjectSpace( float3 point );
736
743static __forceinline__ __device__ float3 optixTransformVectorFromWorldToObjectSpace( float3 vec );
744
751static __forceinline__ __device__ float3 optixTransformNormalFromWorldToObjectSpace( float3 normal );
752
759static __forceinline__ __device__ float3 optixTransformPointFromObjectToWorldSpace( float3 point );
760
767static __forceinline__ __device__ float3 optixTransformVectorFromObjectToWorldSpace( float3 vec );
768
775static __forceinline__ __device__ float3 optixTransformNormalFromObjectToWorldSpace( float3 normal );
776
780static __forceinline__ __device__ unsigned int optixGetTransformListSize();
781
790static __forceinline__ __device__ unsigned int optixHitObjectGetTransformListSize();
791
795static __forceinline__ __device__ OptixTraversableHandle optixGetTransformListHandle( unsigned int index );
796
805static __forceinline__ __device__ OptixTraversableHandle optixHitObjectGetTransformListHandle( unsigned int index );
806
811
817static __forceinline__ __device__ const OptixStaticTransform* optixGetStaticTransformFromHandle( OptixTraversableHandle handle );
818
825
832
838static __forceinline__ __device__ unsigned int optixGetInstanceIdFromHandle( OptixTraversableHandle handle );
839
846
852static __forceinline__ __device__ const float4* optixGetInstanceTransformFromHandle( OptixTraversableHandle handle );
853
859static __forceinline__ __device__ const float4* optixGetInstanceInverseTransformFromHandle( OptixTraversableHandle handle );
860
866static __device__ __forceinline__ CUdeviceptr optixGetGASPointerFromHandle( OptixTraversableHandle handle );
890static __forceinline__ __device__ bool optixReportIntersection( float hitT, unsigned int hitKind );
891
897static __forceinline__ __device__ bool optixReportIntersection( float hitT, unsigned int hitKind, unsigned int a0 );
898
904static __forceinline__ __device__ bool optixReportIntersection( float hitT, unsigned int hitKind, unsigned int a0, unsigned int a1 );
905
911static __forceinline__ __device__ bool optixReportIntersection( float hitT, unsigned int hitKind, unsigned int a0, unsigned int a1, unsigned int a2 );
912
918static __forceinline__ __device__ bool optixReportIntersection( float hitT,
919 unsigned int hitKind,
920 unsigned int a0,
921 unsigned int a1,
922 unsigned int a2,
923 unsigned int a3 );
924
930static __forceinline__ __device__ bool optixReportIntersection( float hitT,
931 unsigned int hitKind,
932 unsigned int a0,
933 unsigned int a1,
934 unsigned int a2,
935 unsigned int a3,
936 unsigned int a4 );
937
943static __forceinline__ __device__ bool optixReportIntersection( float hitT,
944 unsigned int hitKind,
945 unsigned int a0,
946 unsigned int a1,
947 unsigned int a2,
948 unsigned int a3,
949 unsigned int a4,
950 unsigned int a5 );
951
957static __forceinline__ __device__ bool optixReportIntersection( float hitT,
958 unsigned int hitKind,
959 unsigned int a0,
960 unsigned int a1,
961 unsigned int a2,
962 unsigned int a3,
963 unsigned int a4,
964 unsigned int a5,
965 unsigned int a6 );
966
972static __forceinline__ __device__ bool optixReportIntersection( float hitT,
973 unsigned int hitKind,
974 unsigned int a0,
975 unsigned int a1,
976 unsigned int a2,
977 unsigned int a3,
978 unsigned int a4,
979 unsigned int a5,
980 unsigned int a6,
981 unsigned int a7 );
982
987static __forceinline__ __device__ unsigned int optixGetAttribute_0();
988static __forceinline__ __device__ unsigned int optixGetAttribute_1();
989static __forceinline__ __device__ unsigned int optixGetAttribute_2();
990static __forceinline__ __device__ unsigned int optixGetAttribute_3();
991static __forceinline__ __device__ unsigned int optixGetAttribute_4();
992static __forceinline__ __device__ unsigned int optixGetAttribute_5();
993static __forceinline__ __device__ unsigned int optixGetAttribute_6();
994static __forceinline__ __device__ unsigned int optixGetAttribute_7();
995
996
1004static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_0();
1005static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_1();
1006static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_2();
1007static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_3();
1008static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_4();
1009static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_5();
1010static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_6();
1011static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_7();
1012
1016static __forceinline__ __device__ void optixTerminateRay();
1017
1022static __forceinline__ __device__ void optixIgnoreIntersection();
1023
1024
1040static __forceinline__ __device__ unsigned int optixGetPrimitiveIndex();
1041
1049static __forceinline__ __device__ unsigned int optixHitObjectGetPrimitiveIndex();
1050
1058static __forceinline__ __device__ unsigned int optixGetSbtGASIndex();
1059
1068static __forceinline__ __device__ unsigned int optixHitObjectGetSbtGASIndex();
1069
1070
1083static __forceinline__ __device__ unsigned int optixGetInstanceId();
1084
1093static __forceinline__ __device__ unsigned int optixHitObjectGetInstanceId();
1094
1104static __forceinline__ __device__ unsigned int optixGetInstanceIndex();
1105
1114static __forceinline__ __device__ unsigned int optixHitObjectGetInstanceIndex();
1115
1123static __forceinline__ __device__ unsigned int optixGetHitKind();
1124
1132static __forceinline__ __device__ unsigned int optixHitObjectGetHitKind();
1133
1137static __forceinline__ __device__ OptixPrimitiveType optixGetPrimitiveType( unsigned int hitKind );
1138
1142static __forceinline__ __device__ bool optixIsFrontFaceHit( unsigned int hitKind );
1143
1147static __forceinline__ __device__ bool optixIsBackFaceHit( unsigned int hitKind );
1148
1152static __forceinline__ __device__ OptixPrimitiveType optixGetPrimitiveType();
1153
1157static __forceinline__ __device__ bool optixIsFrontFaceHit();
1158
1162static __forceinline__ __device__ bool optixIsBackFaceHit();
1163
1167static __forceinline__ __device__ bool optixIsTriangleHit();
1168
1172static __forceinline__ __device__ bool optixIsTriangleFrontFaceHit();
1173
1177static __forceinline__ __device__ bool optixIsTriangleBackFaceHit();
1178
1182static __forceinline__ __device__ bool optixIsDisplacedMicromeshTriangleHit();
1183
1187static __forceinline__ __device__ bool optixIsDisplacedMicromeshTriangleFrontFaceHit();
1188
1192static __forceinline__ __device__ bool optixIsDisplacedMicromeshTriangleBackFaceHit();
1193
1200static __forceinline__ __device__ float2 optixGetTriangleBarycentrics();
1201
1206static __forceinline__ __device__ float optixGetCurveParameter();
1207
1213static __forceinline__ __device__ float2 optixGetRibbonParameters();
1214
1221static __forceinline__ __device__ uint3 optixGetLaunchIndex();
1222
1227static __forceinline__ __device__ uint3 optixGetLaunchDimensions();
1228
1236static __forceinline__ __device__ CUdeviceptr optixGetSbtDataPointer();
1237
1244static __forceinline__ __device__ CUdeviceptr optixHitObjectGetSbtDataPointer();
1245
1260static __forceinline__ __device__ void optixThrowException( int exceptionCode );
1261
1267static __forceinline__ __device__ void optixThrowException( int exceptionCode, unsigned int exceptionDetail0 );
1268
1274static __forceinline__ __device__ void optixThrowException( int exceptionCode,
1275 unsigned int exceptionDetail0,
1276 unsigned int exceptionDetail1 );
1277
1283static __forceinline__ __device__ void optixThrowException( int exceptionCode,
1284 unsigned int exceptionDetail0,
1285 unsigned int exceptionDetail1,
1286 unsigned int exceptionDetail2 );
1287
1293static __forceinline__ __device__ void optixThrowException( int exceptionCode,
1294 unsigned int exceptionDetail0,
1295 unsigned int exceptionDetail1,
1296 unsigned int exceptionDetail2,
1297 unsigned int exceptionDetail3 );
1298
1304static __forceinline__ __device__ void optixThrowException( int exceptionCode,
1305 unsigned int exceptionDetail0,
1306 unsigned int exceptionDetail1,
1307 unsigned int exceptionDetail2,
1308 unsigned int exceptionDetail3,
1309 unsigned int exceptionDetail4 );
1310
1316static __forceinline__ __device__ void optixThrowException( int exceptionCode,
1317 unsigned int exceptionDetail0,
1318 unsigned int exceptionDetail1,
1319 unsigned int exceptionDetail2,
1320 unsigned int exceptionDetail3,
1321 unsigned int exceptionDetail4,
1322 unsigned int exceptionDetail5 );
1323
1330static __forceinline__ __device__ void optixThrowException( int exceptionCode,
1331 unsigned int exceptionDetail0,
1332 unsigned int exceptionDetail1,
1333 unsigned int exceptionDetail2,
1334 unsigned int exceptionDetail3,
1335 unsigned int exceptionDetail4,
1336 unsigned int exceptionDetail5,
1337 unsigned int exceptionDetail6 );
1338
1344static __forceinline__ __device__ void optixThrowException( int exceptionCode,
1345 unsigned int exceptionDetail0,
1346 unsigned int exceptionDetail1,
1347 unsigned int exceptionDetail2,
1348 unsigned int exceptionDetail3,
1349 unsigned int exceptionDetail4,
1350 unsigned int exceptionDetail5,
1351 unsigned int exceptionDetail6,
1352 unsigned int exceptionDetail7 );
1353
1357static __forceinline__ __device__ int optixGetExceptionCode();
1358
1365static __forceinline__ __device__ unsigned int optixGetExceptionDetail_0();
1366
1372static __forceinline__ __device__ unsigned int optixGetExceptionDetail_1();
1373
1379static __forceinline__ __device__ unsigned int optixGetExceptionDetail_2();
1380
1386static __forceinline__ __device__ unsigned int optixGetExceptionDetail_3();
1387
1393static __forceinline__ __device__ unsigned int optixGetExceptionDetail_4();
1394
1400static __forceinline__ __device__ unsigned int optixGetExceptionDetail_5();
1401
1407static __forceinline__ __device__ unsigned int optixGetExceptionDetail_6();
1408
1414static __forceinline__ __device__ unsigned int optixGetExceptionDetail_7();
1415
1416
1427static __forceinline__ __device__ char* optixGetExceptionLineInfo();
1428
1452template <typename ReturnT, typename... ArgTypes>
1453static __forceinline__ __device__ ReturnT optixDirectCall( unsigned int sbtIndex, ArgTypes... args );
1454
1455
1478template <typename ReturnT, typename... ArgTypes>
1479static __forceinline__ __device__ ReturnT optixContinuationCall( unsigned int sbtIndex, ArgTypes... args );
1480
1481
1546static __forceinline__ __device__ uint4 optixTexFootprint2D( unsigned long long tex, unsigned int texInfo, float x, float y, unsigned int* singleMipLevel );
1547
1559static __forceinline__ __device__ uint4
1560optixTexFootprint2DLod( unsigned long long tex, unsigned int texInfo, float x, float y, float level, bool coarse, unsigned int* singleMipLevel );
1561
1576static __forceinline__ __device__ uint4 optixTexFootprint2DGrad( unsigned long long tex,
1577 unsigned int texInfo,
1578 float x,
1579 float y,
1580 float dPdx_x,
1581 float dPdx_y,
1582 float dPdy_x,
1583 float dPdy_y,
1584 bool coarse,
1585 unsigned int* singleMipLevel );
1586 // end group optix_device_api
1588
1589#define __OPTIX_INCLUDE_INTERNAL_HEADERS__
1590
1592
1593#endif // OPTIX_OPTIX_DEVICE_H
static __forceinline__ __device__ unsigned int optixGetExceptionDetail_7()
Returns the 32-bit exception detail at slot 7.
static __forceinline__ __device__ ReturnT optixContinuationCall(unsigned int sbtIndex, ArgTypes... args)
Creates a call to the continuation callable program at the specified SBT entry.
static __forceinline__ __device__ void optixThrowException(int exceptionCode)
Throws a user exception with the given exception code (overload without exception details).
static __forceinline__ __device__ unsigned int optixGetPayload_2()
static __forceinline__ __device__ void optixSetPayload_16(unsigned int p)
static __forceinline__ __device__ float3 optixTransformNormalFromWorldToObjectSpace(float3 normal)
Transforms the normal using world-to-object transformation matrix resulting from the current active t...
static __forceinline__ __device__ unsigned int optixGetPayload_25()
static __forceinline__ __device__ unsigned int optixGetPayload_1()
static __forceinline__ __device__ unsigned int optixGetPayload_15()
static __forceinline__ __device__ OptixTraversableHandle optixGetGASTraversableHandle()
Returns the traversable handle for the Geometry Acceleration Structure (GAS) containing the current h...
static __forceinline__ __device__ unsigned int optixHitObjectGetSbtGASIndex()
Return the SBT GAS index of the closest intersected primitive associated with the current outgoing hi...
static __forceinline__ __device__ uint3 optixGetLaunchDimensions()
Available in any program, it returns the dimensions of the current launch specified by optixLaunch on...
static __forceinline__ __device__ void optixSetPayload_11(unsigned int p)
static __forceinline__ __device__ void optixSetPayload_8(unsigned int p)
static __forceinline__ __device__ void optixMakeHitObject(OptixTraversableHandle handle, float3 rayOrigin, float3 rayDirection, float tmin, float tmax, float rayTime, unsigned int SBToffset, unsigned int SBTstride, unsigned int instIdx, unsigned int sbtGASIdx, unsigned int primIdx, unsigned int hitKind, RegAttributes... regAttributes)
Constructs an outgoing hit object from the hit information provided. This hit object will now become ...
static __forceinline__ __device__ void optixSetPayload_5(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetPayload_9()
static __forceinline__ __device__ void optixSetPayload_29(unsigned int p)
static __forceinline__ __device__ void optixSetPayload_14(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetExceptionDetail_2()
Returns the 32-bit exception detail at slot 2.
static __forceinline__ __device__ const OptixStaticTransform * optixGetStaticTransformFromHandle(OptixTraversableHandle handle)
Returns a pointer to a OptixStaticTransform from its traversable handle.
static __forceinline__ __device__ void optixSetPayload_19(unsigned int p)
static __forceinline__ __device__ float3 optixGetWorldRayDirection()
Returns the rayDirection passed into optixTrace.
static __forceinline__ __device__ float3 optixGetObjectRayOrigin()
Returns the current object space ray origin based on the current transform stack.
static __forceinline__ __device__ bool optixIsFrontFaceHit(unsigned int hitKind)
Function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ unsigned int optixGetAttribute_4()
static __forceinline__ __device__ unsigned int optixGetPayload_4()
static __forceinline__ __device__ void optixSetPayload_10(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetPayload_18()
static __forceinline__ __device__ bool optixHitObjectIsHit()
Returns true if the current outgoing hit object contains a hit.
static __forceinline__ __device__ unsigned int optixGetAttribute_6()
static __forceinline__ __device__ void optixMakeNopHitObject()
Constructs an outgoing hit object that when invoked does nothing (neither the miss nor the closest hi...
static __forceinline__ __device__ unsigned int optixGetAttribute_3()
static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_4()
static __forceinline__ __device__ void optixSetPayload_20(unsigned int p)
static __forceinline__ __device__ void optixSetPayload_4(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetPayload_5()
static __forceinline__ __device__ unsigned int optixGetPayload_22()
static __forceinline__ __device__ bool optixIsTriangleHit()
Convenience function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ void optixGetCubicBSplineVertexData(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[4])
Return the object space curve control vertex data of a cubic BSpline curve in a Geometry Acceleration...
static __forceinline__ __device__ unsigned int optixGetPayload_27()
static __forceinline__ __device__ float optixGetGASMotionTimeEnd(OptixTraversableHandle gas)
Returns the motion end time of a GAS (see OptixMotionOptions)
static __forceinline__ __device__ uint4 optixTexFootprint2DGrad(unsigned long long tex, unsigned int texInfo, float x, float y, float dPdx_x, float dPdx_y, float dPdy_x, float dPdy_y, bool coarse, unsigned int *singleMipLevel)
optixTexFootprint2DGrad calculates the footprint of a corresponding 2D texture fetch (tex2DGrad)
static __forceinline__ __device__ void optixSetPayload_6(unsigned int p)
static __forceinline__ __device__ void optixMakeHitObjectWithRecord(OptixTraversableHandle handle, float3 rayOrigin, float3 rayDirection, float tmin, float tmax, float rayTime, unsigned int sbtRecordIndex, unsigned int instIdx, const OptixTraversableHandle *transforms, unsigned int numTransforms, unsigned int sbtGASIdx, unsigned int primIdx, unsigned int hitKind, RegAttributes... regAttributes)
Constructs an outgoing hit object from the hit information provided. The SBT record index is explicit...
static __forceinline__ __device__ float3 optixHitObjectGetWorldRayDirection()
Returns the rayDirection passed into optixTraverse, optixMakeHitObject, optixMakeHitObjectWithRecord,...
static __forceinline__ __device__ unsigned int optixGetAttribute_1()
static __forceinline__ __device__ bool optixIsTriangleBackFaceHit()
Convenience function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ unsigned int optixGetAttribute_5()
static __forceinline__ __device__ OptixTraversableHandle optixHitObjectGetTransformListHandle(unsigned int index)
Returns the traversable handle for a transform in the current transform list associated with the outg...
static __forceinline__ __device__ void optixGetRibbonVertexData(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[3])
Return the object space curve control vertex data of a ribbon (flat quadratic BSpline) in a Geometry ...
static __forceinline__ __device__ void optixSetPayload_25(unsigned int p)
static __forceinline__ __device__ void optixInvoke(Payload &... payload)
Invokes closesthit, miss or nop based on the current outgoing hit object. After execution the current...
static __forceinline__ __device__ unsigned int optixGetRayFlags()
Returns the rayFlags passed into optixTrace.
static __forceinline__ __device__ unsigned int optixHitObjectGetInstanceId()
Returns the OptixInstance::instanceId of the instance within the top level acceleration structure ass...
static __forceinline__ __device__ unsigned int optixHitObjectGetSbtRecordIndex()
Returns the SBT record index associated with the hit or miss program for the current outgoing hit obj...
static __forceinline__ __device__ float3 optixTransformPointFromObjectToWorldSpace(float3 point)
Transforms the point using object-to-world transformation matrix resulting from the current active tr...
static __forceinline__ __device__ unsigned int optixGetPayload_26()
static __forceinline__ __device__ void optixMakeMissHitObject(unsigned int missSBTIndex, float3 rayOrigin, float3 rayDirection, float tmin, float tmax, float rayTime)
Constructs an outgoing hit object from the miss information provided. The SBT record index is explici...
static __forceinline__ __device__ void optixSetPayload_17(unsigned int p)
static __forceinline__ __device__ void optixSetPayload_7(unsigned int p)
static __forceinline__ __device__ ReturnT optixDirectCall(unsigned int sbtIndex, ArgTypes... args)
Creates a call to the direct callable program at the specified SBT entry.
static __forceinline__ __device__ unsigned int optixGetPayload_30()
static __forceinline__ __device__ void optixSetPayload_28(unsigned int p)
static __forceinline__ __device__ OptixPrimitiveType optixGetPrimitiveType(unsigned int hitKind)
Function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ float3 optixTransformVectorFromObjectToWorldSpace(float3 vec)
Transforms the vector using object-to-world transformation matrix resulting from the current active t...
static __forceinline__ __device__ unsigned int optixGetInstanceId()
Returns the OptixInstance::instanceId of the instance within the top level acceleration structure ass...
static __forceinline__ __device__ char * optixGetExceptionLineInfo()
Returns a string that includes information about the source location that caused the current exceptio...
static __forceinline__ __device__ void optixSetPayload_27(unsigned int p)
static __forceinline__ __device__ void optixSetPayload_2(unsigned int p)
static __forceinline__ __device__ void optixGetCatmullRomVertexData(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[4])
Return the object space curve control vertex data of a CatmullRom spline curve in a Geometry Accelera...
static __forceinline__ __device__ int optixGetExceptionCode()
Returns the exception code.
static __forceinline__ __device__ void optixSetPayload_12(unsigned int p)
static __forceinline__ __device__ void optixGetObjectToWorldTransformMatrix(float m[12])
Returns the object-to-world transformation matrix resulting from the current active transformation li...
static __forceinline__ __device__ unsigned int optixGetPayload_24()
static __forceinline__ __device__ unsigned int optixGetPayload_17()
static __forceinline__ __device__ float optixHitObjectGetRayTmax()
If the hit object is a hit, returns the smallest reported hitT.
static __forceinline__ __device__ const OptixMatrixMotionTransform * optixGetMatrixMotionTransformFromHandle(OptixTraversableHandle handle)
Returns a pointer to a OptixMatrixMotionTransform from its traversable handle.
static __forceinline__ __device__ void optixGetSphereData(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[1])
Return the object space sphere data, center point and radius, in a Geometry Acceleration Structure (G...
static __forceinline__ __device__ unsigned int optixGetPayload_13()
static __forceinline__ __device__ uint4 optixTexFootprint2D(unsigned long long tex, unsigned int texInfo, float x, float y, unsigned int *singleMipLevel)
optixTexFootprint2D calculates the footprint of a corresponding 2D texture fetch (non-mipmapped).
static __forceinline__ __device__ void optixSetPayload_23(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetAttribute_0()
Returns the attribute at the given slot index. There are up to 8 attributes available....
static __forceinline__ __device__ void optixSetPayloadTypes(unsigned int typeMask)
Specify the supported payload types for a program.
static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_6()
static __forceinline__ __device__ float optixHitObjectGetRayTmin()
Returns the tmin passed into optixTraverse, optixMakeHitObject, optixMakeHitObjectWithRecord,...
static __forceinline__ __device__ unsigned int optixGetPayload_10()
static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_1()
static __forceinline__ __device__ void optixGetQuadraticBSplineVertexData(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[3])
Return the object space curve control vertex data of a quadratic BSpline curve in a Geometry Accelera...
static __forceinline__ __device__ uint3 optixGetLaunchIndex()
Available in any program, it returns the current launch index within the launch dimensions specified ...
static __forceinline__ __device__ unsigned int optixGetPayload_31()
static __forceinline__ __device__ void optixSetPayload_24(unsigned int p)
static __forceinline__ __device__ void optixTerminateRay()
Record the hit, stops traversal, and proceeds to CH.
static __forceinline__ __device__ OptixTraversableHandle optixGetInstanceTraversableFromIAS(OptixTraversableHandle ias, unsigned int instIdx)
Return the traversable handle of a given instance in an Instance Acceleration Structure (IAS)
static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_0()
Return the attribute at the given slot index for the current outgoing hit object. There are up to 8 a...
static __forceinline__ __device__ unsigned int optixGetExceptionDetail_6()
Returns the 32-bit exception detail at slot 6.
static __forceinline__ __device__ unsigned int optixGetAttribute_7()
static __forceinline__ __device__ bool optixHitObjectIsNop()
Returns true if the current outgoing hit object contains neither a hit nor miss. If executed with opt...
static __forceinline__ __device__ unsigned int optixGetRayVisibilityMask()
Returns the visibilityMask passed into optixTrace.
static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_2()
static __forceinline__ __device__ void optixSetPayload_30(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetInstanceIdFromHandle(OptixTraversableHandle handle)
Returns instanceId from an OptixInstance traversable.
static __forceinline__ __device__ unsigned int optixHitObjectGetInstanceIndex()
Returns the zero-based index of the instance within its instance acceleration structure associated wi...
static __forceinline__ __device__ void optixGetLinearCurveVertexData(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[2])
Return the object space curve control vertex data of a linear curve in a Geometry Acceleration Struct...
static __forceinline__ __device__ unsigned int optixGetPayload_3()
static __forceinline__ __device__ float optixHitObjectGetRayTime()
Returns the rayTime passed into optixTraverse, optixMakeHitObject, optixMakeHitObjectWithRecord,...
static __forceinline__ __device__ bool optixReportIntersection(float hitT, unsigned int hitKind)
Reports an intersections (overload without attributes).
static __forceinline__ __device__ float optixGetGASMotionTimeBegin(OptixTraversableHandle gas)
Returns the motion begin time of a GAS (see OptixMotionOptions)
static __forceinline__ __device__ unsigned int optixGetPayload_23()
static __forceinline__ __device__ unsigned int optixGetPayload_20()
static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_3()
static __forceinline__ __device__ OptixTraversableHandle optixGetTransformListHandle(unsigned int index)
Returns the traversable handle for a transform in the current transform list.
static __forceinline__ __device__ unsigned int optixGetExceptionDetail_0()
Returns the 32-bit exception detail at slot 0.
static __forceinline__ __device__ unsigned int optixUndefinedValue()
Returns an undefined value.
static __forceinline__ __device__ float2 optixGetRibbonParameters()
Returns the ribbon parameters along directrix (length) and generator (width) of the current intersect...
static __forceinline__ __device__ unsigned int optixHitObjectGetTransformListSize()
Returns the number of transforms associated with the current outgoing hit object's transform list.
static __forceinline__ __device__ void optixIgnoreIntersection()
Discards the hit, and returns control to the calling optixReportIntersection or built-in intersection...
static __forceinline__ __device__ float optixGetRayTmax()
In IS and CH returns the current smallest reported hitT or the tmax passed into optixTrace if no hit ...
static __forceinline__ __device__ CUdeviceptr optixHitObjectGetSbtDataPointer()
Device pointer address for the SBT associated with the hit or miss program for the current outgoing h...
static __forceinline__ __device__ float3 optixTransformNormalFromObjectToWorldSpace(float3 normal)
Transforms the normal using object-to-world transformation matrix resulting from the current active t...
static __forceinline__ __device__ void optixGetCubicBezierVertexData(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float4 data[4])
Return the object space curve control vertex data of a cubic Bezier curve in a Geometry Acceleration ...
static __forceinline__ __device__ unsigned int optixGetExceptionDetail_1()
Returns the 32-bit exception detail at slot 1.
static __forceinline__ __device__ float2 optixGetTriangleBarycentrics()
Convenience function that returns the first two attributes as floats.
static __forceinline__ __device__ float3 optixHitObjectGetWorldRayOrigin()
Returns the rayOrigin passed into optixTraverse, optixMakeHitObject, optixMakeHitObjectWithRecord,...
static __forceinline__ __device__ float3 optixGetObjectRayDirection()
Returns the current object space ray direction based on the current transform stack.
static __forceinline__ __device__ unsigned int optixGetPayload_6()
static __forceinline__ __device__ void optixSetPayload_9(unsigned int p)
static __forceinline__ __device__ void optixSetPayload_26(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetGASMotionStepCount(OptixTraversableHandle gas)
Returns the number of motion steps of a GAS (see OptixMotionOptions)
static __forceinline__ __device__ unsigned int optixGetPayload_11()
static __forceinline__ __device__ void optixGetMicroTriangleVertexData(float3 data[3])
Return the object space micro triangle vertex positions of the current hit. The current hit must be a...
static __forceinline__ __device__ unsigned int optixHitObjectGetHitKind()
Returns the 8 bit hit kind associated with the current outgoing hit object.
static __forceinline__ __device__ bool optixHitObjectIsMiss()
Returns true if the current outgoing hit object contains a miss.
static __forceinline__ __device__ void optixGetWorldToObjectTransformMatrix(float m[12])
Returns the world-to-object transformation matrix resulting from the current active transformation li...
static __forceinline__ __device__ unsigned int optixGetInstanceIndex()
Returns the zero-based index of the instance within its instance acceleration structure associated wi...
static __forceinline__ __device__ bool optixIsDisplacedMicromeshTriangleFrontFaceHit()
Convenience function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ float3 optixGetWorldRayOrigin()
Returns the rayOrigin passed into optixTrace.
static __forceinline__ __device__ void optixSetPayload_22(unsigned int p)
static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_5()
static __forceinline__ __device__ void optixTrace(OptixTraversableHandle handle, float3 rayOrigin, float3 rayDirection, float tmin, float tmax, float rayTime, OptixVisibilityMask visibilityMask, unsigned int rayFlags, unsigned int SBToffset, unsigned int SBTstride, unsigned int missSBTIndex, Payload &... payload)
Initiates a ray tracing query starting with the given traversable.
static __forceinline__ __device__ uint4 optixTexFootprint2DLod(unsigned long long tex, unsigned int texInfo, float x, float y, float level, bool coarse, unsigned int *singleMipLevel)
optixTexFootprint2DLod calculates the footprint of a corresponding 2D texture fetch (tex2DLod)
static __forceinline__ __device__ void optixTraverse(OptixTraversableHandle handle, float3 rayOrigin, float3 rayDirection, float tmin, float tmax, float rayTime, OptixVisibilityMask visibilityMask, unsigned int rayFlags, unsigned int SBToffset, unsigned int SBTstride, unsigned int missSBTIndex, Payload &... payload)
Similar to optixTrace, but does not invoke closesthit or miss. Instead, it overwrites the current out...
static __forceinline__ __device__ unsigned int optixGetPrimitiveIndex()
For a given OptixBuildInputTriangleArray the number of primitives is defined as.
static __forceinline__ __device__ const float4 * optixGetInstanceTransformFromHandle(OptixTraversableHandle handle)
Returns object-to-world transform from an OptixInstance traversable.
static __forceinline__ __device__ void optixSetPayload_3(unsigned int p)
static __forceinline__ __device__ bool optixIsBackFaceHit(unsigned int hitKind)
Function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ unsigned int optixGetTransformListSize()
Returns the number of transforms on the current transform list.
static __forceinline__ __device__ void optixSetPayload_18(unsigned int p)
static __forceinline__ __device__ bool optixIsDisplacedMicromeshTriangleHit()
Convenience function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ unsigned int optixGetSbtGASIndex()
Returns the Sbt GAS index of the primitive associated with the current intersection.
static __forceinline__ __device__ unsigned int optixHitObjectGetPrimitiveIndex()
Return the primitive index associated with the current outgoing hit object.
static __forceinline__ __device__ void optixSetPayload_21(unsigned int p)
static __forceinline__ __device__ bool optixIsDisplacedMicromeshTriangleBackFaceHit()
Convenience function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ void optixSetPayload_0(unsigned int p)
Writes the 32-bit payload at the given slot index. There are up to 32 attributes available....
static __forceinline__ __device__ const OptixSRTMotionTransform * optixGetSRTMotionTransformFromHandle(OptixTraversableHandle handle)
Returns a pointer to a OptixSRTMotionTransform from its traversable handle.
static __forceinline__ __device__ unsigned int optixGetPayload_14()
static __forceinline__ __device__ CUdeviceptr optixGetSbtDataPointer()
Returns the generic memory space pointer to the data region (past the header) of the currently active...
static __forceinline__ __device__ float3 optixGetRibbonNormal(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float2 ribbonParameters)
Return ribbon normal at intersection reported by optixReportIntersection.
static __forceinline__ __device__ void optixGetMicroTriangleBarycentricsData(float2 data[3])
Returns the barycentrics of the vertices of the currently intersected micro triangle with respect to ...
static __forceinline__ __device__ void optixSetPayload_1(unsigned int p)
static __forceinline__ __device__ void optixSetPayload_13(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetPayload_21()
static __device__ __forceinline__ CUdeviceptr optixGetGASPointerFromHandle(OptixTraversableHandle handle)
Returns a pointer to the geometry acceleration structure from its traversable handle.
static __forceinline__ __device__ unsigned int optixGetPayload_8()
static __forceinline__ __device__ float optixGetCurveParameter()
Returns the curve parameter associated with the current intersection when using OptixBuildInputCurveA...
static __forceinline__ __device__ unsigned int optixGetPayload_19()
static __forceinline__ __device__ unsigned int optixGetExceptionDetail_4()
Returns the 32-bit exception detail at slot 4.
static __forceinline__ __device__ void optixReorder(unsigned int coherenceHint, unsigned int numCoherenceHintBitsFromLSB)
Reorder the current thread using the current outgoing hit object and the coherence hint bits provided...
static __forceinline__ __device__ float3 optixTransformVectorFromWorldToObjectSpace(float3 vec)
Transforms the vector using world-to-object transformation matrix resulting from the current active t...
static __forceinline__ __device__ void optixSetPayload_15(unsigned int p)
static __forceinline__ __device__ bool optixIsTriangleFrontFaceHit()
Convenience function interpreting the result of optixGetHitKind().
static __forceinline__ __device__ unsigned int optixGetPayload_0()
Returns the 32-bit payload at the given slot index. There are up to 32 attributes available....
static __forceinline__ __device__ float3 optixTransformPointFromWorldToObjectSpace(float3 point)
Transforms the point using world-to-object transformation matrix resulting from the current active tr...
static __forceinline__ __device__ unsigned int optixGetAttribute_2()
static __forceinline__ __device__ unsigned int optixGetHitKind()
Returns the 8 bit hit kind associated with the current hit.
static __forceinline__ __device__ unsigned int optixGetPayload_28()
static __forceinline__ __device__ unsigned int optixGetPayload_7()
static __forceinline__ __device__ void optixGetTriangleVertexData(OptixTraversableHandle gas, unsigned int primIdx, unsigned int sbtGASIndex, float time, float3 data[3])
Return the object space triangle vertex positions of a given triangle in a Geometry Acceleration Stru...
static __forceinline__ __device__ float optixGetRayTmin()
Returns the tmin passed into optixTrace.
static __forceinline__ __device__ float optixGetRayTime()
Returns the rayTime passed into optixTrace.
static __forceinline__ __device__ void optixSetPayload_31(unsigned int p)
static __forceinline__ __device__ unsigned int optixGetPayload_16()
static __forceinline__ __device__ OptixTransformType optixGetTransformTypeFromHandle(OptixTraversableHandle handle)
Returns the transform type of a traversable handle from a transform list.
static __forceinline__ __device__ const float4 * optixGetInstanceInverseTransformFromHandle(OptixTraversableHandle handle)
Returns world-to-object transform from an OptixInstance traversable.
static __forceinline__ __device__ unsigned int optixGetPayload_12()
static __forceinline__ __device__ unsigned int optixGetExceptionDetail_5()
Returns the 32-bit exception detail at slot 5.
static __forceinline__ __device__ unsigned int optixHitObjectGetAttribute_7()
static __forceinline__ __device__ unsigned int optixGetPayload_29()
static __forceinline__ __device__ OptixTraversableHandle optixGetInstanceChildFromHandle(OptixTraversableHandle handle)
Returns child traversable handle from an OptixInstance traversable.
static __forceinline__ __device__ unsigned int optixGetExceptionDetail_3()
Returns the 32-bit exception detail at slot 3.
OptixTransformType
Transform.
Definition: optix_types.h:1850
unsigned long long CUdeviceptr
CUDA device pointer.
Definition: optix_types.h:43
unsigned int OptixVisibilityMask
Visibility mask.
Definition: optix_types.h:71
unsigned long long OptixTraversableHandle
Traversable handle.
Definition: optix_types.h:68
OptixPrimitiveType
Builtin primitive types.
Definition: optix_types.h:721
OptixPayloadTypeID
Payload type identifiers.
Definition: optix_types.h:1977
OptiX public API.
OptiX public API header.
Represents a matrix motion transformation.
Definition: optix_types.h:1448
Represents an SRT motion transformation.
Definition: optix_types.h:1531
Static transform.
Definition: optix_types.h:1408