Intel에서 제공하는 Sponza 씬을 기반으로, 벤치마크 테스트용 씬을 엔진에 적용해보았습니다.
씬을 적용하면서 해상도에 따라 시각적 결과가 많이 달라지는 것을 확인하였으며,
앞으로는 캡처 이미지에 해상도를 함께 명시하여 보다 정량적인 비교를 진행할 예정입니다.
해당 씬을 로드하는 과정에서 세 가지 주요 문제가 발생하였습니다.
1. decal 처리 문제
Sponza는 기둥이나 벽면의 오래된 흔적을 표현하기 위해, 알파 값을 가진 반투명 메시(Decal)를 사용하고 있습니다.
하지만 현재 엔진은 반투명 렌더링이나 알파 블렌딩 처리가 구현되어 있지 않아,
해당 메시가 올바르게 렌더링되지 않았습니다.
임시 방안으로 Blender를 통해 Decal 메시와 머티리얼을 제거한 후, 새롭게 씬을 생성하여 사용하였습니다.
반투명 렌더링은 Z-Sorting 문제와 연관되어 구조적으로 복잡한 이슈이므로,
Ray Tracing 기능을 도입한 이후 나중에 구현할 계획입니다. (프로젝트 이후)
2. 메모리 문제
Sponza 씬에 포함된 텍스처 전부 압축되지 않은 상태로 프로그램 시작과 동시에 GPU에 로드되었고,
이로 인해 매우 높은 메모리 사용량을 초래했습니다.
집에 있는 노트북의 8GB VRAM 환경에서는 곧 메모리 부족 오류가 발생할 것 같습니다.
이는 프로젝트 진행 중 우선적으로 개선해야 할 항목으로 판단됩니다.
3. 그림자 문제
현재 그림자는 Directional Light 기준으로 (0, 0, 0)을 향해 일정 거리 떨어진 위치에서
정사영(Ortho Projection) 방식으로 생성하고 있습니다.
Sponza 씬처럼 큰 규모의 씬을 처리할 경우, 그림자 맵 영역이 넓어지면서 그림자 경계가 뚜렷하게 나뉘게 됩니다.
PCF를 적용하더라도 경계가 거칠고 앨리어싱 현상이 남아있습니다.
이건 RT 도입 이후에 해결할 과제로 프로젝트 기간 안에 해결하겠습니다.
Ray Tracing 관련 논문이나 자료에서 자주 등장하는 테스트 씬인 Cornell Box 또한 함께 도입할 계획입니다.
이 두 씬을 기준으로 RT Reflection 및 RT GI 기능의 품질과 성능을 다양한 해상도와 설정에서 비교 실험할 계획입니다.
오늘은 RT 도입을 위한 기반 정리에 집중하면서, 본격적인 구현을 준비하겠습니다.
월요일까지 one bounce reflection이 목표입니다.
'Computer Graphics > Project' 카테고리의 다른 글
Vulkan에 Ray Tracing 도입 하기 (0) (0) | 2025.04.11 |
---|---|
20250411 (0) | 2025.04.11 |
1주차 정리 250331 ~ 250409 (0) | 2025.04.09 |
20250409 (0) | 2025.04.09 |
20250408 (0) | 2025.04.08 |