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

Method render_block

tutorials/verify/verify.cpp:5977–6051  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5975 }
5976
5977 void render_block(size_t i, size_t dn)
5978 {
5979 RTCRayQueryContext context;
5980 rtcInitRayQueryContext(&context);
5981
5982 RTCIntersectArguments args;
5983 rtcInitIntersectArguments(&args);
5984 args.context = &context;
5985 args.flags = ((ivariant & VARIANT_COHERENT_INCOHERENT_MASK) == VARIANT_COHERENT) ? RTC_RAY_QUERY_FLAG_COHERENT : RTC_RAY_QUERY_FLAG_INCOHERENT;
5986
5987 RandomSampler sampler;
5988 RandomSampler_init(sampler, (int)i);
5989
5990 switch (imode)
5991 {
5992 case MODE_INTERSECT1:
5993 {
5994 for (size_t j=0; j<dn; j++) {
5995 RTCRayHit ray;
5996 fastMakeRay(ray,zero,sampler);
5997 switch (ivariant & VARIANT_INTERSECT_OCCLUDED_MASK) {
5998 case VARIANT_INTERSECT: rtcIntersect1(*scene,&ray,&args); break;
5999 case VARIANT_OCCLUDED : rtcOccluded1 (*scene,(RTCRay*)&ray,(RTCOccludedArguments*)&args); break;
6000 }
6001 }
6002 break;
6003 }
6004 case MODE_INTERSECT4:
6005 {
6006 for (size_t j=0; j<dn; j+=4) {
6007 RTCRayHit4 ray4;
6008 for (size_t k=0; k<4; k++) {
6009 setRay(ray4,k,fastMakeRay(zero,sampler));
6010 }
6011 __aligned(16) int valid4[4] = { -1,-1,-1,-1 };
6012 switch (ivariant & VARIANT_INTERSECT_OCCLUDED_MASK) {
6013 case VARIANT_INTERSECT: rtcIntersect4(valid4,*scene,&ray4,&args); break;
6014 case VARIANT_OCCLUDED : rtcOccluded4 (valid4,*scene,(RTCRay4*)&ray4,(RTCOccludedArguments*)&args); break;
6015 }
6016 }
6017 break;
6018 }
6019 case MODE_INTERSECT8:
6020 {
6021 for (size_t j=0; j<dn; j+=8) {
6022 RTCRayHit8 ray8;
6023 for (size_t k=0; k<8; k++) {
6024 setRay(ray8,k,fastMakeRay(zero,sampler));
6025 }
6026 __aligned(32) int valid8[8] = { -1,-1,-1,-1,-1,-1,-1,-1 };
6027 switch (ivariant & VARIANT_INTERSECT_OCCLUDED_MASK) {
6028 case VARIANT_INTERSECT: rtcIntersect8(valid8,*scene,&ray8,&args); break;
6029 case VARIANT_OCCLUDED : rtcOccluded8 (valid8,*scene,(RTCRay8*)&ray8,(RTCOccludedArguments*)&args); break;
6030 }
6031 }
6032 break;
6033 }
6034 case MODE_INTERSECT16:

Callers

nothing calls this directly

Calls 14

rtcInitRayQueryContextFunction · 0.85
RandomSampler_initFunction · 0.85
fastMakeRayFunction · 0.85
rtcIntersect1Function · 0.85
rtcOccluded1Function · 0.85
setRayFunction · 0.85
rtcIntersect4Function · 0.85
rtcOccluded4Function · 0.85
rtcIntersect8Function · 0.85
rtcOccluded8Function · 0.85
rtcIntersect16Function · 0.85

Tested by

no test coverage detected