본문 바로가기

전체 글84

[Graphics] Post Effect 포스트 이펙트 혹은 포스트 프로세싱이라고 부르는 기술은 일반적으로 렌더링 이후 추가되는 효과를 위한 기술이다. 최종적으로 렌더링이 완료된 이미지에 시각적 효과를 추가하기 위해 사용하는 기술이므로 런타임 도중 수정이 가능하며 게임에서 그래픽 효과를 변경하여도 재시작이 필요 없는 옵션(예를 들면, 블러, 필터링, 색상 보정 등)들에 적용되었다. 포스트 이펙트는 런타임 도중 적용 가능 및 적용 정도의 유연성을 가지고 있고 저렴한 비용으로 높은 성능을 기대할 수 있다. 다만 추가적인 메모리를 사용하는만큼 일반적인 렌더링 상황보다 오버헤드 발생 확률이 높고, 코드로 구현함에 있어 복잡도가 높기 때문에 유지 보수가 어려우며, 렌더링 순서에 영향을 많이 받는다. 2023. 8. 7.
[Graphics] RTT(Render to Texture) 보통 그래픽 렌더링에서 화면은 백버퍼라는 공간에 그려진다. 이 백버퍼가 스왑체인을 통해 실제 화면에 노출되는 전면 버퍼와 계속 번갈아 가면서 화면을 그린다. 이것이 대표적인 렌더링 방식인데, RTT라는 기법은 조금 다르다. 그려야 할 대상을 백버퍼가 아닌 텍스쳐에 그려 저장하는 것이다. 이후 저장된 텍스처는 세이더에서 불러 다른 텍스쳐 위에 그릴 때 사용하거나, 각종 후처리 효과를 적용할 때 사용된다. 다양한 효과를 표현할 수 있는 RTT이지만 단점이 몇 가지 존재한다. 1. 비용 증가 - RTT는 기존의 백버퍼가 아닌 텍스처에 렌더링 결과를 담는 과정이다. 때문에 새로운 공간이 필요하다는 의미이고, 이는 메모리 사용량의 증가로 이어진다. 2. 성능 저하 가능성 - RTT는 두 번의 렌더링을 거친다. 첫.. 2023. 8. 7.
[Graphics] 광원 효과 광원 효과의 대표 예시는 Directional Light, Point Light, Spot Light 세 가지가 있다. 1) Directional Light - 무한히 먼 거리에 있는 광원에서 발사되는 빛 효과를 나타낸다. - 모든 객체에게 평행한 광선이기 때문에 태양과 같은 광원 효과를 나타내기 쉽다. 2) Point Light - 어떤 지점을 기준으로 모든 방향을 향해 동일한 세기의 빛을 발한다. 즉, 광원의 위치에 영향을 받는다. - 전구와 같은 광원을 나타내기 쉽다. - 단 동일한 세기로 발사된 빛은 광원과의 거리가 멀어질 수록 그 빛이 감쇠한다. 특정 빛이 광원으로부터 떨어진 거리에 따른 감쇠 방정식은 다음과 같이 구현된다. 3) Spot Light - 어떤 지점을 기준으로 특정 방향을 향한 원.. 2023. 8. 2.
[CS] 컴퓨트 셰이더 컴퓨트 셰이더는 GPU가 CPU의 기능까지 수행할 수 있게 되면서 나타난 개념이다. DirectX11에서 도입되었으며 일반적인 셰이더처럼 HLSL을 사용하여 처리를 할 수 있고, 렌더링 파이프라인과는 동떨어진, 독립된 셰이더이기 때문에 그래픽스 렌더링과는 관계 없이 사용할 수 있다. 컴퓨트 셰이더와 비슷한 연산들을 픽셀 셰이더에서 수행했었지만 컴퓨트 셰이더는 픽셀 셰이더에 비해 다음과 같은 이점이 있다. 출력할 곳의 리소스를 임의의 위치로 사용 가능 데이터 공유나 스레드 동기화의 매커니즘 설계 지정한 수의 스레드를 명시적으로 구동시켜, 퍼포먼스를 최적화할 수 있음 렌더링 파이프라인과 상관 없으므로 코드의 유지보수가 간단하다. 컴퓨트 셰이더는 병렬 처리 작업을 위해 수행 되는 하나 이상의 스레드 그룹(Th.. 2023. 7. 11.