이미지 가져오기

왜 이미지를 가져오나요?

Godot 3+에서, 이미지 파일은 더 이상 고유 리소스가 아니고 반드시 가져와야 합니다. 그 이유는 이것이 가져올 수 있는 이미지 파일의 많은 양의 구성 매개변수 때문입니다.

이 간단한 튜토리얼에서는 매개변수가 무엇이며 어떻게 사용하는 것이 최선인지를 설명하겠습니다.

텍스처 가져오기

Godot에서 기본 값 행동은 이미지를 텍스처로 가져오는 것입니다. 텍스처는 비디오 메모리에 저장되며 직접 접근할 수 없습니다. 이것이 효율적으로 그리는 것입니다.

가져오기 설정은 거대합니다:

../../../_images/image_import1.png

Detect 3D(3D 감지)

이 설정은 Godot가 (기본 값에 따라 2D로 가져온) 텍스처를 3D에 사용한다는 것을 인식하도록 만듭니다. 이 경우, 설정이 변경되고 텍스처 플래그는 3D에 맞게 변합니다 (mipmaps, filter 그리고 repeat가 활성화되고 compression은 VRAM으로 변합니다). 텍스처도 자동으로 다시 가져옵니다.

압축

이미지는 게임의 거대한 애셋들 중 하나 입니다. 이를 효율적으로 다루기 위해, 압축이 필요합니다. Godot는 여러 압축 방식을 제공하며, 사용 사례에 따라 다릅니다.

압축 모드

  • VRAM 압축: 이것은 3D 애셋을 위한 가장 일반적인 압축 모드입니다. 디스크의 파일은 줄어들고 비디오 메모리 사용량도 상당히 줄어듭니다. 3D의 경우, 원치 않은 결과물이 나올 수 있습니다.
  • 무손실 압축: 이것은 2D 애셋을 위한 가장 일반적인 압축입니다. 어떤 인위적 처리없이 애셋을 보여주고, 디스크 압축은 괜찮습니다. VRAM보다 상당히 많은 양의 비디오 메모리를 사용할 것입니다.
  • 손실 압축: 많은 양의 2D 애셋을 가진 게임에게, 손실 압축은 좋은 선택일 수 있습니다. 인위적 처리를 갖지만, VRAM보다 더 약하면서 파일 크기는 거의 무손실의 10분의 1이 됩니다.
  • 압축하지 않음: (raw float와 같이) 압축할 수 없는 형식에만 유용합니다.

이 표에서, 4개의 설정 각각은 이점과 손실을 설명합니다 ( good = 좋음, bad = 나쁨):

  압축하지 않음 무손실 압축 (PNG) 손실 압축 (WebP) VRAM 압축
설명 순수 화소로 저장됨 PNG로 저장됨 WebP로 저장됨 플랫폼에 따라, S3TC/BC,PVRTC/ETC로 저장됨
디스크에 저장됨 bad 거대함 regular 작음 good 매우 작음 regular 작음
메모리 사용량 bad 거대함 bad 거대함 bad 거대함 good 작음
성능 regular 보통 regular 보통 regular 보통 good 빠름
품질 손실 good 없음 good 없음 regular 약간 있음 bad 보통
불러오기 시간 regular 보통 bad 느림 bad 느림 good 빠름

HDR 모드

Godot는 높은 동적 범위 텍스처 (.HDR 또는 .EXR)를 지원합니다. 대개 높은 동적 범위 equirectangular 파노라마 하늘에 유용하며 Godot 2.x의 큐브맵을 대신하기도 합니다 (검색해보면 쉽게 찾을 수 있습니다). 최신 PC는 BC6H VRAM 형식을 지원하지만, 지원하지 않는 형식도 많이 있습니다.

Godot가 텍스처의 종류와의 완전한 호환성을 보장하고 싶다면, "Force RGBE" 설정을 활성화하세요.

노말맵

텍스처를 노말맵으로 사용할 때, 빨강과 초록 채널만 필요합니다. 주어진 표준 텍스처 압축 알고리즘은 인위 구조를 만드는데 노말맵에서는 좋게 보이지는 않습니다, RGTC 압축 형식이 이 데이터에 가장 적합합니다. 이 설정을 "Enabled"로 하면 Godot는 이미지를 RGTC 압축 형식으로 가져올 것입니다. 기본적으로, "Detect"로 설정하는데, 텍스처가 노말맵으로 사용된다면 자동으로 "Enabled"로 바뀌며 다시 가져온다는 것을 뜻합니다.

