주의 : 이 글의 목적은 자기계발 용도와 게임에서 쓰이는 각종 그래픽옵션 관련 단어 (안티에일리어싱, 셰이더, 텍스쳐 품질등) 들이 처음 보는 사람에게는 굉장히 생소하고 어려워 보이기 때문에 해당 부분에 대한 이해를 쉽게 하기 위해 작성되었습니다.
주의 : 해당분야는 전문적인 분야이며 그리고 실시간 발전되는 기술입니다. 지금도 새로운 기술들이 나오고 있어 틀린 부분이 있을 수도 있습니다.
1. 텍스쳐(Texture)
3D게임을 하다보면 그래픽스 옵션에서 발견할 수 있는 비등방성 필터링. 주로 텍스쳐 필터링 이라는 항목에서 쉽게 찾을 수 있는데 GTA5에서는 이방성 필터링, 혹은 필터링모드에서도 발견할 수 있는데 대체 이 옵션은 어떤 기능을 가지는 옵션일까? 비등방성, 이방성, 텍스쳐 필터링 이름도 참 다양한데 한번 알아보도록 하자.
일단 비등방성이나 이방성이나 둘다 똑같은 의미인데 옵션을 자세히 살펴보면 이중선형, Trilinear 등 무슨 외계어처럼 보이는 다양한 옵션들이 존재한다. 이 모든 옵션은 결국 텍스쳐필터링의 일종이다.
텍스쳐(Texture)라는 말은 한번 쯤 들어 봤을 것이다. 물체의 질감 정보가 담긴 이미지를 텍스쳐라고 하는데, 텍스쳐 옵션이 높으면 고해상도의 텍스쳐를 불러오기 때문에 물체가 더 선명해 지고 옵션이 낮으면 저해상도의 텍스쳐를 불러오게 되면 게임이 찰흙처럼 되기도 한다.
이러한 정보가 담긴 텍스쳐는 일반 이미지처럼 2D 이미지로 저장되어 있는데 텍스쳐에도 정해져 있는 해상도가 있다. 예를 들어 가로세로 1000px(픽셀) 사이즈의 텍스쳐가 있다고 가정해볼때 게임속 화면에서는 딱 가로 세로 1000px 만큼 사이즈를 가지지 않는 것이 거의 대부분이다. 게임 속 카메라로 멀리서 볼때 해당 텍스쳐의 크기는 가로 세로 300px이기도 하고 또 카메라 각도를 돌리면 가로 400px 세로 200px인 경우도 있기 때문이다.
빈번하게 사이즈가 변하는 게임 환경상 텍스쳐의 크기를 조절하는 옵션이 바로 텍스쳐 필터링이다.
이미지 크기를 바꾸는 것이 그리 어려운 일일까 라는 생각이 들 수도 있지만 당장 포토샵만 열어서 사진의 크기를 바꾸려고 하기만해도 상당히 다양한 방법이 존재함을 알 수있다. 그리고 그 방법마다 이미지 품질이 달라진다. 그래서 게임에서 우리가 보는 텍스쳐 필터링 옵션이 바로 텍스쳐의 사이즈를 조절하는 각기 다른 방식이다.
2. 텍스쳐 필터링 옵션들
텍스쳐 필터링 옵션은 다양하게 있지만 크게 Bilinear 쌍선형(이중 선형), Trilinear 삼선형 (삼중 선형), Anisotropic 비등방성 (이방성) 이 3가지 옵션에 대해 알아보자.
1. Bilinear (쌍선형)
적용 할 텍스쳐의 크기가 비슷한 이미지를 불러와서 적용
Bilinear 방식은 픽셀4개의 평균값으로 새로운 픽셀을 만들거나 줄이는 식으로 텍스쳐 크기를 조절하는 방식이다. 텍스쳐에서는 픽셀이아닌 텍셀이라고 하기도 하는데 여튼 게임 특정 화면 픽셀4개의 어떠한 정보가 담겨 있다면 가로,세로의 평균값을 집어 넣어 사이즈를 크게 만들거나 작게 만드는 식으로 작동하는 방식이다.
Bilinear 쌍선형 방식은 간편하고 연산량도 적지만 크기가 2배이상 변형되면 텍스쳐가 흐려지고 왜곡이 심해지는 단점을 가지고 있다.
2. Trilinear (삼선형)
적용 할 텍스쳐 크기의 상위사이즈와 하위 사이즈를 이용해 적용
앞서 말한 Bilinear의 방식의 품질을 좀더 보완해서 만든 방식이 Trilinear 삼선형 방식이다. 먼저 게임에서텍스쳐는 이미 다양한 사이즈로 여러개가 저장되어 있다. 간단하게 우리가 3D 게임을 한다고 생각해 볼때 캐릭터 기준으로 아주 멀~리 보이는 산이나 물체에 고품질 원본 텍스쳐를 적용 하는 것은 최적화나 용량등을 생각했을 때 굉장히 멍청한 짓이다.
그래서 원본 사이즈가 만약 가로 세로1000px 이미지가 있다면 가로 세로 500,250,125.. 이런식으로 같은 텍스쳐를 사이즈만 작게 만든 텍스쳐를 여러개 미리 저장하고 거리가 멀어짐에 따라 점점 더 작은 텍스쳐를 적용하는 방법을 밉매핑이라고도 한다.
만약 화면에서 특정물체가 400px 정도의 크기를 가진다면 Bilinear 쌍선형 방식은 가로 세로 500크기의 텍스쳐 사이즈를 바꾼다. 근데 만약 그 크기가 300으로 줄어든다면 가로 세로 250의 텍스쳐를 가져와서 사이즈를 바꾸기 때문에 다른 텍스쳐를 가져오는 경계선이 뚜렷하게 보이는 단점이 있다.
하지만 Trilinear 삼선형 방식은 화면속 크기가 300이라 해도 500,250 둘다 가져와서 평균을 내는 방식으로 경계선이 사라지고 쌍선형 방식보다 좀 더 깔끔해 질 수 있다. 하지만 결국 두가지 텍스쳐를 가져와서 계산하는 방식이기 때문에 완벽한 품질은 어렵다.
3. 비등방성 필터링 (anisotropic filtering)
적용할 텍스쳐 비율에 맞춰 이미지를 잘라내어 적용 (비등방성 X(n)이 증가할 수록 잘라낼 x:y 축 비가 정해짐)
여기서 3D게임을 많이 해보신 겜돌이는 대충 눈치를 챘겠지만 앞서 설명한 Bilinear, Trilinear 방식은 게임 속 텍스쳐의 특성을 제대로 반영하지 못한다. 게임속에서 텍스쳐 사이즈가 변형되며 품질 확인이 가능한 곳은 게임 안의 도로, 바닥에서 확인이 가능하다. 바닥이나 도로같은 경우 한 텍스쳐가 반복적으로 사용되며 왜곡도 심한 곳이다. 그래서 게임을 해보면서 비등방성 필터링 옵션을 한번쯤 사용해본 유저라면 대충 바닥 품질이 좋아지는 옵션으로 알 것이다.
자 그러면 반복, 왜곡도 많은 게임속 바닥, 도로에 우리가 선을 한번 그어보자.
보통 게임에서 바닥에 선을 그어보면 한칸의 세로보다 가로가 길다. 하지만 Bilinear, Trilinear 방식은 이러한 게임속 바닥 특성과 상관 없이 가로 세로를 평등하게 줄이기 때문에 보통 가로의 데이터가 모자라 흐리게 보이는 경우가 많다.
비등방성의 사전적 의미는 물체의 물리적 성질이 방향에 따라 다른 성질을 가리킨다 라는 살짝 이해하기 어렵지만 단순하게 비대칭이라고 생각하면 될 것 같다. 비대칭, 비등방성 방식은 텍스쳐의 가로,세로 크기를 따로 조절해 보통 정사각형으로 저장된 텍스쳐가 있다면 직사각형으로 만든다.
그래서 앞서 말한 두 Bilinear, Trilinear 옵션에 비해 가로 혹은 세로가 더 작은 축에 맞춰 작아질 필요가 없기 때문에 왜곡이 심한 게임속 아주 멀리 있는 텍스쳐도 깔끔해진다. 게임 옵션에 적혀져 있는 비등방성필터링 X2, X4등 뒤에 곱하기 숫자의 의미는 가로 세로의 어떤 비율까지 조절 할 수 있는지 대한 값이다. X2라면 한축이 최대 2배까지 늘어 날 수 있고(한축이 다른 한축에 비해) X16 이면 최대 16배 차이나게 조절 해서 원경 표현이 엄청 깔끔해 질 수 있다.
정리 하자면 텍스쳐 필터링은 사이즈가 고정된 텍스쳐를 게임속에서 알맞게 표현하기 위해 사이즈를 바꿔주는 옵션인 것이고 Bilinear, Trilinear 방식은 텍스쳐 픽셀(텍셀) 4개값을 평균으로 가로,세로 비율을 유지한채로 텍스쳐의 크기를 조절하는 옵션. Anistoropic (비등방성) 방식은 게임에 좀더 적합하게 하기 위해 카메라 시점에 따라 텍스쳐의 가로, 세로를 따로 조절하는 방식으로 이해하면 될 것같다. 그래서 겜돌이들은 3D게임을 좀 더 고품질로 즐기고 싶다면 그냥 비등방성 필터링 x16으로 설정 만약 해당 설정 이후에 프레임 저하가 살짝 있다면 x8로 설정 하면된다.
현재 텍스쳐 필터링 옵션은 그래픽 옵션중에서는 성능을 가제 적게 먹고 비주얼은 엄청나게 상승시켜주는 혜자 옵션이기 때문에 요즘 출시되는 게임에는 없는 경우도 있다. 하지만 텍스쳐필터링 성능을 높여도 성능 저하가 다른 옵션에 비해 엄청나지는 않아 게임할 때 참고 바란다.
'게임 > 알고 싶다' 카테고리의 다른 글
GPU의 렌더링 파이프라인이란? (0) | 2023.01.08 |
---|---|
게임에서 화살, 총은 어떻게 동작하는걸까? (2) | 2022.12.26 |
HDR이란? (2) | 2022.12.18 |
포스트프로세싱이란? (0) | 2022.12.18 |
안티에일리어싱이란? (0) | 2022.12.18 |
댓글