MCPcopy Create free account
hub / github.com/RenderKit/embree / instanceIntersectFunc

Function instanceIntersectFunc

tutorials/user_geometry/user_geometry_device.cpp:98–150  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

96}
97
98RTC_SYCL_INDIRECTLY_CALLABLE void instanceIntersectFunc(const RTCIntersectFunctionNArguments* args)
99{
100 const int* valid = args->valid;
101 void* ptr = args->geometryUserPtr;
102 RTCRayHitN* rays = (RTCRayHitN*)args->rayhit;
103
104 assert(args->N == 1);
105 if (!valid[0])
106 return;
107
108 Ray *ray = (Ray*)rays;
109 const Instance* instance = (const Instance*)ptr;
110 const Vec3ff ray_org = ray->org;
111 const Vec3ff ray_dir = ray->dir;
112 const float ray_tnear = ray->tnear();
113 const float ray_tfar = ray->tfar;
114
115#if 0
116
117 RTCRayQueryContext* context = args->context;
118 ray->org = Vec3ff(xfmPoint (instance->world2local,ray_org));
119 ray->dir = Vec3ff(xfmVector(instance->world2local,ray_dir));
120 ray->tnear() = ray_tnear;
121 ray->tfar = ray_tfar;
122 pushInstanceId(context, args->geomID);
123 RTCIntersectArguments args;
124 rtcInitIntersectArguments(&args);
125 args.context = context;
126 rtcTraversableIntersect1(instance->object,RTCRayHit_(*ray),&args);
127 popInstanceId(context);
128 const float updated_tfar = ray->tfar;
129 ray->org = ray_org;
130 ray->dir = ray_dir;
131 ray->tfar = updated_tfar;
132
133#else
134
135 RTCRay xray;
136 const Vec3fa org = xfmPoint (instance->world2local,ray_org);
137 const Vec3fa dir = xfmVector(instance->world2local,ray_dir);
138 xray.org_x = org.x; xray.org_y = org.y; xray.org_z = org.z;
139 xray.dir_x = dir.x; xray.dir_y = dir.y; xray.dir_z = dir.z;
140 xray.tnear = ray_tnear;
141 xray.tfar = ray_tfar;
142 xray.time = 0.0f;
143 xray.mask = -1;
144 xray.id = 0;
145 xray.flags = 0;
146
147 rtcTraversableForwardIntersect1(args,instance->object,&xray,args->geomID);
148
149#endif
150}
151
152RTC_SYCL_INDIRECTLY_CALLABLE void instanceOccludedFunc(const RTCOccludedFunctionNArguments* args)
153{

Callers 1

contextIntersectFuncFunction · 0.70

Calls 9

RTCRayHit_Function · 0.85
tnearMethod · 0.80
pushInstanceIdFunction · 0.70
popInstanceIdFunction · 0.70
xfmPointFunction · 0.50
xfmVectorFunction · 0.50
rtcTraversableIntersect1Function · 0.50

Tested by

no test coverage detected