Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

2D 안티앨리어싱

더 보기

Godot는 3D 렌더링에서 안티앨리어싱도 지원합니다. 이에 대해서는 3D 안티앨리어싱 페이지에서 다룹니다.

소개

제한된 해상도로 인해 2D로 렌더링된 장면에는 앨리어싱 아티팩트가 나타날 수 있습니다. 이러한 아티팩트는 일반적으로 형상 모서리에 "계단" 효과의 형태로 나타나며 Line2D, Polygon2D 또는 :ref:`class_TextureProgressBar`와 같은 노드를 사용할 때 가장 눈에 띄게 나타납니다. :ref:`doc_custom_drawing_in_2d`에는 앤티앨리어싱을 지원하지 않는 메서드에 대한 앨리어싱 아티팩트도 있을 수 있습니다.

아래 예에서는 가장자리가 어떻게 고르지 않게 나타나는지 확인할 수 있습니다.

앨리어싱을 더욱 눈에 띄게 만들기 위해 가장 가까운 이웃 필터링을 사용하여 이미지를 2배 확대했습니다.

앨리어싱을 더욱 눈에 띄게 만들기 위해 가장 가까운 이웃 필터링을 사용하여 이미지를 2배 확대했습니다.

이 문제를 해결하기 위해 Godot는 2D 렌더링에서 앤티앨리어싱을 활성화하는 여러 방법을 지원합니다.

Line2D 및 사용자 정의 도면의 앤티앨리어싱 속성

이는 대부분의 경우 성능에 미치는 영향이 낮기 때문에 권장되는 방법입니다.

Line2D has an Antialiased property which you can enable in the inspector. 또한 doc_custom_drawing_in_2d`에 대한 여러 메서드는 함수 호출 시 ``true``로 설정할 수 있는 선택적 ``antialiased` 매개 변수를 지원합니다.

이러한 방법에서는 MSAA를 활성화할 필요가 없으므로 기본 성능 비용이 저렴합니다. 즉, 어느 시점에서 앤티앨리어싱된 형상을 그리지 않는 경우 영구적인 추가 비용이 없습니다.

이러한 앤티앨리어싱 방법의 단점은 추가 형상을 생성하여 작동한다는 것입니다. 프레임마다 업데이트되는 복잡한 2D 형상을 생성하는 경우 병목 현상이 발생할 수 있습니다. 또한 Polygon2D, TextureProgressBar 및 여러 사용자 정의 그리기 방법에는 앤티앨리어싱 속성이 없습니다. 이러한 노드의 경우 대신 2D 다중 샘플 앤티앨리어싱을 사용할 수 있습니다.

다중 샘플링 안티앨리어싱 (MSAA).

이 기능은 Forward+ 및 모바일 렌더러에서만 사용할 수 있으며 호환성 렌더러에서는 사용할 수 없습니다.

2D에서 MSAA를 활성화하기 전에 MSAA가 어떤 대상에서 작동하는지 이해하는 것이 중요합니다. 2D의 MSAA는 3D와 유사한 제한 사항을 따릅니다. 흐릿함을 유발하지는 않지만 적용 범위는 제한됩니다. 2D MSAA의 주요 응용 분야는 다음과 같습니다.

  • 선 및 다각형 그리기와 같은 형상 가장자리.

  • 스프라이트 가장자리 텍스처 가장자리 중 하나에 닿는 픽셀에만 해당. 이는 선형 및 최근접 필터링 모두에 적용됩니다. 이미지의 투명도를 사용하여 생성된 스프라이트 가장자리는 MSAA의 영향을 받지 않습니다.

MSAA의 단점은 가장자리에서만 작동한다는 것입니다. 이는 MSAA가 커버리지 샘플 수를 늘리지만 색상 샘플 수는 늘리지 않기 때문입니다. 그러나 색상 샘플 수가 증가하지 않았기 때문에 조각 셰이더는 여전히 각 픽셀에 대해 한 번만 실행됩니다. 결과적으로 MSAA는 어떤 방식으로든 다음 종류의 앨리어싱에 영향을 미치지 않습니다.

  • 가장 가까운 이웃 필터링된 텍스처 내에서 앨리어싱(픽셀 아트).

  • 사용자 정의 2D 셰이더로 인해 발생하는 앨리어싱.

  • Light2D를 사용할 때의 반사 앨리어싱.

  • 글꼴 렌더링의 앨리어싱.

MSAA는 Rendering > Anti Aliasing > Quality > MSAA 2D 설정 값을 변경하여 프로젝트 설정에서 활성화할 수 있습니다. MSAA 3D**가 아닌 **MSAA 2D 설정 값을 변경하는 것이 중요합니다. 이는 완전히 별개의 설정이기 때문입니다.

앤티앨리어싱 없음(왼쪽)과 다양한 MSAA 수준(오른쪽) 간의 비교. 왼쪽 상단 모서리에는 Line2D 노드가 포함되어 있고, 오른쪽 상단 모서리에는 2개의 TextureProgressBar 노드가 포함되어 있습니다. 하단에는 8개의 픽셀 아트 스프라이트가 포함되어 있으며 그 중 4개는 가장자리에 닿고(녹색 배경) 그 중 4개는 가장자리에 닿지 않습니다(Godot 로고):

../../_images/antialiasing_msaa_2x.webp ../../_images/antialiasing_msaa_4x.webp ../../_images/antialiasing_msaa_8x.webp