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

Method BVH4InstanceArray

kernels/bvh/bvh4_factory.cpp:1255–1274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1253 }
1254
1255 Accel* BVH4Factory::BVH4InstanceArray(Scene* scene, BuildVariant bvariant)
1256 {
1257 BVH4* accel = new BVH4(InstanceArrayPrimitive::type,scene);
1258 Accel::Intersectors intersectors = BVH4InstanceArrayIntersectors(accel);
1259 auto gtype = Geometry::MTY_INSTANCE_ARRAY;
1260
1261 Builder* builder = nullptr;
1262 if (scene->device->object_builder == "default") {
1263 switch (bvariant) {
1264 case BuildVariant::STATIC : builder = BVH4InstanceArraySceneBuilderSAH(accel,scene,gtype); break;
1265 case BuildVariant::DYNAMIC : builder = BVH4BuilderTwoLevelInstanceArraySAH(accel,scene,gtype,false); break;
1266 case BuildVariant::HIGH_QUALITY: assert(false); break;
1267 }
1268 }
1269 else if (scene->device->object_builder == "sah") { builder = BVH4InstanceArraySceneBuilderSAH(accel,scene,gtype); }
1270 else if (scene->device->object_builder == "dynamic") { builder = BVH4BuilderTwoLevelInstanceArraySAH(accel,scene,gtype,false); }
1271 else throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"unknown builder "+scene->device->object_builder+" for BVH4<Object>");
1272
1273 return new AccelInstance(accel,builder,intersectors);
1274 }
1275
1276 Accel* BVH4Factory::BVH4InstanceArrayMB(Scene* scene)
1277 {

Callers 1

Tested by

no test coverage detected