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

Function instanceOccludedFunc

tutorials/user_geometry/user_geometry_device.cpp:152–204  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

150}
151
152RTC_SYCL_INDIRECTLY_CALLABLE void instanceOccludedFunc(const RTCOccludedFunctionNArguments* args)
153{
154 const int* valid = args->valid;
155 void* ptr = args->geometryUserPtr;
156 RTCRayHitN* rays = (RTCRayHitN*)args->ray;
157 assert(args->N == 1);
158 if (!valid[0])
159 return;
160
161 Ray *ray = (Ray*)rays;
162 const Instance* instance = (const Instance*)ptr;
163 const Vec3ff ray_org = ray->org;
164 const Vec3ff ray_dir = ray->dir;
165 const float ray_tnear = ray->tnear();
166 const float ray_tfar = ray->tfar;
167
168#if 0
169
170 RTCRayQueryContext* context = args->context;
171 ray->org = Vec3ff(xfmPoint (instance->world2local,ray_org));
172 ray->dir = Vec3ff(xfmVector(instance->world2local,ray_dir));
173 ray->tnear() = ray_tnear;
174 ray->tfar = ray_tfar;
175 pushInstanceId(context, args->geomID);
176 RTCOccludedArguments args;
177 rtcInitOccludedArguments(&args);
178 args.context = context;
179 rtcTraversableOccluded1(instance->object,RTCRay_(*ray),&args);
180 popInstanceId(context);
181 const float updated_tfar = ray->tfar;
182 ray->org = ray_org;
183 ray->dir = ray_dir;
184 ray->tnear() = ray_tnear;
185 ray->tfar = updated_tfar;
186
187#else
188
189 RTCRay xray;
190 const Vec3fa org = xfmPoint (instance->world2local,ray_org);
191 const Vec3fa dir = xfmVector(instance->world2local,ray_dir);
192 xray.org_x = org.x; xray.org_y = org.y; xray.org_z = org.z;
193 xray.dir_x = dir.x; xray.dir_y = dir.y; xray.dir_z = dir.z;
194 xray.tnear = ray_tnear;
195 xray.tfar = ray_tfar;
196 xray.time = 0.0f;
197 xray.mask = -1;
198 xray.id = 0;
199 xray.flags = 0;
200
201 rtcTraversableForwardOccluded1(args,instance->object,&xray,args->geomID);
202
203#endif
204}
205
206Instance* createInstance (RTCScene scene, RTCScene object, int geomID, const Vec3fa& lower, const Vec3fa& upper)
207{

Callers 1

contextOccludedFuncFunction · 0.85

Calls 9

rtcInitOccludedArgumentsFunction · 0.85
RTCRay_Function · 0.85
tnearMethod · 0.80
pushInstanceIdFunction · 0.70
popInstanceIdFunction · 0.70
xfmPointFunction · 0.50
xfmVectorFunction · 0.50
rtcTraversableOccluded1Function · 0.50

Tested by

no test coverage detected