或者更精確地說, 怎麼把材質資料帶到Hit Group Shader?
在確認光追擊中的物件後, 總是需要辨識它所使用的材質是什麼
在D3D12, 可以利用SBT/Local Root Signature + Subobject export association來做連結
但Vulkan此時此刻還沒支援Local Root Signature (在vk應該稱做Local Descriptor)
所以必需要用一種Global-To-Local的方法來做對應
所幸, Vulkan至少還是能做SBT的, 因為那是DXR的規格之一
透過SBT+Bindless Indexing我成功讓材質系統的變化反應到光追Shader了!
並且保有彈性, 每個材質還是可以有不同的計算
實作細節:
結果雖然看起來跟前一篇差不多, 但背後重構了不少地方
早知道一開始就走Bindless實作