Note that RGTC compression affects the resulting normal map image. You will have to adjust custom shaders that use the normal map to take this into account.

플래그

사용 사례에 따라, 이미지를 텍스처로 가져올 때 쓸 수 있는 많은 설정이 있습니다.

Repeat(반복)

이 설정은 3D에 가장 일반적으로 사용하며, 그렇기에 기본적으로 2D에서는 꺼져있습니다. 0,0 - 1,1 범위를 넘는 UV 좌표를 "loop"로 설정합니다.

반복은 선택에 따라 거울 모드로 설정할 수 있습니다.

Filter(필터)

픽셀이 화면 화소보다 커지게 되면, 이 설정은 선형 보간을 활성화합니다. 그 결과는 더 부드러운 (덜 각진) 텍스처가 됩니다. 이 설정은 보통은 2D와 3D에 사용될 수 있지만, 픽셀 퍼펙트 게임을 만들 때는 보통 비활성화합니다.

Mipmaps(밉맵)

픽셀이 화면보다 더 작아질 때, 밉맵이 등장합니다. 텍스처가 줄어들 때, 거친 효과를 줄여줍니다. 명심하세요, 오래된 하드웨어 (GLES2, 주로 모바일)에서, 밉맵을 사용하려면 몇 가지 요구 사항이 있습니다:

  • 텍스처 가로와 세로는 반드시 2의 제곱이어야 합니다
  • Repeat가 활성화되어 있어야 합니다

스마트폰 게임과 애플리케이션을 만들 때, 완전한 호환성과 밉맵이 필요하다면 위의 내용을 명심하세요.

3D 작업에서, 밉맵은 켜져 있어야 성능이 향상됩니다 (더 작은 버전의 텍스처는 멀리 있는 객체에 사용됩니다).

Anisotropic(비등방성)

텍스처가 (바닥과 같이) 화면과 거의 평행할 때, 이 설정은 흐려지는 것을 줄여서 더 세세하게 표현하도록 만듭니다.

SRGB

Godot는 3D를 렌더링 할 때 선형 colorspace를 사용합니다. 반사율(albedo)이나 세부 채널에 맵핑된 텍스처는 색상이 올바르게 보이기 위해 이 설정을 켜져 있어야 합니다. "Detect" 모드로 설정할 때, 텍스처는 반사율 채널을 사용할 때 SRGB로 표시될 것입니다.

Process(가공)

이미지를 텍스처로 가져올 때, 일부 특수 가공을 적용할 수 있습니다.

Fix Alpha Border(알파 테두리 수정)

이렇게 하면 같은 주변 색상의 픽셀을 넣어서 테두리를 투명에서 불투명으로 만듭니다. 포토샵 등에서 이미지를 가져올 때 테두리 효과를 완화하는데 도움을 줍니다.

../../../_images/fixedborder.png

특정한 값이 필요하지 않다면, 기본 값으로 두는 것이 좋습니다.

Premultiplied Alpha(미리 곱하기 알파)

어두워진 테두리를 고치는 법으로 Premultiplied Alpha를 사용하는 것입니다. 이 설정을 키면, 텍스처는 이 형식으로 변환될 것입니다. 이 텍스처가 필요한 캔버스 항목에 PREMULT ALPHA 블렌드 모드를 사용하는 머티리얼을 만들어야 합니다.

HDR as sRGB(sRGB로서의 HDR)

몇 몇 HDR 파일은 손상되고 sRGB 색상 데이터를 갖고 있습니다. 사용하지 않는 것이 좋지만, 최악의 경우에서, 이 설정을 켜면 좋게 보이게 만듭니다.

Invert Color(색상 반전)

이미지의 색상을 거꾸로합니다. 예를 들어, 외부 프로그램으로 생성된 높이 맵을 Spatial Material에 사용하기 위해 깊이 맵으로 변환할 때 유용하게 쓸 수 있습니다.