File indexing completed on 2026-04-09 07:49:00
0001 #pragma once
0002 #include <stdint.h>
0003 #include <vector_types.h>
0004
0005
0006
0007
0008
0009
0010 struct RaygenData
0011 {
0012 float placeholder ;
0013 };
0014
0015 struct MissData
0016 {
0017 float r, g, b;
0018 };
0019
0020
0021 struct CustomPrim
0022 {
0023 int numNode ;
0024 int nodeOffset ;
0025 int globalPrimIdx ;
0026 };
0027
0028 struct TriMesh
0029 {
0030 unsigned boundary ;
0031 uint3* indice ;
0032 float3* vertex ;
0033 float3* normal ;
0034 int globalPrimIdx ;
0035 };
0036
0037
0038 struct HitGroupData
0039 {
0040 union
0041 {
0042 CustomPrim prim ;
0043 TriMesh mesh ;
0044 };
0045 };
0046
0047
0048
0049
0050 #if defined(__CUDACC__) || defined(__CUDABE__)
0051 #else
0052 #include <optix_types.h>
0053
0054 template <typename T>
0055 struct SbtRecord
0056 {
0057 __align__( OPTIX_SBT_RECORD_ALIGNMENT ) char header[OPTIX_SBT_RECORD_HEADER_SIZE];
0058 T data;
0059 };
0060
0061 typedef SbtRecord<RaygenData> Raygen ;
0062 typedef SbtRecord<MissData> Miss ;
0063 typedef SbtRecord<HitGroupData> HitGroup ;
0064
0065 #endif
0066