저는 그래픽스에 계속 흥미를 가지다가 GI에 대해 관심을 가지기 시작했습니다.
그러면서 자연스럽게 한번 구현해보고 싶다는 생각에 무작정 머릿속에서 생각나는 방식 하나를 구현해보고자 결심했습니다.
Dynamic Light Probe Group 구현 도전기
‘유니티의 라이트 프로브를 실시간으로 왜 못찍어내는걸까?’
이 생각으로 한번 실시간 라이트 프로브를 구현해보고 싶었습니다.
위 블로그에도 설명했듯이, 노드마다 카메라를 설치해서 9x9크기의 2D텍스쳐 두장으로
얼추 주변 디퓨즈 색상값을 얻을 수 있다는 꽤 그럴듯한 생각을 가지고 도전을 해보았습니다.
하지만 전혀 예상치 못한 부분의 크리티컬한 성능 문제가 있었습니다.
버텍스 쉐이더의 한계
아무리 렌더링되는 텍스쳐가 작다 하더라도 버텍스를 면으로 구성하는 단계는 무시할 수 없었습니다.
텍스쳐 크기와는 무관하게 면을 구성하기 위한 연산은 무조건 적용되는 구간이기도 하고
해당 정보들을 버퍼로 담기엔 양도 방대하고 부정확한 면이 너무 크기도 했습니다.
무엇보다 적용하더라도 간접광의 표현이 비용에 비해 너무 터무니 없었습니다.
결론
이 연구는 완전한 실패로 돌아갔습니다.
하지만 나름 경험한 것도 있고, 다른 대응책을 찾아다니면서 SSGI가 얼마나 대단한지 점점 알아가는 소중한 시간이였습니다.
자연스럽게 지금은 SDF를 이용한 렌더링 기법에 관심을 가지고 있고, 시간이 되는대로 새로운 연구를 해볼 예정입니다.