- 실시간 렌더링에도 temporal coherence를 활용하자!
Tweet
- Game Development
- 2009/05/06 01:37
- GDC2009, reprojection caching, temporal coherence, temporal reprojection
-
이전글에서 언급한 실시간 렌더링의 또다른 추세에 관해서입니다.
Temporal coherence, 번역하기도 까다로운 말입니다만, 내용은 간단합니다. 동영상 압축이 가능한 큰 이유 중 하나는 한 프레임에서 다음 프레임으로 바뀔 때 화면이 크게 바뀌지 않기 때문입니다. 그래서 달라진 부분말을 기록하는 방식으로 압축하는 것이 가능하지요. 이게 바로 temporal coherence의 핵심입니다. 이를 일반 동영상이 아닌 실시간 렌더링에도 적용하자는 것이 reprojection caching의 주 아이디어입니다.
다시 말하면, 이전 프레임에서 픽셀 연산한 것을 최대한 재활용해보자는 것입니다. 가령, 정적 조명을 받은 정적 오브젝트의 픽셀 셰이더 연산 결과는 다음 프레임에서도 거의 비슷한 결과를 보일 것입니다. (물론, 시야 벡터에 영향을 받는 스페큘러 성분 같은 것은 카메라가 급격히 움직인 경우 많이 달라질 수 있겠죠.)
관련하여 다음과 같이 여러 논문들이 나와 있습니다.
- Accelerating Real-Time Shading with Reverse Reprojection Caching
- 기본 논문
- An Improved Shading Cache for Modern GPUs
- 위 논문을 기반으로 약간의 성능 향상
- Automated Reprojection-Based Pixel Shader Optimization
- 이 기법을 자동화하는 것에 관한 논문
- Pixel-Correct Shadow Maps with Temporal Reprojection and Shadow-Test Confidence
- 본 기법을 그림자 맵핑이라는 영역에 국한하여 적용한 논문
이번 GDC에서 발표된 에픽게임즈의 세션(안타깝게도 GDC All-Access 패스가 있어야 접근가능)에서는 이 기법을 최적화가 아닌 SSAO의 품질을 높이는데 사용한 예를 보여줍니다. 아직까지는 게임 등에서 갑자기 텔리포트를 한다든가하여 시야가 완전히 달라지는 경우 전혀 이득을 볼 수 없는 등 최적화 적용에 한계가 있어, 이런 품질 향상 용도로 더 유용할지도 모르겠습니다.
'Game Development' 카테고리의 다른 글
| Iterators Must Go! (in favor of ranges) (2) | 2009/05/15 |
|---|---|
| std::stack에 관한 소고 (0) | 2009/05/12 |
| 실시간 렌더링에도 temporal coherence를 활용하자! (0) | 2009/05/06 |
| Dual Quaternion Skinning (2) | 2009/04/29 |
| Mixed Resolution Rendering (0) | 2009/04/23 |
| [해외 개발자 인터뷰] Anton Kaplanyan (2) | 2009/04/17 |











Recent comment