주의 : 이 글의 목적은 자기계발 용도와 게임에서 쓰이는 각종 그래픽스, 그래픽카드 관련 단어 (안티엘리어싱, 셰이더, 텍스쳐 품질등) 들이 처음 보는 사람에게는 굉장히 생소하고 어려워 보이기 때문에 해당 부분에 대한 이해를 쉽게 하기 위해 작성되었습니다.
주의 : 해당분야는 전문적인 분야이며 그리고 실시간 발전되는 기술입니다. 지금도 새로운 기술들이 나오고 있어 틀린 부분이 있을 수도 있습니다.
1편에서 말했듯이 현재 레이트레이싱(RTX)를 지원하는 게임들은 크게 4가지 그림자, 반사, 글로벌일루미네이션, 엠비언트 오클루전 4가지 기술을 지원하는데 통상적인 그래픽 기술과 레이트레이싱 기술 사이에 어떤 차이가 있는지 살펴보자.
1. 그림자
그림자는 통상적인 그래픽 기술에서는 보통 섀도우 매핑(Shadow Mapping)을 사용하는 방식으로 그림자를 구현한다.
좀 더 셰이더 언어쪽으로 궁금하신 분이면 오다기리박님의 아래 정리 내용을 참고하시면 좋을 것 같다.
(https://wjdgh283.tistory.com/entry/10-%EA%B7%B8%EB%A6%BC%EC%9E%90%EB%A7%A4%ED%95%91)
섀도우 매핑이란 말이 되게 생소할텐데 간단하게 설명하면 광원 위치에 카메라를 두고 물체를 내려다보면서 물체의 깊이를 그려주는 기술이다.
섀도우 매핑은 우리가 게임화면을 본다고 가정할때, 게임화면에서 플레이어 시점이 아닌 광원시점에서 먼저 그려준다. 광원시점에서 물체를 그려주기 때문에 화면에서 그려주는 그림자는 단 하나도 없다. 그래서 이 시점에 깊이 정보가 담긴 사진을 저장한다. 그 이후 플레이어 시점에서 이 이미지를 어둡게 칠하면 우리가 아는 그림자가 구현된다.
하지만 깊이 정보가 이미지로 저장되는 만큼 이미지 해상도에 따라 그림자 해상도가 떨어진다. 그리고 실제로 그림자처럼 끝으로 갈 수록 그림자가 흐려지는 모습도 구현이 힘들기 대문에 섀도우 필터 메소드(PCF, PCSS등) 를 필요로 한다.
하지만 레이트레이싱은 빛이 작동하는 방식을 구현한 기술이기 때문에 특정 지점이 빛을 얼마나 받았는지 계산이 가능하다. 그래서 다양한 조명에 의해 혼합되는 그림자 등 현실적인 그림자 구현이 가능하다. 레스터라이제이션은 현실적으로 만들기 위해 엄청난 다양한 도구와 기법들이 필요하지만 RTX는 그렇지 않은 것이다.
2. 반사
통상적으로 게임에서 반사 기술은 큐브맵 반사와 화면공간 반사 기법을 주로 사용한다.(Cube Map, Screen Space Reflection)
큐브맵 반사 : 특정 지점에서 360° 사진을 찍고 해당 사진정보를 활용해 반사효과를 구현
화면 공간 반사 : 화면에 구현된 정보만을 사용해 비교적 고품질 반사를 구현
통상적인 큐브맵, 화면공간 반사 기법도 나쁘진 않느지만 큐브맵 반사는 미리 저장된 이미지를 사용하기 때문에 동적인 장면 반사가 되지 않고 화면 공간 반사는 화면 밖에 있으면 반사가 사라지는 단점이있다.
그러나 레이트레이싱 기술이 적용된다면 품질 향상 뿐만이 아니라 동적 화면 반사도 구현되며 화면에 담기지 않는 장면들도 모두 반사가 되서 정말 현실적인 반사를 구현한다.
반사는 플레이어 입장에서 직관적으로 알아 보기도 쉬운 기술이라고 생각도 된다. 갑자기 지금 당장 사이버펑크2077에 RTX 적용해서 엣지러너 노래를 듣고 싶어 질 정도로 엄청난 현실감이다.
3. 글로벌일루미네이션(GI)
유리 금속에서만 빛반사가 이루어 지는 것은 아니다. 바닥, 벽에서도 무수히 많은 빛 반사가 이루어지면서 방이 은은하게도 비춰지는데 이 현상을 구현한 기술이 글로벌 일루미네이션 기술이다.(줄여서 GI라기도 한다)
하지만 이 기술은 굉장히 많은 연산을 사용하기 때문에 보통 게임에서는 모든 부분을 동일하게 빛내는 주변광을 설치하거
나 미리 계산된 GI정보를 게임 화면속에 적용하기도 한다.
미리 계산된 정보이기 떄문에 광원, 장면의 변화를 반영하지 못하거나 연산 시간에 너무 오래 걸리기 때문에 오픈월드에서는 보통 제한적으로 사용한다.
하지만 레이트레이싱 기술에서의 GI는 이런 한계와 상관 없이 실시간으로 GI 구현이 가능하다. 레이트레이싱은 실제 빛의 동작방식을 구현한 기술 이기 때문에 광활한 오픈월드에서도 태양광에 반사된 물체의 빛이 주변에 실시간으로 영향을 줄 수 있다.
반사에 비해 GI라고 하면 생소한 단어이기도 하고 엄청 눈에 띄는 부분이 없어서 플레이어 입장에서는 그냥 넘어 갈 수도 있지만 현실적인 그래픽을 구현하기 위해선 무엇보다 중요한 기술이다.
4. 엠비언트 오클루전 (ambient occlusion = AO)
빛이 닿지 않는 부분을 어둡게 하는 기술로 위 GI와 반대되는 역할을 하는 기술이다.
빛이 반사되어 은은하게 빛나는 주변광을 구현하는 기술이 GI라면
빛이 잘 들어오지 않아(빛이 안들어와서) 어두워 지는 부분을 구현한 것이 AO이다.
위 그림자, 반사같은 경우에 실제 현실과 같은 빛이 동작하는 방식으로 구현 된 기술이지만 본질적으로는 AO는 현실에 존재 하지 않는 현상을 구현하는 기술이다. 그럼 여기서 문득 의문이 든다. RTX는 현실의 빛 동작을 구현한 기술인데 왜 AO같은 기술이 필요할까?
GI기술이 완벽할 경우에 AO기술이 의미가 없을 수도 있지만 아직 레이트레이싱 기술은 완성형도 아니고 결국 2D 스크린으로 구현이 되는 게임 그래픽은 우리가 실제 두 눈으로 보는 3차원 현실 세계 보다 당연히 입체감이 떨어지기 때문에 빛을 받지 못하는 모서리, 물체 접촉부분을 어둡게해 입체감을 효과적으로 표현하는 AO 기술이 필요하다.
그래서 우리가 3D게임에서 그래픽관련 옵션에서 AO 여러가지 기술을 볼 수 있다.
(SSAO, HDAO, HDAO+ ... 진짜 많다)
위 기술들의 차이는 화면에 어떤 부분이 어느정도를 차폐 되는지 계산하는 차이다.
대충 SSAO(Scenn Screnn AO는 오직 화면에 있는 정보만을 사용해서 입체감을 보여주지만 물체에 가려진 부분을 구현하지 못한다.
하지만 역시 레이트레이싱 AO는 특정 부분이 얼마나 차폐되어있는지, 물체에 가려진 부분까지 계산이 가능하기 때문에 정확한 음영표현이 가능해진다.
현재 레이트레이싱은 아직 발전하는 단계에 있으며 주로 게임 그래픽스에서는 레스터라이제이션과 레이트레이싱을 혼합해서 사용하는 하이브리드 렌더링을 주로 사용하는 것으로 알고 있다.
아직 게임단계에서 레이트레이싱은 실제 CG에 사용되는 레이트레이싱과는 큰 품질 차이가 있지만 아직 고려해야 할 점은 레이트레이싱 기술은 RTX 기술이 나오기전까지 게임에서 사용할 생각을 할 수 없을정도로 엄청난 연산량을 요구했지만 이제슬슬 RTX가 나온지 4년이 넘었고 DLSS 기술의 발전으로 하드웨어 성능의 발전이 되면서 게임 그래픽 발전에 큰 변화가 올 것이라는 생각이든다.
예전부터는 확실하게 둠 부터 서든어택, 크라이시스 등 얼마나 색칠 기술이 발달해서 게임 그래픽 기술의 비약적인 발전이 보여졌다면 최근에 나오는 AAA게임들은 거진 그래픽이 정말 뛰어나고 여기에 얼마나 디테일하게 레이트레이싱을 적용했는가 그 차이가 보여지는 것 같다. 앞으로의 하드웨어와 게임 그래픽의 발전을 기대하며 필자는 글카를 위해 돈을 열심히 모을 것이다.
댓글