기존 vulkan으로 작업하던 렌더링 엔진 구조를 그대로 가져오기에는
앞으로 작업해야할 Raytracing 구조에 안맞는 부분이 많아
현재 처음부터 구조를 재설계하고 있습니다.
이전 구조는 이렇습니다.
object별 descriptorset 할당,
한 descriptorset에 MVP와 material정보 텍스처가 모두 포함되어 있고
힌 오브젝트당 드로우 호출시 descriptorset을 바인드하고 버퍼 내용을 업데이트 하는 형식이었습니다.
앞으로 작업 할 RT에서는
ray hit shader에서 각 geometry에 대응되는 material과 transform에 접근해야하는데
디스크립터셋이 오브젝트에 묶여있어 셰이더 내부 접근이 어렵기 때문에
instance기반으로 다시 설계를 하고 있습니다.
전반적인 설계안은 이렇습니다.
오브젝트 단위 디스크립터셋을 없애고,
공통된 글로벌 디스크립터셋을 구성한 뒤,
오브젝트별 속성은 SSBO에 저장하고 인덱스로 접근하는 방식으로 변경하고 있습니다.
set0 - camera, light
set1 - model matrix, material
set2 - 모든 texture 등록
으로 방향을 잡고 설계 중입니다.
---
최종 결과물의 방향을
RT reflection + deferred shading과
deferred shading + SSR
같은 씬으로 구성했을때 결과물 차이와 성능을 비교해서
최대한 RT기반 렌더링의 최적화 가능성을 실험하고자 합니다.
'Computer Graphics > Project' 카테고리의 다른 글
20250409 (0) | 2025.04.09 |
---|---|
20250408 (0) | 2025.04.08 |
20250407 (0) | 2025.04.07 |
20250403 (0) | 2025.04.04 |
VulkanRT - 0. 시작 (0) | 2025.04.01 |