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.
Checking the stable version of the documentation...
해상도 스케일링
왜 해상도 스케일링을 사용합니까?
현대 게임의 렌더링 복잡성이 계속 증가함에 따라 특히 저사양 GPU에서는 기본 해상도로 렌더링하는 것이 더 이상 실행 가능한 것은 아닙니다.
해상도 스케일링은 씬의 GPU 요구 사항에 영향을 미치는 가장 직접적인 방법 중 하나입니다. CPU가 아닌 GPU에 의해 병목 현상이 발생하는 장면에서는 해상도 스케일을 줄이면 성능이 크게 향상될 수 있습니다. 해상도 스케일링은 성능과 전력 예산이 제한된 모바일 GPU에서 특히 중요합니다.
해상도 스케일링은 중요한 도구이지만, 해상도 스케일링은 저가형 하드웨어의 그래픽 설정 감소를 대체하기 위한 것이 아니라는 점을 기억하십시오. 게임 내 메뉴에 해상도 규모와 그래픽 설정을 모두 노출하는 것을 고려해보세요.
더 보기
이 문서 외에 여러가지 Godot 데모 프로젝트들도 살펴보면 좋습니다.
참고
해상도 스케일링은 현재 2D 렌더링에 사용할 수 없지만 viewport 스트레치 모드를 사용하여 시뮬레이션할 수 있습니다. 자세한 내용은 :ref:`doc_multiple_resolutions`를 참조하세요.
해상도 스케일링 옵션
고급 프로젝트 설정' 렌더링 > 3D 크기 조정 섹션에서 3D 해상도 크기 조정을 위한 여러 옵션을 찾을 수 있습니다.
스케일링 모드
쌍선형: 표준 이중선형 필터링(기본값). 이는 현재 렌더러가 FSR 1.0 또는 FSR 2.2를 지원하지 않는 경우 대체 수단으로 사용됩니다. 모든 렌더러에서 사용 가능합니다.
FSR 1.0: AMD FidelityFX 초해상도 1.0. 이중선형 스케일링에 비해 속도는 느리지만 품질은 더 높습니다. 매우 느린 GPU에서는 FSR1의 비용이 너무 비싸서 이중선형 스케일링을 통해 사용할 가치가 없을 수 있습니다. Forward+ 렌더러를 사용하는 경우에만 사용할 수 있습니다.
FSR 2.2: AMD FidelityFX 초해상도 2.2(Godot 4.2 이후). FSR1 및 이중선형 스케일링에 비해 가장 느리지만 품질은 훨씬 더 높습니다. 느린 GPU에서는 FSR2의 비용이 너무 비싸서 이중선형 스케일링이나 FSR1에 비해 사용할 가치가 없을 수 있습니다. FSR2 성능을 FSR1과 일치시키려면 더 낮은 해상도 배율을 사용해야 합니다. Forward+ 렌더러를 사용하는 경우에만 사용할 수 있습니다.
다음은 기본 해상도, 50% resolution 스케일을 사용한 이중선형 스케일링, FSR1 및 50% resolution 스케일을 사용한 FSR2 스케일링 간의 비교 이미지입니다.
FSR1 업스케일링은 다른 형태의 앤티앨리어싱과 결합될 때 가장 잘 작동합니다. FXAA는 시간 정보를 추가하지 않고 이미지에 더 많은 흐릿함을 유발하므로 이 경우 TAA(시간적 안티앨리어싱) 또는 MSAA(다중 샘플 안티앨리어싱)를 사용하는 것이 좋습니다.
반면에 FSR2는 자체적인 시간적 안티앨리어싱을 제공합니다. 즉, 결과 이미지가 부드럽게 보이도록 하기 위해 다른 앤티앨리어싱 방법을 활성화할 필요가 없습니다. FSR2의 임시 안티앨리어싱이 우선순위를 갖기 때문에 FSR2를 3D 스케일링 방법으로 사용하는 경우 TAA 사용 프로젝트 설정은 무시됩니다.
다음은 동일한 비교이지만 모든 이미지에 4× MSAA가 활성화된 경우입니다.
4× MSAA가 활성화되면 FSR1의 에지 업스케일링이 훨씬 더 확실해집니다. 그러나 FSR2는 이미 시간적 안티앨리어싱을 수행하므로 MSAA를 활성화해도 많은 이점을 얻지 못합니다.
렌더링
렌더링 > 3D 크기 조정 > 크기 조정 설정은 해상도 크기를 조정합니다. ``1.0``는 3D 렌더링 해상도가 2D 렌더링 해상도와 일치하는 전체 해상도 규모를 나타냅니다. 아래 해상도 스케일 ``1.0``를 사용하면 최종 이미지가 더 흐려지고 앨리어싱이 더 많이 발생하는 대신 렌더링 속도를 높일 수 있습니다.
렌더링 배율은 Viewport 노드의 scaling_3d_scale 속성을 변경하여 런타임에 조정할 수 있습니다.
위 ``1.0``의 해상도 스케일은 SSAA(슈퍼샘플 안티앨리어싱)에 사용될 수 있습니다. 이는 매우 높은 성능 비용으로 앤티앨리어싱을 제공하며 대부분의 사용 사례에서는 권장되지 않습니다. 자세한 내용은 :ref:`doc_3d_antialiasing`를 참조하세요.
아래 표에는 일반적인 화면 해상도, 결과 3D 렌더링 해상도 및 렌더링 배율 옵션에 따라 각 프레임을 렌더링해야 하는 메가픽셀 수가 나열되어 있습니다. 행은 각 테이블에서 가장 빠른 것부터 가장 느린 것 순으로 정렬됩니다.
참고
해상도 스케일은 축당 기준으로 정의됩니다. 예를 들어, 이는 해상도 배율을 절반으로 줄이면 프레임당 렌더링된 메가픽셀 수가 2가 아닌 4배로 줄어든다는 것을 의미합니다. 따라서 매우 낮거나 매우 높은 해상도 배율은 예상보다 성능에 더 큰 영향을 미칠 수 있습니다.
1920×1080(풀 HD)
원격 인스펙터. |
3D 렌더링 해상도 |
프레임당 렌더링된 메가픽셀 |
|---|---|---|
|
960×540 |
0.52MPix |
|
1286×723 |
0.93MPix |
|
1440×810 |
1.17 MPix |
|
1632×918 |
1.50MPix |
|
1920×1080 |
2.07 MPix |
``1.33``(슈퍼샘플링) |
2553×1436 |
3.67MPix |
``1.50``(슈퍼샘플링) |
2880×1620 |
4.67MPix |
``2.00``(슈퍼샘플링) |
3840×2160 |
8.29MPix |
2560×1440(QHD)
원격 인스펙터. |
3D 렌더링 해상도 |
프레임당 렌더링된 메가픽셀 |
|---|---|---|
|
1280×720 |
0.92MPix |
|
1715×964 |
1.65MPix |
|
1920×1080 |
2.07MPix |
|
2176×1224 |
2.66MPix |
|
2560×1440 |
3.69MPix |
``1.33``(슈퍼샘플링) |
3404×1915 |
6.52MPix |
``1.50``(슈퍼샘플링) |
3840×2160 |
8.29MPix |
``2.00``(슈퍼샘플링) |
5120×2880 |
14.75MPix |
3840×2160(울트라 HD "4K")
원격 인스펙터. |
3D 렌더링 해상도 |
프레임당 렌더링된 메가픽셀 |
|---|---|---|
|
1920×1080 |
2.07MPix |
|
2572×1447 |
3.72MPix |
|
2880×1620 |
4.67MPix |
|
3264×1836 |
5.99MPix |
|
3840×2160 |
8.29MPix |
``1.33``(슈퍼샘플링) |
5107×2872 |
14.67MPix |
``1.50``(슈퍼샘플링) |
5760×3240 |
18.66MPix |
``2.00``(슈퍼샘플링) |
7680×4320 |
33.18MPix |
FSR 선명도
이 기능은 Forward+ 렌더러에서만 사용할 수 있으며 모바일 또는 호환성 렌더러에서는 사용할 수 없습니다.
FSR1 또는 FSR2 스케일링 모드를 사용하는 경우 렌더링 > 스케일링 3D > FSR 선명도 고급 프로젝트 설정을 사용하여 선명도를 제어할 수 있습니다.
대부분의 다른 선명도 슬라이더에 비해 강도가 반전됩니다. 낮은 값은 최종 이미지가 더 선명한 반면, 높은 값은 선명 필터의 영향을 줄입니다. ``0.0``는 가장 날카롭고, ``2.0``는 가장 덜 날카롭습니다. ``0.2``의 기본값은 원본 이미지의 선명도 유지와 과도한 선명도로 인한 추가 앨리어싱 방지 간의 균형을 제공합니다.
참고
기본 해상도로 렌더링할 때 샤프닝을 사용하려는 경우, Godot는 현재 업스케일링 구성요소(EASU)와 독립적으로 FSR1(RCAS)의 샤프닝 구성요소를 사용하는 것을 허용하지 않습니다.
해결 방법으로 3D 렌더링 배율을 ``0.99``로 설정하고 배율 모드를 **FSR 1.0**으로 설정한 다음 필요에 따라 FSR 선명도를 조정할 수 있습니다. 이를 통해 거의 기본 해상도로 렌더링하는 동안 FSR1을 사용할 수 있습니다.
또는 GPU 헤드룸이 충분한 경우 3D 렌더링 배율을 ``1.0``로 설정하여 배율 모드를 FSR 2.2**로 설정할 수 있습니다. 이는 또한 고품질의 시간적 앤티앨리어싱을 제공합니다. 이 경우 **FSR 선명도 설정은 계속 작동합니다.
밉맵
이 기능은 Forward+ 및 모바일 렌더러에서만 사용할 수 있으며 호환성 렌더러에서는 사용할 수 없습니다.
Godot는 3D 해상도 스케일이 1.0 아래로 설정되면 자동으로 네거티브 텍스처 밉맵 바이어스를 사용합니다. 이를 통해 세부 텍스처의 거친 모양을 희생하면서 텍스처 세부 사항을 더 잘 보존할 수 있습니다.
텍스처 LOD 바이어스는 현재 2D 및 3D 렌더링에 동일한 방식으로 영향을 미칩니다. 그러나 이는 밉맵이 활성화된 텍스처에만 영향을 미친다는 점을 명심하세요. 2D에 사용되는 텍스처에는 기본적으로 밉맵이 활성화되어 있지 않습니다. 즉, 가져오기 도크에서 2D 텍스처에 대한 밉맵을 활성화하지 않으면 3D 렌더링만 영향을 받습니다.
텍스처 밉맵 편향을 결정하는 데 사용되는 공식은 다음과 같습니다. log2f(min(scaling_3d_scale, 1.0)) + custom_texture_mipmap_bias
일부 앤티앨리어싱 방법으로 추가된 흐릿함을 방지하기 위해 Godot는 FXAA가 활성화되면 -0.25 오프셋을 추가하고 TAA가 활성화되면 -0.5 오프셋을 추가합니다. 두 가지가 동시에 활성화되면 -0.75 오프셋이 사용됩니다. 이 밉맵 바이어스 오프셋은 해상도 스케일링 오프셋 전에 적용되므로 해상도 스케일에 따라 변경되지 않습니다.
텍스처 LOD 바이어스는 렌더링 > 텍스처 > 기본 필터 > 텍스처 밉맵 바이어스 고급 프로젝트 설정을 조정하여 수동으로 변경할 수 있습니다. texture_mipmap_bias 속성을 조정하여 런타임 시 :ref:`Viewports <class_Viewport>`에서 변경할 수도 있습니다.
경고
특정 시나리오에서는 밉맵 LOD 바이어스를 수동으로 조정하는 것이 유용할 수 있지만 최종 이미지가 움직이는 동안 거칠게 보이지 않도록 주의 깊게 수행해야 합니다.
음수 밉맵 LOD 바이어스는 고해상도 밉을 더 멀리 샘플링해야 하기 때문에 성능을 저하시킬 수도 있습니다. 수동 오프셋의 권장 값은 -0.5``에서 ``0.0 사이입니다.
양수 밉맵 LOD 편향은 밉맵 텍스처가 의도한 것보다 더 흐릿하게 보이도록 만듭니다. 이렇게 하면 성능이 약간 향상될 수 있지만 시각적 품질 손실은 일반적으로 성능 향상만큼 가치가 없으므로 권장되지 않습니다.
아래 예에서는 밉맵 LOD 바이어스가 ``-1.0``이고 비등방성 필터링이 비활성화되어 차이를 더 눈에 띄게 만드는 극단적인 사례를 보여줍니다.
문제 해결
해상도 규모를 줄여도 성능이 크게 향상되지 않습니다.
해상도 척도를 ``0.5``와 같은 값으로 낮췄을 때 성능이 크게 향상되지 않으면 성능 병목 현상이 씬의 다른 곳에 있다는 의미일 가능성이 높습니다. 예를 들어, 씬에는 그리기 호출이 너무 많아 CPU 병목 현상이 발생할 수 있습니다. 마찬가지로, GPU가 처리하기에는 너무 많은 그래픽 효과(예: SDFGI, SSAO 또는 SSR)가 활성화되어 있을 수 있습니다.
자세한 정보는 성능 튜토리얼을 참조하세요.