게임을 들어가보면 항상 설정이 있는데
그래픽부분에 가보면 안티앨리어싱 켜키,끄기라는 탭이 거의 있다.
나는 특히 콜오브듀티를 할 때 많이 봤는데 내가 게임에 대해서 공부하지 않았을 때에는
그것이 그냥 선을 부드럽게 해주는 기능이라고 알고 있었다.
하지만 틀린 설명은 아니지만
왜 처음부터 부드럽게 나오지 않으며
어떻게 부드럽게 만드는 지에 대해서는 알지 못했다.
그래서 더 자세히 알아보았다.
우선 왜 만들어지느냐?
어떠한 것을 렌더링 할 때
알고리즘의 특성상 생기는 바람직하지 않은 아티팩트(Artifact) 중에서
특히 성가신 "재기, jaggies" 라는 형태가 나오는데
이 재기는 컴퓨터 디스플레이의 특성으로 도트를 모아 이미지를 구현하기 때문에 생긴다.
화면 해상도를 올려서 재기를 줄일 수 있지만 해상도를 무한정으로 올릴 수는 없으므로
해상도를 올릴 수 없을 때에 재기를 줄이는 처리로 조금 더 부드럽게 보이게 할 수 있는 것이다.
그렇다면 어떻게 부드럽게 보이게끔 하느냐??
즉, 인접한 도트 간의 밝기 차이를 줄이면 된다. (또는 색의 차이)
이 처리를 안티앨리어싱, Anti-aliasing 이라고 한다.
**다른 곳에서 찾아보고 왔으면 위키백과랑 정의가 다른데요? 라고 할 수 있다.
위키 백과에서는 안티앨리어싱의 정의를
높은 해상도의 신호를 낮은 해상도에서 나타낼 때 생기는 계단 현상을 최소화하는 방법이라고 써놓았다.
위에서 말했다시피 해상도를 올리면 해결되는 문제라고 했다.
위키백과에서 나온 정의도 해상도를 올릴 수 없으니까 하는 처리방법이라고 말한 것이나 마찬가지다.
즉, 같은 말이다.
인접 도트간의 밝기 차이를 줄여서 계단현상을 막을 수는 있지만
테두리가 뚜렷하게 보이지 않을 수 밖에 없다.
왜냐하면 밝기가 비슷해졌으니까.. blur 처리된 것과 같은 느낌이 날 수 밖에 없는 것이다.
빛을 표현할 때 특히 제일 많이 이용되는 듯 하다.
인접한 도트들의 밝기를 비슷하게 만든다?
음.. 양쪽의 밝기를 그라데이션효과를 주면 되는건가?
맞다.
하지만 실제로 3D 게임에서는 그라데이션 효과를 폴리곤 자체에다 일일이 적용하기는 어렵다.
그래서 다른 기법을 사용하는데
일반적으로 멀티 샘플링 기법을 사용한다.
MSAA라고 부른다.
멀티 샘플링에 대해서는 다른 글에서 다뤄보도록 하겠다.
그래도 요약하자면
안티 앨리어싱의 기술은
부드럽게 만드는 데에 목적이 있다.
인접 도트들간의 차이를 줄이는 데에 목적이 있다.
물론 해상도가 처음부터 낮다면 별 효과를 볼 수 없는 기술이기도 하다.
'Game Development, 게임개발 > 게임 수학,물리' 카테고리의 다른 글
게임물리 - 회전 (0) | 2021.09.03 |
---|---|
게임물리 - 빛의 반사 (0) | 2021.09.03 |
게임 물리 - 충돌 판정 (0) | 2021.08.27 |
게임 물리 - 원근감의 표현 (0) | 2021.08.22 |
게임 물리 - 화면스크롤 (0) | 2021.08.21 |