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

Method BVH8InstanceArray

kernels/bvh/bvh8_factory.cpp:1086–1106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1084 }
1085
1086 Accel* BVH8Factory::BVH8InstanceArray(Scene* scene, BuildVariant bvariant)
1087 {
1088 BVH8* accel = new BVH8(InstanceArrayPrimitive::type,scene);
1089 Accel::Intersectors intersectors = BVH8InstanceArrayIntersectors(accel);
1090 auto gtype = Geometry::MTY_INSTANCE_ARRAY;
1091 // Builder* builder = BVH8InstanceSceneBuilderSAH(accel,scene,gtype);
1092
1093 Builder* builder = nullptr;
1094 if (scene->device->object_builder == "default") {
1095 switch (bvariant) {
1096 case BuildVariant::STATIC : builder = BVH8InstanceArraySceneBuilderSAH(accel,scene,gtype); break;
1097 case BuildVariant::DYNAMIC : builder = BVH8BuilderTwoLevelInstanceArraySAH(accel,scene,gtype,false); break;
1098 case BuildVariant::HIGH_QUALITY: assert(false); break;
1099 }
1100 }
1101 else if (scene->device->object_builder == "sah") builder = BVH8InstanceArraySceneBuilderSAH(accel,scene,gtype);
1102 else if (scene->device->object_builder == "dynamic") builder = BVH8BuilderTwoLevelInstanceArraySAH(accel,scene,gtype,false);
1103 else throw_RTCError(RTC_ERROR_INVALID_ARGUMENT,"unknown builder "+scene->device->object_builder+" for BVH8<Object>");
1104
1105 return new AccelInstance(accel,builder,intersectors);
1106 }
1107
1108 Accel* BVH8Factory::BVH8InstanceMB(Scene* scene, bool isExpensive)
1109 {

Callers 1

Tested by

no test coverage detected