엔비디아에서 언리얼엔진5를 위한 DLSS 플러그인을 출시했습니다.
DLSS? 그게 뭐죠?
DLSS (Deep Learning Super Sampling)는 아마도 게임 업계 전문가분들 뿐만 아니라 일반 게이머들도 알만한 용어가 되어버린 것 같습니다. 딥러닝 인공지능을 이용한 업스케일링 방식입니다. 아시는 분들은 이미 아시겠지만 게임에서 이 DLSS 기능을 켜주면 화질도 좀 좋아지고, FPS도 더 높아지는 것을 볼 수 있습니다. 적어도 마케팅은 그런식으로 합니다만 저는 실제로 게임 할 때 비교해본 적이 없어서 얼마나 더 좋아지는 건지 체험 해보거나 해보지는 못했습니다. 아니 하드웨어를 바꾸는 것도 아니고, 돈을 더 내는 것도 아닌데 갑자기 프레임도 더 주고 해상도도 더 준다니 이게 말이 됩니까? 이 와중에 이 기술이 언리얼엔진에 적용된다니 의심이 가면서도 너무 궁금해서 발표자료를 찾아보았습니다.
엔비디아 마케팅 영상만 보면 뭐 거의 마법 수준입니다.
DLSS ❤️ 언리얼엔진
발표자료를 살펴보니 대략 이 기술을 언리얼엔진에 적용해서 언리얼 개발자들이 개발 작업을 할 때, 에디터에서 좀 더 쾌적하게 개발을 할 수 있고, 렌더링 할 때도 DLSS 를 적용할 수 있는 옵션이 생겼다는 이야기인것 같습니다. 하지만 마케팅은 마케팅이고 실제로는 어떻게 작동하는지 알아보려면 직접 테스트 해보는 수 밖에 없었습니다. 유튜브에 검색해보니 테스트 해보는 영상 몇개가 있긴 했는데 UE5 프리뷰 버젼은 없었고, 그나마 있는 4.27 버젼의 테스트 영상도 아주 간단한 비교 영상밖에는 없고, 렌더링 옵션이 수십가지가 넘게 생겼는데 하나밖에 비교를 안하길래 이때다 싶어서 영상도 만들겸 다운로드 받아서 테스트 해봤습니다.
플러그인 다운로드/설치
일단 플러그인은 엔비디아 개발자 웹사이트에서 다운로드 받을 수 있습니다. 다운받은 파일의 압축을 풀면 폴더 몇개와 설명서가 나오는데. 설명서를 보니 대충 어떻게 작동하는건지 감이 딱 오더라구요........ 완전히 이해했어...... 크흠. 하여튼 대략적인 감만 잡고 가이드에 적힌대로 폴더 3개를 언리얼엔진 플러그인 폴더에 옮겨주면 설치 완료됩니다. 이후에는 플러그인을 적용할 언리얼엔진 프로젝트의 플러그인 창으로 가서 DLSS 검색해서 나오는 두가지 옵션 켜주고 엔진 재시작 하면 됩니다.
https://developer.nvidia.com/rtx/ray-tracing/dlss/get-started
작업 할때 도와주는 DLSS 👍
언리얼엔진을 사용 해보신 분들이라면 잘 아시겠지만, 언리얼엔진의 장점은 실시간 렌더링입니다. 일반적인 경우에 작업물의 결과를 오래 기다릴 필요없이 바로바로 화면에 업데이트 되어 보여줍니다. 조작도 마치 1인칭 슈터 같이 WASD 키와 마우스로 3D 공간에서 이리저리 옮겨다니면서 작업하는 방식이죠. 이 이야기는 언리얼엔진 에디터가 작동하는 방식이 게임을 하는 것과 비슷하다는 말이 됩니다. 실제로 게임처럼 에디터를 돌리는데에도 FPS 라는 개념이 있고 해상도 설정도 있습니다. 프로젝트에 뭐를 많이 집어 넣으면 넣을수록, 기능을 많이 추가하면 추가할수록 작업 시의 FPS와 돌릴 수 있는 해상도에 큰 영향을 주게 됩니다. 물론 사용자의 컴퓨터 성능도 이와 직접적인 영향이 있구요. 프로젝트가 헤비해져서 FPS가 너무 떨어지거나 하면 작업하기가 상당히 힘들어집니다. 저사양 컴퓨터에서 최신 그래픽의 게임을 돌리기가 힘든 것과 같습니다. 바로 이 점 때문에 DLSS 플러그인을 이용해 FPS를 올림으로써 작업하기 더 쾌적하게 만들어줄 수 있는 것 같습니다.
플러그인 적용 하고 나면 프로젝트 세팅에 DLSS 관련 옵션들이 생겨 있습니다. 일단 뭔가 건드리면 안될것 같으니 그대로 둡니다. 에디터 뷰포트 메뉴로 가니 DLSS 옵션이 있네요. 퀄리티 부터 울트라 퍼포먼스 까지 옵션이 여러개 있는데. 퀄리티는 당연히 더 느리고 화질에 집중 하는 것일테고, 퍼포먼스는 화질을 버리고 속도를 택하는 거겠죠? 테스트로 쓴 프로젝트 장면 자체가 어두워서 그런건지는 잘 모르겠지만 퍼포먼스로 바꾸어도 딱히 화질 차이는 잘 모르겠고, FPS 는 확실히 많이 돌려받네요. 아주 천지개벽할 차이는 아니지만 언리얼엔진에서 작업할 때에 좀 더 쾌적하게 작업 할 수 있을 것 같습니다.
원래 29~31ms 정도로 돌아가고 있었는데 DLSS Performance 모드 켜니까 8~9ms 정도 돌려받았습니다
화질을 도와주는 DLSS (?) 🤔
제가 마법같은 마케팅 영상을 보고 정말 궁금했던 부분은 DLSS를 쓰면 렌더링 퀄리티가 좋아질 수 있느냐는 점이었습니다. 으레 그렇듯 마케팅 자료를 보면, 같은 게임 화면의 화질/FPS 비교하는것들이 많은데, DLSS 쪽이 FPS도 높고 화질도 좋다는 식으로 보여주더라구요. 해상도를 올려주는 기술이니까 뭔가 당연히 그래야 할 것 같은 느낌적 느낌이었죠. 하지만 세상에 공짜는 없는 법이니 뭔가 실제 적용시에는 그렇게 간단할 것 같지는 않은 의심도 들었습니다. 아무래도 없는 픽셀을 인공지능이 만드는 업스케일링 방식이니 한계가 있지 않을까 했습니다.
DLSS 는 기본적으로 인공지능을 이용해 낮은 해상도를 높은 해상도로 업스케일링 하는 방식입니다.
테스트 방식
기존의 렌더링 관련 옵션들 (안티 앨리어싱, 해상도 등등) 에다가 이제 DLSS 관련된 옵션들까지 추가되다 보니, 시도할 수 있는 세팅의 조합이 수십가지에 달했습니다. 그렇다고 모두 시험해볼수는 없었는데. 가장 시험해봐야 할 것 같은 조합들로만 13가지 선택했습니다. 절대 설명서를 이해 못해서 13가지나 시험한건 아닙니다 완벽하게 이해했습니다....... 흠ㅎ므
관심있으시다면 시험한 세팅 목록은
여기 구글드라이브 링크에 있습니다.
https://docs.google.com/document/d/1zNb1kxAdDbP3GlNUPmH67kAk6-7ipvfyS0f_7gPeOJ0/edit?usp=sharing
테스트에 사용한 바이킹 룬스톤 프로젝트 입니다.
렌더링 결과
13가지 세팅으로 렌더링 하고 포토샵으로 가져와서 눈비벼가며 비교해보았습니다. 참고로 포토샵 레이어 설정에서 위의 레이어의 블렌딩 설정을 Difference 로 하면 아래에 있는 레이어와 정확히 무엇이 다른지 차이점만 빼서 보여줍니다. 이렇게 아주 비슷한 그림들의 차이점을 비교할 때에 무척 유용합니다. 비교내용을 일일히 다 나열하기에는 너무 길고 지루해질 것 같아 결론적 장단점만 말씀 드리겠습
니다.
장점: DLSS를 적용하면 같은 사양에서 더 높은 해상도로 렌더링 할 수 있습니다. 예를 들어 제 컴퓨터(RTX3080)에서는 항상 4K 결과물로 렌더링 하는게 한계였습니다 (프로젝트 마다 다르지만 대부분의 경우에 그랬습니다). 하지만 DLSS 적용하니 경우에 따라 8K도 렌더링이 가능했습니다. 시험목적으로 긴가민가 하면서 해봤는데 뻑안나고 끝까지 잘 렌더 완료했습니다. 물론 8K 결과물이 필요한것도 아니고, 진정한 의미의 8K도 아니지만 (낮은 화질을 업스케일링 하는 것이니), 8K 프레임을 출력할 수 있다는 사실 자체가 놀라웠습니다. 그리고 같은 해상도로 렌더링 했을 때는 DLSS 적용 한 쪽이 훨씬 더 빨랐습니다.
8K 라니요 ㄷㄷㄷ 가로세로 픽셀 숫자도 생소한...
작업하다 보면 에디터에서 작업을 잘 끝내도 렌더 할때에 문제가 생기는 경우도 많아서, 빠르게 시험삼아 렌더링 해볼 때에도 좋은 것 같습니다.
단점: 같은 해상도일 때에, DLSS 미적용 > DLSS 적용 입니다. 뭐 DLSS의 작동 방식 자체가 더 낮은 화질을 인풋해서 AI 로 화질을 높여버리는 방식이니 당연한 것 같기도 합니다. 아무래도 한계가 있겠죠. 또 피사계 심도가 DLSS 적용시에는 확연히 다릅니다. 뭔가 덜 뿌연 느낌? 인공지능이 디테일을 추가하려고만 하고 여기가 왜 뿌옇게 되어야 하는지 이해를 못하는 느낌입니다. (여백의 미 알간?)
혹시나 관심 있으신 분들 위해서 렌더 된 결과물 (EXR 이미지) 구글 드라이브 링크에 담아놓았습니다.
https://drive.google.com/drive/folders/1_Pe3suMGXeL-EYtrpr7bZRhJdiu9HIMi?usp=sharing
DLSS는 아무래도 화면의 요소 하나하나 미세하게 조절해야 하는 극도의 컨트롤이 중요한 씨네마틱이나, 영상물 제작에서는 아직 쓰일 수 없을 것 같습니다. 없는 픽셀을 인공지능이 만드는 방식이다 보니 작업물과 결과물 사이의 너무 큰 변수로 작용하기 때문이죠. 그리고 기본적으로 텐서 코어가 있는 그래픽카드가 필요하다는 제한도 있습니다.
나중에는 AI 더러 '저기 저 그림자 좀 똑바로 다시 그려' 라던가, '넌 내가 그렇게 잎사귀 대충 그리지 말라고 했는데 말 안듣니? 빠져가지고는 쯧쯧' 라고 할 수 있는 시대가 오면 좋겠습니다...... (저의 이너 갑질력 충족)
DLSS 렌더링 테스트 결과물 비교 정리영상 (한글자막)