Add raytracing pipeline abstraction to RHI (DXR only; Vulkan backend is really getting left behind even more :sob:)
Recreate BLASes if needed. (ex: a new static mesh is added to the scene)
Update instance transforms of BLASes every frame for animated meshes. (keep BLAS geometries and only recreate TLAS)
Implement basic RTR. For each screen pixel which belongs to some surface, shoot a ray from the surface toward its normal. If another surface hits, reconstruct its material data from closest hit shader using global vertex/index buffers, bindless material SRVs/CBVs, and gpuScene representation. Shading calculation is simply one-bounce perfect specular reflection without considering NDF but I'm just practicing DXR here. Advanced shading can wait.
Getting DXR operates is OK-ish, now I have to do huge refactoring.
[x] Manage bindless materials from GPUScene, not BasePass.
[x] Manage global descriptor heaps in another manager? I'm abusing TextureManager for all descriptor allocations.
Diff is getting way too big. Stop here and do remaining works in master.
Overview
Getting DXR operates is OK-ish, now I have to do huge refactoring.
TextureManager
for all descriptor allocations.Diff is getting way too big. Stop here and do remaining works in master.
TODO