실시간 렌더링에도 temporal coherence를 활용하자!

이전글에서 언급한 실시간 렌더링의 또다른 추세에 관해서입니다.


Temporal coherence, 번역하기도 까다로운 말입니다만, 내용은 간단합니다. 동영상 압축이 가능한 큰 이유 중 하나는 한 프레임에서 다음 프레임으로 바뀔 때 화면이 크게 바뀌지 않기 때문입니다. 그래서 달라진 부분말을 기록하는 방식으로 압축하는 것이 가능하지요. 이게 바로 temporal coherence의 핵심입니다. 이를 일반 동영상이 아닌 실시간 렌더링에도 적용하자는 것이 reprojection caching의 주 아이디어입니다.

다시 말하면, 이전 프레임에서 픽셀 연산한 것을 최대한 재활용해보자는 것입니다. 가령, 정적 조명을 받은 정적 오브젝트의 픽셀 셰이더 연산 결과는 다음 프레임에서도 거의 비슷한 결과를 보일 것입니다. (물론, 시야 벡터에 영향을 받는 스페큘러 성분 같은 것은 카메라가 급격히 움직인 경우 많이 달라질 수 있겠죠.)

관련하여 다음과 같이 여러 논문들이 나와 있습니다.



이번 GDC에서 발표된 에픽게임즈의 세션(안타깝게도 GDC All-Access 패스가 있어야 접근가능)에서는 이 기법을 최적화가 아닌 SSAO의 품질을 높이는데 사용한 예를 보여줍니다. 아직까지는 게임 등에서 갑자기 텔리포트를 한다든가하여 시야가 완전히 달라지는 경우 전혀 이득을 볼 수 없는 등 최적화 적용에 한계가 있어, 이런 품질 향상 용도로 더 유용할지도 모르겠습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 0

top