본문 바로가기
프로그래밍/공부

[Graphics] RTT(Render to Texture)

by Sik.K 2023. 8. 7.

보통 그래픽 렌더링에서 화면은 백버퍼라는 공간에 그려진다. 이 백버퍼가 스왑체인을 통해 실제 화면에 노출되는 전면 버퍼와 계속 번갈아 가면서 화면을 그린다.

 

이것이 대표적인 렌더링 방식인데, RTT라는 기법은 조금 다르다. 그려야 할 대상을 백버퍼가 아닌 텍스쳐에 그려 저장하는 것이다.

 

이후 저장된 텍스처는 세이더에서 불러 다른 텍스쳐 위에 그릴 때 사용하거나, 각종 후처리 효과를 적용할 때 사용된다.

 

출처 - RichardsSoftware.net - Dynamic Environmental Reflections in Direct3D 11 and C#

 

다양한 효과를 표현할 수 있는 RTT이지만 단점이 몇 가지 존재한다.

 

1. 비용 증가

 

 - RTT는 기존의 백버퍼가 아닌 텍스처에 렌더링 결과를 담는 과정이다. 때문에 새로운 공간이 필요하다는 의미이고, 이는 메모리 사용량의 증가로 이어진다.

 

2. 성능 저하 가능성

 

 - RTT는 두 번의 렌더링을 거친다. 첫 번째 렌더링의 결과로 텍스처에 담기게 되고 이후 실제 화면에 렌더링되는 두 번째 렌더링이 발생한다. 두 번 렌더링을 거치는 만큼 퍼포먼스의 저하로 이어질 수 있게 된다.

 

3. 복잡성 및 오버헤드

 

 - RTT는 우선 렌더링을 위한 프레임 버퍼를 생성하고 이를 담을 텍스처와 연결이 되어야 하기 때문에 코드가 복잡해지고 유지 보수가 어려워지며, 오버헤드가 발생할 확률이 있다.

 

'프로그래밍 > 공부' 카테고리의 다른 글

[Graphics] 블러(Blur) 효과  (0) 2023.08.07
[Graphics] Post Effect  (0) 2023.08.07
[Graphics] 광원 효과  (0) 2023.08.02
[Graphics] 키프레임 애니메이션  (0) 2023.06.28
[Graphics] 포워드 렌더링 and 디퍼드 렌더링  (0) 2023.06.27

댓글