示例#1
0
/* 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);
}
示例#2
0
 /* 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);
 }