13# include <Metal/Metal.h>
17class BVHMetal :
public BVH {
19 API_AVAILABLE(macos(11.0))
20 id<MTLAccelerationStructure> accel_struct = nil;
22 API_AVAILABLE(macos(11.0))
23 id<MTLAccelerationStructure> null_BLAS = nil;
25 API_AVAILABLE(macos(11.0))
26 vector<
id<MTLAccelerationStructure>> blas_array;
28 API_AVAILABLE(macos(11.0))
29 vector<
id<MTLAccelerationStructure>> unique_blas_array;
33 bool motion_blur =
false;
36 bool use_pcmi =
false;
38 bool build(
Progress &progress,
id<MTLDevice> device,
id<MTLCommandQueue> queue,
bool refit);
46 bool build_BLAS(
Progress &progress,
id<MTLDevice> device,
id<MTLCommandQueue> queue,
bool refit);
47 bool build_BLAS_mesh(
Progress &progress,
49 id<MTLCommandQueue> queue,
52 bool build_BLAS_hair(
Progress &progress,
54 id<MTLCommandQueue> queue,
57 bool build_BLAS_pointcloud(
Progress &progress,
59 id<MTLCommandQueue> queue,
62 bool build_TLAS(
Progress &progress,
id<MTLDevice> device,
id<MTLCommandQueue> queue,
bool refit);
64 API_AVAILABLE(macos(11.0))
65 void set_accel_struct(
id<MTLAccelerationStructure> new_accel_struct);
void refit(btStridingMeshInterface *triangles, const btVector3 &aabbMin, const btVector3 &aabbMax)
void build(btStridingMeshInterface *triangles, bool useQuantizedAabbCompression, const btVector3 &bvhAabbMin, const btVector3 &bvhAabbMax)
#define CCL_NAMESPACE_END