/* called by the C++ code for initialization */ extern "C" void device_init (int8* cfg) { /* initialize ray tracing core */ rtcInit(cfg); /* set error handler */ rtcSetErrorFunction(error_handler); /* set start render mode */ renderPixel = renderPixelStandard; /* create random bounding boxes */ const size_t N = 2300000; isa::PrimInfo pinfo(empty); vector_t<PrimRef> prims; for (size_t i=0; i<N; i++) { const Vec3fa p = 1000.0f*Vec3fa(drand48(),drand48(),drand48()); const BBox3fa b = BBox3fa(p,p+Vec3fa(1.0f)); pinfo.add(b); const PrimRef prim = PrimRef(b,i); prims.push_back(prim); } build_sah(prims,pinfo); build_morton(prims,pinfo); }
/* called by the C++ code for initialization */ extern "C" void device_init (char* cfg) { /* create new Embree device */ g_device = rtcNewDevice(cfg); error_handler(rtcDeviceGetError(g_device)); /* set error handler */ rtcDeviceSetErrorFunction(g_device,error_handler); /* set start render mode */ renderTile = renderTileStandard; /* create random bounding boxes */ const size_t N = 2300000; isa::PrimInfo pinfo(empty); avector<PrimRef> prims; for (size_t i=0; i<N; i++) { const float x = float(drand48()); const float y = float(drand48()); const float z = float(drand48()); const Vec3fa p = 1000.0f*Vec3fa(x,y,z); const BBox3fa b = BBox3fa(p,p+Vec3fa(1.0f)); pinfo.add(b); const PrimRef prim = PrimRef(b,i); prims.push_back(prim); } build_sah(prims,pinfo); build_morton(prims,pinfo); }