이미지 가져오기

지원되는 이미지 포맷

Godot는 다음의 이미지 포맷을 지원합니다:

  • BMP (.bmp) - 16-bit per pixel 이미지는 지원되지 않습니다. 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel 이미지만이 지원됩니다.

  • DirectDraw Surface (.dds) - 만약 텍스처에 밉맵이 있다면 곧바로 로딩됩니다. 커스텀 밉맵을 사용하는 것과 같은 효과를 구현하는데 쓸 수 있습니다.

  • OpenEXR (.exr) - Supports HDR (highly recommended for panorama skies).

  • Radiance HDR (.hdr) - Supports HDR (highly recommended for panorama skies).

  • JPEG (.jpg, .jpeg) - 포맷의 한계로 투명한 이미지를 지원하지 않습니다.

  • PNG (.png) - 정확도가 채널당 8 bit로 제한됩니다(따라서 HDR 이미지는 지원하지 않습니다).

  • Truevision Targa (.tga)

  • SVG (.svg, .svgz) - SVG는 가져올 때 NanoSVG 로 래스터화 됩니다. 복잡한 벡터가 제대로 렌더링되지 않을 수 있으므로 지원은 제한적입니다. 복잡한 벡터는 보통 Inkscape를 이용해 PNG로 렌더링 하는 것이 더 낫습니다. 이 작업은 command-line interface 을 이용해 자동화 할 수 있습니다.

  • WebP (.webp) - WebP 파일은 투명도를 지원하고 손실 압축과 무손실 압축을 모두 지원합니다. 정확도는 채널당 8 bit로 제한됩니다.

참고

만약 특정 모듈을 비활성화 한 채로 Godot 에디터를 직접 컴파일했다면, 몇몇 포맷을 사용할 수 없을 수 있습니다.

텍스처 가져오기

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

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

../../_images/image_import1.png

3D 감지(Detect 3D)

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

압축

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

압축 모드

  • VRAM 압축 가장 일반적인 3D 애셋 압축 방법입니다. 디스크의 공간을 줄일 수 있고 VRAM 사용량도 상당히 줄어듭니다(보통 4에서 6 정도). 2D에 사용하면 눈에 띄는 변형이 발생하므로 사용을 피하십시오.

  • 무손실 압축: 가장 일반적인 2D 애셋 압축 방법입니다. 변형 없이 애셋을 보여주고, 디스크 압축률 또한 훌륭합니다. VRAM 압축 방식보다 상당히 많은 양의 VRAM을 사용할 것입니다.

  • 손실 압축: 큰 2D 애셋를 압축할 때 좋은 선택지입니다. 약간의 변형이 있지만 VRAM보다는 적고 무손실 압축보다 파일의 크기도 수 배는 작습니다. 이 방식으로는 VRAM 사용량을 줄일 수 없어 무손실 압축 및 압축되지 않은 애셋과 사용량이 같습니다.

  • 압축하지 않음: raw float 이미지처럼 압축할 수 없는 포맷에만 유용합니다.

아래의 표에 상기 4가지 설정 모두의 장점과 단점이 정리되어 있습니다( good = 최고, bad = 최악):

압축하지 않음

무손실 압축

손실 압축

VRAM 압축

설명

압축되지 않은 픽셀로 저장됨

무손실 WebP / 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"로 바뀌며 다시 가져온다는 것을 뜻합니다.

RGTC 압축이 노멀맵 결과 이미지에 영향을 끼친다는 것을 명심하십시오. 이 점을 고려해 노멀맵을 사용하는 커스텀 쉐이더를 조정해줘야 합니다.

참고

Godot requires the normal map to use the X+, Y+ and Z+ coordinates, this is known as OpenGL style. If you've imported a material made to be used with another engine it may be DirectX style, in which case the normal map needs to be converted so its Y axis is flipped.

노멀맵에 관한 추가적인 정보(유명 엔진 등의 좌표 순서가 정리된 테이블 등)는 이 곳 에서 찾을 수 있습니다.

플래그

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

Repeat(반복)

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

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

Filter(필터)

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

Mipmaps(밉맵)

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

  • 텍스처 가로와 세로는 반드시 2의 제곱이어야 합니다

  • Repeat가 활성화되어 있어야 합니다

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

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

Anisotropic(비등방성)

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

sRGB

Godot는 3D를 렌더링 할 때 선형 colorspace를 사용합니다. 따라서 albedo나 detail channel로 매핑된 텍스처는 이 설정을 켜야 색상이 올바르게 표시됩니다. Detect 모드로 설정시 albedo 채널을 사용할 때 텍스처가 SRGB로 표시됩니다.

경고

텍스처가 sRGB가 활성화 되었을 때 수정될 것이므로 2D와 3D 텍스처 둘 다 2D나 3D에서 잘못된 색상을 표시하게 됩니다.

파일시스템에 텍스처의 복사본을 만들고 하나에만 sRGB를 활성화 하면 이 문제를 우회할 수 있습니다. sRGB가 활성화 된 파일은 3D에, sRGB가 비활성화 된 파일은 2D에 사용하면 됩니다.

Process(가공)

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

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

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

../../_images/fixedborder.png

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

Premultiplied Alpha(미리 곱하기 알파)

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

HDR as sRGB(sRGB로서의 HDR)

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

Invert Color(색상 반전)

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

Svg

스케일

이 옵션은 SVG 파일에만 적용됩니다. SVG 이미지의 크기를 조절합니다. 기본값 (1.0) 은 가져온 SVG 파일이 원본의 크기를 갖도록 합니다.