Daily Life of BlueRose

컴퓨터 & 코딩 공부/컴퓨터 그래픽스 & 언리얼 엔진

언리얼 엔진 - 나나이트/버추얼텍스처에서 말하는 '가상화'의 의미

푸른로즈 2024. 10. 17. 00:34
728x90

여는 글

언리얼엔진5가  처음 출시되었을 때, "지오메트리를 가상화하여 획기적인 숫자의 폴리곤을 처리할 수 있게 되었습니다"라는 이야기를 들었을 때 이게 대체 무슨의미인지 몰라서, 뭔지 모르겠지만 아무튼 최적화를 잘 해주는가보다 정도로만 생각하고 있었습니다.

 

최근 그래픽스를 배우면서 각 용어를 배우다보니 이제 이러한 내용이 어떤 의미인지를 대략적으로는 알게 되었습니다만은 여전히 가상화라는 용어의 의미는 알 수 없어서 헤매게 되어, 이참에 한 번 정리를 해보았습니다.

 

 

가상화?

그래픽스 전체에 적용되는 용어인지는 모르겠습니다만은 적어도 나나이트와 버추얼텍스처에서의 가상화란 모델링이나 텍스처가 사용될 부분의 위치, 크기, 세부묘사 수준 등을 계산하여(이 부분이 '가상'의 의미입니다), 필요할 때, 필요한 만큼만, 필요한 수준의 세부묘사 수준으로 불러오는 것을 의미합니다.

 

말하자면 지도 전체를 펼쳐서 보는 대신 현재 보고 있는 구역만 자세하게 확대하고 나머지는 접어둔 채, 필요할 때만 접은 곳을 펼쳐보는 방식이라고 비유해 볼 수 있겠습니다.

 

'가상화'라는 말이 어려워서 와닿지 않을 뿐이지, 핵심은 컴퓨터의 자원 소모량을 아끼기 위하여 필요한 수준으로만 묘사하는 방식이라고 볼 수 있습니다.

 

 

밉맵과의 차이?

밉맵과 일정부분 비슷하게 느껴질 수 있겠습니다만은, 밉맵은 하나의 텍스처를 저~고용량의 여러 단계로 나누어 저장해두고 거리에 따라 달리 적용하는 방식이므로 딱히 뭔가를 가상화하여 필요한 만큼만 불러들이는 기능은 아닙니다. 불필요하더라도 밉맵에 따른 텍스처는 불러와지죠. 

 

반면 텍스처 가상화의 경우는 불필요한 부분에 대하여는 텍스처를 불러들이지 않는다고 표현되어 있습니다. 만약 필요하다면 텍스처의 일부만을 로드하기도 합니다. 때문에 밉맵과는 근본적인 작동 방식에서 차이가 있습니다.

 

다만, 나나이트에서는 밉맵과 마찬가지로 멀리있는 오브젝트는 폴리곤을 간소화하여 처리하긴 합니다. (애초에 지오메트리는 밉맵 비슷한 기능이 있다고 배우진 않았던것 같습니다만은...)

 

나나이트가 지원되지 않는 경우 사용되는 예비 메시(나나이트가 작동할 경우 먼 물체는 이렇게 간소화되는 듯하다)

 

 

 

나나이트에서 말하는 '지오메트리' 가상화의 의미?

폴리곤은 일반적으로 삼각형을 많이 사용하죠. 반면 모델링 과정에서는 사각형을 사용합니다. 이러한 삼각형, 사각형을 점, 선과 더불어 프리미티브라고 부르는데요. 이 프리미티브라는 용어.... 정확하게 표현하자면 기하 프리미티브입니다. 그리고 기하가 바로 영어로 '지오메트리'죠. 

 

즉, 지오메트리 가상화라는건 폴리곤을 가상화한다는 의미이며, 거리에 따라 모델링의 세부묘사 수준을 조절함을 의미합니다. 멀리있는 모델링은 단순하게, 가까이 있는 모델은 세부적으로 폴리곤을 조성하는 겁니다.

 

다만, 텍스처 가상화에서는 불필요한 부분은 아예 불러들이지 않는 경우도 명시되어있는데, 나나이트의 경우에는 아예 불러들이지 않는다는 표현은 없는 듯 합니다. 아마 아예 모델링을 불러들이지 않으면, 모델링에 동반되는 콜리전이 사라지는 문제로 원거리에 있거나 가려진 부분에 있던 NPC가 낙사로 사망하는 등 문제가 발생할 우려가 있어서 단순화 수준에서 타협을 본게 아닐까 싶네요~

 

 

반응형