Computer Graphics/Vulkan

Vulkan Game Engine - 17. Skybox 적용

surkim 2025. 2. 17. 11:44

같은 씬에 스카이박스만 변경한 모습

 

이미 생성한 이미지를 다른 Renderpass에서 가져다 쓰는 것은 이제 익숙해서

skybox 적용은 나름 쉽게 할줄 알았는데

꽤나 어려웠고 사실 아직 고쳐야할 부분도 많다.

 

우선 적용 하는 방법은 쉬웠다.

hdr파일을 우선 cubemap형태로 초기 변환을 해주고

렌더링 중에 배경을 따로 렌더링하는 renderpass를 만들어서 나중에 model이 안그려지는 부분에 추가하면 끝!

사실 따로 renderpass를 안만들고 바로 적용시킬 수도 있었을 거 같은데

좀 더 직관적이고 쉬운 방법을 사용했다.

적용하는 방법은 쉬웠지만 디테일에서 조금 문제가 생겼는데..

 

문제가 생긴 부분은 hdr 파일 때문이다.

문제의 skybox

가장 처음 의심되었던 부분은

셰이더에서 톤매핑 기법을 안해서 그런가보다 해서

reinhard 톤매핑 기법으로 매핑을 해줬더니

우중충하지 나아지지 않는다

 

그래서 받아올 때부터 잘못 되었구나 생각했다.

hdr파일의 특징이 이미지 색상을 기존 8비트에서 32비트 또는 16비트로 저장한다는 점인데

vulkan은 이미지를 받아오거나 저장하려면 이미지 포맷설정을 해야하는데

기존 8비트 형식으로 받아오는것 처럼 받아오려니깐 생긴 문제인거같다.

그래서 코드상 이미지 받아오는 부분을 여차저차 바꿔봤는데

도무지 되지 않아서 일단 포기하고 씬구성에 skybox를 안밝은 걸로 선택해서 보이고 나중에 고치려고 생각했었다!

사실 블로그 쓰면서 생각났다..ㅎ 고쳐야지..

 

아 고쳐야하는게 너무 많다

너무너무 많다