Minecraft RTX PBR 텍스처 가이드

올린 이 Andrew Burnes, Johnny Costello, Kelsey Blanton on 2020년 12월 11일 금요일 | 추천 스토리 가이드 Minecraft with RTX 레이 트레이싱

소개

Bedrock Minecraft (Windows 10용 Minecraft 라고도 함)는 최첨단 패스 트레이싱 레이 트레이싱으로 업그레이드 되어 게이머와 월드 빌더가 놀라운 시각적 효과와 몰입감 넘치는 환경을 만들 수 있게 되었습니다. Window 10용 Minecraft를 위한 무료 1.16.200 업데이트에서 새로운 레이 트레이싱 효과를 극대화하기 위해 추가 표면 디테일과 빛 반사 기능 등을 제공하는 물리 기반 텍스처도 도입되었습니다. RTX의 더욱 선명한 시각 경험을 위해 크리에이터가 직접 안개 설정도 할 수 있게 되었습니다.

레이 트레이싱 꺼짐
(PBR 적용 텍스처)

레이 트레이싱 켜짐
(동일한 PBR 적용된 텍스처)

 

본 가이드에서는 자신만의 Minecraft PBR 텍스처를 만들거나 기존 텍스처 및 텍스처 팩을 업그레이드하는 단계를 안내하여 Bedrock Minecraft의 모든 이점을 활용하는 레이 트레이싱 기술이 적용된 Minecraft 월드를 만나게 됩니다.

이에 더해 실제와 같은 고화질의 블록으로 이루어진 월드를 구축하기 위한 고해상도 텍스처를 제작하는 방법에 대해 선보이고 프리미엄 Substance Painter 애플리케이션을 활용한 쉽고 간단한 대체 워크플로우를 제공합니다.

마지막으로, 사용자 지정 PBR 강화 리소스팩을 사용해 안개 정의를 사용자 선호도에 따라 설정하는 시스템을 설명하겠습니다.

월드를 전환하는 방법에 대한 가이드는 여기에서 확인하세요. 그리고 최적의 게이밍 경험을 보장하려면Windows10용 Minecraft를 최신 Game Ready Driver에서 다운받으세요. Minecraft의 레이 트레이싱에 대한 더 궁금하다면 Mojang Studios FAQ를 확인해보세요.

Minecraft 텍스처 개요

바닐라 Minecraft(Bedrock)의 텍스처 파일 대부분은 2가지 맵인 기본 색상 맵과 불투명도 맵만을 사용합니다. 기본 색상 맵은 텍스처의 RGB 채널에 저장되어 있습니다. 이 맵은 대부분의 사람들이 Minecraft 텍스처를 언급할 때 떠올리는 텍스처 맵 입니다.

몇몇 텍스처는 추가 불투명도 맵도 가지고 있으며, 이 맵은 알파 채널(.TGA 텍스처 파일)에 저장되거나 내부 저장(.PNG 텍스처 파일)됩니다. Minecraft RTX에서는 불투명도 맵을 사용하기 위해 알파 채널의 .TGA 파일을 사용하게 될 것입니다. 이후에 자세한 내용을 다루겠습니다.

신규 PBR 시스템은 이 2가지 맵과 5가지 추가 맵을 사용하여 텍스처를 통해 실제와 같은 재질의 표면을 표현합니다.

  • 금속성 맵(금속성이라고도 함)
  • 자체발광 맵
  • 거칠기 맵
  • 노말 맵
  • 높이 맵

자산 흐름

다음은 다양한 PBR 텍스처 맵이 어떻게 게임상의 오브젝트에 연결되어 있는지를 나타냅니다.

3개의 텍스처 파일(.PNG)로 >저장된> 6개의 PBR 텍스처 맵은 >각> 블록/아이템/오브젝트에 >대한> 텍스처 세트로 정의

현재는 6개의 각 PBR 맵이 3개의 텍스처 파일 채널로 저장된 후 게임에 사용됩니다. 맵 저장을 통해 전체 파일 크기와 신규 텍스처 세트 파일의 개수를 줄일 수 있습니다. 텍스처 세트는 JSON 파일로 정의해야 합니다.

예를 들어 "gold_ore" 블록의 PBR 버전은 다음과 같습니다.

  • 텍스처 세트 JSON = gold_ore.texture_set.json
    • 최대 3개 레이어에 대한 파일 이름이나 값을 통일
    • JSON 스키마는 텍스처 세트 JSON 스키마 섹션에서 탐색합니다.
  • 텍스처 파일 1 = gold_ore.PNG
    • 적색, 녹색, 청색(RGB) 채널 = 기본 색상 맵
    • 알파(A) 채널 = 없음. 금광석 블록은 완전히 불투명하게 설계되었기 때문에 이 텍스처 세트에 사용되지 않습니다.
    • 참고: 불투명도 맵을 사용하기 위한 텍스처 세트의 경우 이 알파 채널에 저장할 수 있습니다. 불투명도 맵 섹션을 참고하세요.
  • 텍스처 파일 2 = gold_ore_mer.PNG
    • 적색 채널 = 금속성 맵(그레이스케일)
    • 녹색 채널 = 자체발광 맵(그레이스케일)
    • 청색 채널 = 거칠기 맵(그레이스케일)
    • 알파(A) 채널 = 없음. 여기서는 사용되지 않습니다.
    • 접미사인 "*_mer"는 금속성, 자체발광, 거칠기 맵이 RGB 채널에 각각 들어가 있다는 것을 나타냅니다.
  • 텍스처 파일 3 (옵션1) = gold_ore_normal.PNG
    • RGB 채널 = 노말 맵
    • 참고: 높이 맵 레이어와 동시에 사용할 수 없습니다.
    • 알파(A) 채널 = 없음. 여기서는 사용되지 않습니다.
  • 텍스처 파일 3 (옵션2) = gold_ore_heightmap.png
    • 참고: 노말 맵 레이어와 동시에 사용할 수 없습니다. 신규 PBR 텍스처 맵 섹션에서 높이 맵 하위섹션을 참고하세요.

NVIDIA 및 파트너 리소스 팩

14개의 무료 레이 트레이싱 월드 Minecraft  에는 확인 가능한 크리에이터 제작 PBR 리소스 팩이 포함되어 있습니다. 이러한 팩은 아래에 제시된 물리 기반 렌더링 파이프라인을 따르는 텍스처로 업그레이드하고 최대 성능 및 디테일을 내도록 최적화되어 있습니다.

이러한 월드 및 해당 리소스 팩과 더불어 NVIDIA는 별도로 4개의 리소스 팩을 출시하고 있습니다. HD Decorative 리소스 팩HD Foundational 리소스 팩 두 가지는 NVIDIA에서 제작한 것입니다. 하지만 현재 베타 버전의 한계로 인해 이 두 리소스 팩을 동시에 활성화하면 안 됩니다. 동시에 활성화하면 리소스 팩 폴백 현상이 나타나 다른 텍스처의 해상도가 줄어들게 됩니다. 다른 두 개의 팩 Muddle RTX 및 RazzleCore RTX는 Razzleberries에서 제작했습니다.

이 네 가지 팩을 사용하면 PBR 기능을 포함하여 고해상도 텍스처(1024x1024)와 저해상도 텍스처(8x8 또는 16x16)를 모두 즐길 수 있습니다.

또한, 새로운 MinecraftPBR 텍스처의 가능성을 시연하기 위해 NVIDIA는 Razzleberries와 함께 대규모 스미스소니언식 박물관인 RTX 엑스포 박물관 월드를 제작했습니다. 여기서는 Minecraft RTX를 통한 모든 향상 기능, 이익 및 개선 사항을 보여줍니다. 이 월드를 거닐면서 기존의 래스터화와 효과로는 얻을 수 없었던 정밀도 및 정확성을 PBR 텍스처가 레이 트레이싱과 함께 어우러져서 어떻게 구현했는지 확인할 수 있습니다.

그리고 사용자 고유의 텍스처를 만들 경우 기존 텍스처를 겹쳐 써서 워크플로우와 이터레이션 속도를 높여 이 월드에서 빠르고 쉽게 테스트할 수 있습니다.

아울러, NVIDIA는 몇몇 세계 최고의 Minecraft 사용자와 협력하여 위에서 아래로 패스 트레이싱 기능 및 PBR 텍스처링 기능이 담긴 14개의 무료 Creator Worlds를 개발했습니다. 이를 통해 사용자 고유의 월드 및 텍스처에 대한 아이디어를 얻을 수 있습니다.  여기의 다운로드 링크를 따라가거나, 게임 내 Minecraft Marketplace에서 'RTX'를 검색하여 다운로드하세요.

이 환상적인 쇼케이스가 여러분께 PBR 텍스처와 레이 트레이싱이 적용된 월드에 대한 영감을 줄 것이라 희망합니다.

필요한 도구

고유한 PBR 텍스처 세트를 만들려면 사진 편집/디지털 페인팅 애플리케이션이 필요합니다. 몇 가지 좋은 옵션은 다음과 같습니다.

  • Adobe Photoshop
  • GIMP
  • Paint.net
  • Pixlr.com
  • GraphicsGale 등

텍스처 세트 JSON을 쓰려면 빠른 플레인텍스트 파일 편집기가 필요하며, 사용자 OS에 있는 기본 텍스트 편집기도 작동하지만 구문 색상을 지원하는 서브라임 텍스트Sublime Text를 대신 사용해도 좋습니다. 

본 가이드는 특별히 Photoshop 워크플로우로 진행되지만, 이 컨셉은 다른 디지털 페인팅 애플리케이션에도 적용됩니다.

불투명도 맵

유리같은 블록 위에 입히는 알파채널 하에 저장되는 색상에 특히 주의하세요. 이런 색상은 완전히 투명하게 가려지더라도 색이 그대로 적용됩니다. 이런 부분을 완화하기 위해, 색상이 완전히 하얀색인지 확인하고 이미지를 32비트/픽셀.TGA 파일로 저장해 PNG 이미지 전문가가 갑자기 놀라는 일이 없도록 일관성을 유지하세요.

참고: 초기 Minecraft RTX 배포 버전에서 고객은 RTX 적용하거나 미적용한 경우 모두 동일한 텍스처를 사용합니다. 즉, RTX 적용에 맞춰진 불투명도 값은 RTX 미적용 시 지나치게 투명하게 보일 수 있습니다. 이에 대한 균형을 잡기 위해 RTX가 적용된 게임은 텍스처 알파 채널(0.5 - 1) 범위의 상단 절반만을 사용하지만, 이 범위를 게임 내 불투명도 전체 범위로 매핑하여 모든 기능이 제대로 발휘되게 합니다. RTX 미적용 시, 알파 채널의 전체 범위가 게임 내 전체 범위의 불투명도로 매핑됩니다.

예시:

텍스처의 알파 채널 값이 0(검은색)이라면

RTX가 적용된 게임상의 텍스처 불투명도 = 0(완전히 투명)

RTX가 미적용된 게임상의 텍스처 불투명도 = 0(완전히 투명)
 

텍스처 알파 채널 값이 0.5(중간 회색)라면

RTX가 적용된 게임상의 텍스처 불투명도 = 0(여전히 완전히 투명)

RTX가 미적용된 게임상의 텍스처 불투명도 = 0.5(50% 불투명)

 

텍스처 알파 채널 값이 0.75(밝은 회색)라면

RTX가 적용된 게임상의 텍스처 불투명도 = 0.5(50% 불투명)

RTX가 미적용된 게임상의 텍스처 불투명도 = 0.75(75% 불투명)

 

텍스처 알파 채널 값이 1(흰색)이라면

RTX가 적용된 게임상의 텍스처 불투명도 = 1(완전히 불투명)

RTX가 미적용된 게임상의 텍스처 불투명도 = 1(완전히 불투명)

텍스처 세트 JSON 스키마

'모든 텍스처에 대해 PBR을 향상시키려면 PBR 설정을 정의하는 JSON 파일로 먼저 시작합니다.

JSON스키마 정의는 다음과 같습니다.

  • 포멧 버전: 이 JSON가 작성된 스키마 버전
  • minecraft:texture_set: PBR 텍스처의 재질 정의
    • 색상: 사용자의 기본 색상 레이어
      • 이 기본색상 레이어는 파일 확장자를 포함하거나 포함하지 않은, 따옴표 처리된 이미지 파일 이름 참조(PNG, TGA, JPG 파일 가능)로 표시할 수 있습니다.
      • 또한, 전체 텍스트를 균일한 색상으로 설정하기 위해 꺽쇠괄호 [ ] 안에서 콤마로 나눠 나열한 적색, 녹색, 파란색, 알파의 3개 혹은 4개 값으로도 표시할 수도 있습니다. 이런 값의 범위는 0에서 255 사이입니다.
      • # 해시태그로 시작하는 ARGB의 16진수 값의 열입니다.
      • 이 레이어는 반드시 필요하며, 이것이 없는 텍스처는 분홍/검정 격자무늬가 됩니다.
    • 금속_자체발광_거칠기: 텍스처에는 금속, 자체발광, 거칠기 정보가 포함됩니다.
      • 이 레이어는 파일 확장자를 포함하거나 포함하지 않은, 따옴표 처리된 이미지 파일 이름 참조(PNG, TGA, JPG 파일 가능)로 표시할 수 있습니다.
      • 또한 텍스처를 통일되게 설정하기 위해 꺽쇠괄호 [ ] 안에서 콤마로 나눠 나열한 금속, 자체발광, 거칠기의 3개 값으로도 표시할 수도 있습니다. 이런 값은 0에서 255 사이입니다.
      • # 해시태그로 시작하는 금속, 자체발광, 거칠기 16진수 값의 열입니다.
      • 이 레이어가 없으면 텍스처가 무광택 재질로 보이게 됩니다.
    • 노멀 맵: 재질에는 텍스처에 대한 픽셀당 노멀 맵이 포함됩니다.
      • 파일 확장자를 포함하거나 포함하지 않은, 따옴표 처리된 파일 이름 참조(PNG, TGA, JPG 파일 가능)로만 표시됩니다.
      • 높이 맵과 동시에 사용할 수 없습니다.
    • 높이 맵: 재질에는 텍스처에 대한 픽셀당 높이 맵이 포함됩니다.
      • 파일 확장자를 포함하거나 포함하지 않은, 따옴표 처리된 파일 이름 참조(PNG, TGA, JPG 파일 가능)로만 표시됩니다.
      • 노말 맵과 동시에 사용할 수 없습니다.

파일 이름을 만드는 경우, 확장자가 없는 원래 텍스처의 이름을 따서 .texture_set.json 앞에 붙이세요. 예를 들어 gold_ore.png 의 경우 gold_ore.texture_set.json가 됩니다. 그러면 JSON 파일이 동일한 폴더로 이동합니다.

다음은 텍스처 세트 스키마를 따르는 JSON파일의 예로 각 정의에 대해 바른 값 사용을 보여줍니다.

{

        "format_version": "1.16.100",

        "minecraft:texture_set": {

        "color": [118, 185, 0, 255],

        "metalness_emissive_roughness": “#0008FF”,

        "normal": "an_example_normal"

    }

}

각각의 텍스처 세트 속성에 대해서 아래에서 더욱 자세히 다루어 보겠습니다.

신규 PBR 텍스처 맵

PBR 시스템 상에서는 텍스처 세트마다 모든 PBR 맵을 사용할 필요가 없습니다. 하지만 모든 PBR 맵을 사용할 경우 최고의 시각적 효과를 얻을 수 있습니다.

  • 금속성 맵 - 텍스처 픽셀의 금속성 수준:
    • V값이 0(검은색)일 경우 비금속성(양털, 목재, 플라스틱, 먼지, 풀 등)
    • 값이 1(흰색)일 경우 완벽한 금속성(금, 철, 구리 등)
    • 그레이스케일 값이 0과 1사이로 사용될 수도 있습니다. 검은색이나 흰색 이외의 값일 때도 작동은 하지만, PBR 렌더링에서는 보통 맞지 않습니다. 잘 만들어진 금속 맵은 보통 검은색과 흰색 픽셀만으로 이루어집니다.

위의 예시에서 블록은 모든 표면에 균일한 거칠기를 가지고 있지만 금속성 맵을 사용함으로써 금속 픽셀(흰색)과 비금속 픽셀 (검은색)을 조절할 수 있습니다. 금속성이 적용된 픽셀은 금처럼 보이지만 비금속성이 적용된 픽셀은 빛나고 노란 플라스틱처럼 보입니다.

  • 자체발광 맵 - 텍스처 상 픽셀의 빛 발산 수준:
    • 값이 0(검은색)일 경우 빛이 발산되지 않음
    • 값이 1(흰색)일 경우 강렬한 빛이 발산됨
    • 0과 1 사이의 그레이스케일 값도 사용 가능
    • 빛의 색상은 기본 색상 맵 상의 픽셀로 결정됨
  • 거칠기 맵 - 텍스처 상 픽셀의 거칠기 수준(촉감):
    • 값이 0(검은색)일 경우 매우 매끈함(유리, 광택 있는 돌 등)
    • 값이 1(흰색)일 경우 매우 거침(대부분의 먼지, 나무껍질, 양털 등)
    • 0과 1 사이의 중간값도 사용 가능

위의 예시에서 블록은 모든 표면에 균일한 금속성을 가지고 있지만 거칠기 맵을 사용함으로써 매우 거친 픽셀(흰색)과 매우 매끄러운 픽셀(검은색), 그리고 그 사이에 위치한 특정 픽셀(회색)을 조정할 수 있습니다. 픽셀이 거칠지 않고 매끄러울수록 빛나는 파란 원석과 같고 거친 픽셀은 거친 회색 돌처럼 보입니다.

  • 일반 맵 - 텍스처 상 픽셀의 울퉁불퉁한 정도:
    • ○ 일반 맵은 텍스처의 3색 채널(RGB)을 사용하여 빛이 텍스처에 부딪혔을 때 어떻게 움직이는지를 변경할 수 있습니다. 이렇게 함으로써 3D 메쉬 표면에서 돌출되거나 안으로 들어가 보이는 것처럼 표면 형태를 꾸밀 수 있습니다.
  • RGB 값(128, 128, 255)은 빛이 비췄을 때 픽셀이 튀어나오지도 들어가지도 않는 것을 의미합니다. 이는 3D 메쉬 표면의 높이로 나타나게 됩니다. 의심스러운 경우, 이 색상 기본값을 일반 맵에 사용하거나 색상을 모두 사용하지 않고 파일 크기로 저장합니다.
  • 노멀 맵 사용에 대한 확신이 없을 경우, 이 색상 기본값(위 참조) 외의 RGB 값을 수동으로 페인팅하지 않습니다. 노멀 맵은 일반적으로 특정 소프트웨어 애플리케이션을 사용할 경우 다른 높이 정보를 토대로 자동 생성됩니다. 더 많은 정보는 본 문서의 뒷부분에 나와 있습니다.

높이 맵 - 픽셀 높이와 깊이를 위해 노멀 맵을 높이 맵 대신 사용해도 됩니다.

높이 맵은 제한이 있으며, 바닐라 Minecraft 16x16픽셀 텍스처와 같은 픽셀화된 텍스처 세트에서만 사용해야 합니다. 픽셀화되지 않은 텍스처를 페인팅할 경우 높이 맵 대신에 노멀 맵 사용을 고려하십시오.

  • 높이 맵은 빛이 텍스처에 부딪혔을 때 움직이는 방식을 변경하기 위해 텍스처에서 1 색상 채널 (그레이스케일)을 사용합니다.
  • R 채널 값 = 픽셀이 돌출되거나 내부로 들어간 정도
    • 값이 1일 경우 픽셀이 돌출되어 보임
    • 값이 0일 경우 픽셀이 내부로 들어간 것처럼 보임
    • 값이 0.5일 경우 표면상 변화 없음

텍스처 세트 정의

우선 가장 먼저, 몇가지 예를 텍스처링하기 전에 gold_ore.texture_set.json텍스처 세트 JSON으로 금광석 블록에 대한 PBR 텍스처 세트부터 살펴보겠습니다.

{

    "format_version": "1.16.100",

    "minecraft:texture_set": {

        "color": "gold_ore",

        "metalness_emissive_roughness": "gold_ore_mer",

        "normal": "gold_ore_normal"

    }

}

기본 색상과 불투명도 텍스처 파일 작성

텍스처 세트 정의

우선 가장 먼저, 몇가지 예를 텍스처링하기 전에 gold_ore.texture_set.json텍스처 세트 JSON으로 금광석 블록에 대한 PBR 텍스처 세트부터 살펴보겠습니다.{
    "format_version": "1.16.200",
    "minecraft:texture_set": {
        "color": "gold_ore",
        "metalness_emissive_roughness": "gold_ore_mer",
        "normal": "gold_ore_normal"
    }
}

기본 색상과 불투명도 텍스처 파일 작성

우선적으로 해야 하는 제일 중요한 일은 맞춤형 기본 색상과 불투명도 맵을 제작하는 것입니다.

1. 먼저 바닐라 Minecraft 텍스처를 앱에서 열거나 2단계로 넘어갑니다.

2. 원하는 텍스처 해상도로 새 문서를 만듭니다(대부분의 바닐라 Minecraft 텍스처는 16x16픽셀). 또한, 픽셀 밀도로는 72픽셀/인치가 권장됩니다.

3. 기본 색상 및 불투명도 맵을 위한 작업 레이어를 만듭니다(필요한 경우). 레이어 상에 만들고 싶은 대상을 그리고 편집합니다. 하기 예시에는 기본 색상 맵을 편집하기 위해 다중 레이어를 사용했습니다(더 많은 금!).

4. 기본 색상 및 불투명도 맵 레이어를 원하는 모양으로 만들었다면 오브젝트의 Photoshop 문서를 텍스처 세트의 이름을 사용하여 저장하는 것이 좋습니다. 이 예시에서 이 파일은 "gold_ore.PSD"로 저장되었습니다. 다음으로 텍스처 파일을 게임상에 사용 가능한 파일로 저장해야 합니다.

참고: 대부분의 게임 오브젝트의 경우 불투명도 맵 상의 투명한 픽셀은 기본 색상 맵에서 반드시 검은색으로 페인팅해야 합니다(예: 나뭇잎). 하지만 게임상에서 올바르게 나타나기 위해서 기본 색상 맵에서 불투명도 맵 상의 투명한 픽셀을 흰색으로 페인팅해야 하는 몇몇 예외가 있습니다(예: 철로). 몇 번 시도해 봐야 할 수도 있습니다.

5. (선택 사항, 투명 오브젝트의 경우에만) - 불투명도 맵을 복제하고, 이후 복제품을 모두 병합하여 단일 레이어를 만든 후 복사합니다(Ctrl+C).

6. (선택 사항, 투명 오브젝트의 경우에만) - 채널 탭에서 새로운 알파 채널을 생성하고 병합된 불투명도 맵을 이 레이어에 붙여넣습니다(Ctrl+V). RGB 채널 왼쪽의 작은 회색 상자를 클릭하여 RGB 채널을 다시 보이게 합니다.

이제 기본 색상 맵이 RGB 채널에 저장되고 불투명도 맵이 알파 채널에 저장되었습니다.

7. (선택 사항, 투명 오브젝트의 경우에만) - 레이어 탭으로 돌아가서 모든 불투명도 맵 레이어를 숨깁니다. 기본 색상 맵 레이어만 보여야 합니다.

8. PSD 파일로 다시 저장합니다.

9. 다른 이름으로 저장 명령을 사용하여 게임에서 사용 가능한 .PNG 텍스처 파일을 저장합니다.

불투명도에 대한 참고: 오브젝트를 투명하게 설정한 경우 이 단계에서 32비트/픽셀 .TGA 파일로 저장하고 알파 채널의 불투명도 맵을 사용합니다. 상단의 불투명도 맵 섹션을 참고하세요.

파일명 지정에 대한 참고: 이 단계에서 파일 이름 지정은 중요합니다! 이 .PNG 파일은 변경하고자 하는 게임 오브젝트와 동일한 이름이어야 합니다. 이 예시에서 이 파일은 "gold_ore.PNG"로 저장되었습니다.

10. 완전한 PBR 텍스처 세트를 위한 첫 3개의 텍스처 파일을 만들었습니다.

금속성, 자체발광, 거칠기 텍스처 파일 작성

이제 금속성, 자체발광, 거칠기 PBR 맵으로 구성된 두 번째 PBR 텍스처 파일을 만들려고 합니다.

1. (선택 사항)먼저 Photoshop 또는 유사 앱에서 바닐라 Minecraft 텍스처를 열거나 다음 단계로 넘어갑니다.

2. 첫 번째 텍스처 파일(기본 색상 및 불투명도 맵)과 동일한 텍스처 해상도로 새 문서를 만듭니다. (대부분의 바닐라 Minecraft 텍스처는 16x16픽셀). 다시 한 번 72픽셀/인치가 픽셀 밀도로 권장됩니다.

3. 금속성, 자체발광, 거칠기 맵을 위한 작업 레이어를 만듭니다. 레이어 상에 만들고 싶은 대상을 그리고 편집합니다.

참고: 이 맵은 중간값만 사용해서 그려야 합니다.

하기 예시에서는 원하는 거칠기 맵을 만들기 위해 다중 레이어를 사용했습니다.

4. 각각의 맵 유형에 맞는 레이어를 레이어 그룹에 배치해야 합니다. 이는 이후 몇 단계를 진행하는 데 있어서 중요합니다.

5. 금속성 레이어 그룹을 마우스 오른쪽 버튼으로 클릭하고 "혼합 옵션"을 선택합니다.

6. 녹색(G) 채널과 청색(B) 채널을 체크 해제합니다.

7. "확인"을 클릭하여 금속성 레이어 그룹의 혼합 옵션 창을 닫습니다.

8. 자체발광 레이어 그룹을 마우스 오른쪽 버튼으로 클릭하고 "혼합 옵션"을 선택합니다.

9. 적색(R) 채널과 청색(B) 채널을 체크 해제합니다.

10. "확인"을 클릭하여 자체발광 레이어 그룹의 혼합 옵션 창을 닫습니다.

11. 거칠기 레이어 그룹을 마우스 오른쪽 버튼으로 클릭하고 "혼합 옵션"을 선택합니다.

12. 적색(R) 채널과 녹색(G) 채널을 체크 해제합니다.

13. "확인"을 클릭하여 거칠기 레이어 그룹의 혼합 옵션 창을 닫습니다.

14. 금속성, 자체발광, 거칠기 맵 레이어를 원하는 모양으로 만들었다면 오브젝트의 텍스처 세트 이름에 *_mer 접미사를 붙여서 Photoshop 문서를 저장하는 것이 좋습니다.

이 예시에서 이 파일은 "gold_ore_mer.PSD"로 저장되었습니다. 다음으로 텍스처 파일을 게임상에 사용 가능한 파일로 저장해야 합니다.

15. 다른 이름으로 저장 명령을 사용하여 게임에서 사용 가능한 .PNG 텍스처 파일을 저장합니다.

참고: 다시 말씀드리지만, 이 단계에서 파일 이름 지정이 중요합니다. 이 .PNG 파일은 변경하고자 하는 게임 오브젝트와 동일한 이름이어야 하고 *_mer 접미사가 붙어야 합니다. 이 예시에서 파일은 "gold_ore_mer.PNG"로 저장되었습니다.

16. 이제 완전한 PBR 텍스처 세트를 위한 두 번째 3개의 텍스처 파일이 완성되었습니다.

일반 텍스처 파일 작성

일반 맵은 일반적으로 특별한 도구를 사용하여 만들어집니다. 다양한 전문 소프트웨어도 있고 무료로 사용 가능한 멋진 대안도 있습니다.

벽돌담의 PBR 텍스처 세트(왼쪽)와 일반 맵(오른쪽) 예시:

  1. 선호하는 도구 또는 워크플로우를 사용하여 첫 텍스처 파일(기본 색상 및 불투명도 맵)과 동일한 해상도로 일반 맵을 작성합니다. 다시 한번 72픽셀/인치가 픽셀 밀도로 권장됩니다.

  2. 다른 이름으로 저장 명령을 사용하여 게임에서 사용 가능한 .PNG 텍스처 파일을 저장합니다.
    참고: 다시 말씀드리지만, 이 단계에서 파일 이름 지정이 중요합니다. 이 .PNG 파일은 변경하고자 하는 게임 오브젝트와 동일한 이름이어야 하고 *_normal 접미사가 붙어야 합니다. 이 예시에서 이 파일은 "gold_ore_normal.PNG"로 저장되었습니다.

    일반 맵 작성이 익숙하지 않다면 언제라도 건너뛸 수 있으며 "빈" 일반 맵 텍스처에 (128, 128, 255) RGB 색을 채우고 .PNG 파일로 저장합니다.

    대안으로, 예시인 "gold_ore"는 픽셀화된 텍스처이기 때문에 표면 디테일을 제작하기 위해 높이 맵 옵션을 동일하게 사용할 수 있습니다. 이 예시의 파일 이름은 여전히 "gold_ore_normal.TGA"이지만 텍스처 채널에 저장되어 있는 정보는 다를 수 있습니다. 더 많은 정보는 상단의 신규 PBR 텍스처 맵 섹션의 높이 맵 하위 섹션을 참고하세요.

  3. 모두 끝났습니다! 이제 완전한 PBR 텍스처 세트를 위한 세 번째 및 마지막 텍스처 파일을 만들었습니다.

대체 워크플로우: Photoshop의 이미지 자산 기능 생성 사용

각각의 3개의 PBR 텍스처 파일에 대해 3개의 Photoshop .PSD 파일을 만드는 대신에 1개의 .PSD 파일을 사용하여 Photoshop의 파일 메뉴에 있는 생성 → 이미지 자산 기능을 활용하세요.

각각의 PBR 텍스처 파일에 대한 레이어 그룹을 생성하고 올바른 파일 이름과 형식(.png)으로 이름을 지정하면 변경할 때마다 파일이 자동으로 저장됩니다(처음 .PSD 파일로 저장한 후).

자세한 내용은 여기 에서 확인할 수 있습니다..

참고: 이 기능은 .TGA 파일을 추출하지 못하기 때문에 투명한 텍스처 세트에 필요한 알파 채널이 있는 텍스처 파일로는 저장할 수 없습니다.

플립 북 텍스처/움직이는 오브젝트를 위한 규칙

Minecraft RTX Beta에서 움직이는 물체(바다 랜턴, 불, 용암 등)은 플립 북 텍스처를 활용하며 다른 방법으로 다뤄야 합니다. 현재 이러한 움직이는 물체에는 PBR 기능이 지원되지 않습니다. 최종 배포 버전에서 Minecraft RTX는 위의 단계를 사용하여 더 높은 수준의 디테일로 변경하여 이러한 플립 북 텍스처를 지원할 것입니다.

완벽하게 반사하는 재질을 만들기 위한 규칙

금속 및 거칠기와 같은 PBR 맵을 레이 트레이싱과 함께 사용하면 빛나는 플라스틱, 매끈한 금속, 광나는 돌과 같은 매우 반사율이 높은 재질을 만들 수 있습니다. 이러한 오브젝트는 모두 높은 수준의 반사율을 지니게 됩니다.

하지만 거울처럼 완벽하게 반사하는 오브젝트를 위해, 완벽한 반사를 구현하는 PBR 맵을 구성하고 싶을 것입니다. 꽉 찬 검은색 거칠기 맵(0.0)과 꽉 찬 흰색(1.0) 금속성 맵을 사용하면 게임에서 이러한 재질을 완벽하게 표현할 수 있습니다. 즉 레이 트레이싱 코드는 재질이 추가적 디테일을 포함하지 않고 주변 환경을 완벽히 반사하기 때문에 계산 과정을 간소화할 수 있다는 것입니다.

Adobe로 Substance의 PBR 텍스처를 제작하는 방법

Substance Painter 앱 을사용할 수 있다면 고해상도의 PBR 텍스처 세트를 더 직관적인 방법으로 제작할 수 있습니다. 이 소프트웨어는 여러분의 모든 PBR 텍스처 세트 맵을 실시간으로 메쉬 기반 지오메트리로 보여줍니다. 이를 통해 게임 실행, 파일 이동, 채널 수정 없이 텍스처 맵을 조정할 수 있습니다.

1. 애플리케이션을 실행하고 파일 메뉴에서 새 프로젝트를 선택합니다.

2. 템플릿 = Unreal Engine 4 - 자동적으로 다양한 애플리케이션 및 뷰어 설정을 지정합니다. 다른 옵션을 사용하거나 자신만의 템플릿을 만들 수도 있습니다!

3. 파일 → 선택 - 텍스처에 표시하고 페인팅할 메쉬를 선택할 수 있습니다. Minecraft RTX의 경우 1m x 1m의 육면체 큐브 메쉬(세분화 없음)를 사용하여 블록에 매핑 후 게임에서 텍스처가 어떻게 보이는지에 대한 정확한 미리보기를 확인할 수 있습니다. .FBX 메쉬 포맷을 사용하도록 권장됩니다.

4. 문서 해상도 - 원하는 텍스처 해상도입니다. 참고: 이 설정은 향후에 언제든지 텍스처 손상 없이 변경할 수 있습니다. HD 텍스처의 경우 1024로 작업하도록 권장됩니다. 최소 픽셀화로 텍스처에 대한 높은 수준의 디테일을 표현할 수 있습니다. 또한 이 앱은 대부분의 PC 사양에서 무리없이 빠르게 동작하며, HD 텍스처는 게임에서 또렷하게 보일 것입니다.

만약 바닐라 Minecraft에서만 텍스처 작업을 해왔다면 해상도 선택에서 여러분의 해상도인 16픽셀 x 16픽셀을 선택할 수 없다는 것을 알게 될 것입니다(가장 낮은 해상도는 128). 하지만 128x128(또는 그 이상)의 텍스처를 언제든지 작성하고 내보낼 수 있으며 이후 Photoshop과 같은 이미지 편집 애플리케이션에서 해상도를 낮출 수 있습니다.

5. 일반 맵 형식 Format = DirectX(기본값으로 유지)

6. 조각별 접선 공간 컴퓨팅 = True(기본값으로 유지)

7. 추가 - (선택 사항) 기존에 제작한 텍스처를 참고용으로 불러올 수 있습니다. 바닐라 Minecraft의 텍스처를 HD 버전으로 대체했다면 레퍼런스로 바닐라 텍스처를 불러오는 것이 도움이 될 수 있습니다. 참고: 이 불러오기 단계 역시 향후 언제든지 수행할 수 있습니다. 이 예시에서 바닐라 "iron_block" 텍스처 파일은 레퍼런스로 사용하기 위해 새로운 프로젝트를 생성한 경우 불러올 수 있습니다.

8. "확인"을 클릭합니다. 이 애플리케이션은 여러분이 제작하고 있는 것을 새 프로젝트로 열어야 하며 이렇게 나타날 것입니다.

9. 이 단계에서 자체발광 맵을 텍스처 세트 목록에 추가하는 것이 좋습니다. 텍스처 세트에서 방사를 사용하시지 않더라도 걱정할 필요가 없습니다. 검은색(0.0) 으로 기본 설정되며 어떤 정보도 손상되지 않습니다.
참고: 반투명 텍스처 세트를 제작하실 예정이시면 불투명도 맵 역시 동일한 방법으로 텍스처 세트 목록에 추가할 수 있습니다.

10. (선택 사항) 다음으로 기본 색상 슬롯에 텍스처 레퍼런스를 새로운 채우기 레이어로 추가합니다. 불러들인 레퍼런스 텍스처는 프로젝트 제목 아래에 선반에서 찾을 수 있습니다.

레이어가 작성되면 이중선형 필터링으로 자동 설정되고, 이를 통해 흐릿한 바닐라 Minecraft 텍스처와 같은 픽셀화된 텍스처를 만들 수 있습니다. 수정하려면 레이어의 필터링을 근사값으로 설정하면 됩니다. 하지만 픽셀화된 텍스처를 사용하지 않는다면 레이어 필터링을 이중선형 HQ 기본 설정으로 두면 됩니다.

여기서부터 레퍼런스 레이어를 거칠기 최대(1.0), 금속성 없음(0.0), 방사 없음(검은색: 0, 0, 0)으로 설정하는 것이 좋습니다. 이를 통해 Painter에 출력되는 레퍼런스 텍스처가 바닐라 Minecraft와 최대한 유사하게 보일 것입니다.

참고: 프로젝트 생성 시 레퍼런스 텍스처 또는 다른 리소스를 불러오지 않았을 경우 선반 위의 리소스 불러오기 버튼을 사용하여 언제든지 불러올 수 있습니다.

11. 이제 프로젝트를 저장할 시간입니다. Painter 프로젝트를 교체하고자 하는 텍스처 세트가 적용될 게임 오브젝트의 이름으로 지정하는 것이 좋습니다. 이 예시에서 이 프로젝트 파일은 "iron_block.SPP"로 저장되었습니다. 이러한 방식으로 프로젝트 이름을 지정하는 것이 이후 텍스처 세트를 더 쉽게 내보낼 수 있게 합니다.

12. 여기서부터 모든 PBR 맵이 포함된 텍스처 세트를 보기 편한 방식으로 제작할 수 있습니다.

이 예시에서 (하위 레이어를 약간 조정하여) 새로운 채우기 레이어가 추가되었고, 이를 통해 고해상도의 어두운 철 재질이 만들어집니다.

13. 다음으로 홈 형상의 디테일이 추가된 새로운 채우기 레이어가 블록의 표면을 돋보이게 합니다.

14. 마지막으로 다른 채우기 레이어를 통해 홈 형상부 코너에 어느 정도의 질감을 추가하고 표면 전체에 무작위로 스크래치를 넣습니다.

15. 다시 저장해야 합니다.

16.
이제 Painter 상에서 텍스처 전체가 근사해 보이며, 이제 텍스처를 내보내야 합니다.
    
    파일 → 텍스처 내보내기를 선택하여 내보내기 하위 창을 엽니다.

17.
이런 방식으로 새로운 내보내기 프리셋 구성을 만들어서 게임 빌드에 사용할 수 있는 텍스처 세트를 설정대로 내보낼 수 있습니다.

각 내보내기 맵의 접두사 "$project"는 프로젝트의 이름에 따라서 내보낼 텍스처 파일 이름에 적용됩니다. 이를 통해 프로젝트 이름을 텍스처 세트가 사용될 게임 오브젝트로 지정할 경우 내보낸 모든 텍스처는 추가 이름 변경 없이 게임에 바로 사용할 수 있습니다.

18. 내보내기 프리셋 설정을 완료했다면 "구성" 필드에서 프리셋을 선택한 후 권장 설정을 사용하세요.

위치 - 작업 중인 리소스 팩을 위한 텍스처의 위치가 됩니다. 이를 통해 Painter에서 내보내진 텍스처가 게임 구동 시 사용하는 동일한 폴더에 즉각적으로 나타나고 업데이트되기 때문에 편리합니다(게임에서 활성화된 리소스 팩을 가지고 있는 것으로 가정).

PNG - 이 설정으로 파일이 게임에서 사용될 수 있고 가능한 한 작고 효율적으로 유지됩니다.

텍스처 세트 해상도 - 내보낼 텍스처의 크기입니다. 이 설정은 프로젝트의 해상도와는 무관합니다. 따라서 프로젝트를 특정 해상도로 진행하더라도 그 후 파일을 다른 해상도로 내보낼 수 있습니다. 권장되는 HD 텍스처 세트는 1024x1024입니다.

참고: 상기의 예시는 완전히 불투명한 텍스처 세트입니다. 텍스처 세트 목록의 불투명도 맵을 사용하여 투명도를 변경하려는 경우 알파 채널에 저장된 불투명도 맵과 기본 색상 맵을(.PNG 파일 아님) targa(.TGA) 파일로 내보내야 합니다.

19. 프로젝트를 다시 저장하세요! 그러면 내보내기 설정도 저장되며 이를 통해 이후 반복되는 텍스처 세트 작업 속도를 높일 수 있습니다.

20.모두 끝났습니다! Minecraft RTX를 위한 나만의 첫 HD PBR 텍스처 세트를 제작하셨습니다! 기존 섹션인 리소스 팩 설정게임에서 텍스처를 테스트하는 방법 을 참조하여 여러분의 새 텍스처가 게임에서 어떻게 나타나는지에 대한 지침을 확인하세요.

크레디트:
모든 텍스처는 3D 디지털 재질을 제작하는 데 선도적인 소프트웨어 솔루션인 "Substance"를 통해 만들어졌습니다.

https://www.substance3d.com/

@Substance3d
#MadeWithSubstance
#CreateWithSubstance

사용자별 안개 설정하기

PBR 강화 기능으로 텍스처를 더 아름답게 만드는 것 외에도 PBR 강화 리소스 팩은 사용자별 안개 정의가 가능해 새로운 안개 스택에 적용할 수 있습니다. 이 안개 스택은 낮은 스택에서 높은 스택 순서로 정렬됩니다.

  • H하드코딩된 엔진 기본값
  • biomes_clinet.json 내의 “기본” 오브젝트에서 데이터 기본값 설정
  • biomes_client.json에서 바이옴(Biome)별 설정
  • /fog Command

biomes_client.json 와 /fog 명령 모두는 리소스 팩의 “안개” 폴더와 함께 JSON에서 정의된 ‘안개 정의’를 보여줍니다.

안개 정의

리소스 팩의 “안개” 폴더에 있는 JSON 파일 하나 하나는 각각의 안개 정의입니다. 예를 들면 다음과 같습니다.

{
    "format_version": "1.16.2100",
    "minecraft:fog_settings": {
        "description": { "identifier": "nvidia:example_fog" },
        "distance": {
            "air": {
                "fog_start": 0.92,
                "fog_end": 1.0,
                "fog_color": "#ABD2FF",
                "render_distance_type": "render"
            }
        },
        "volumetric": {
            "max_density": {
                "air": {
                    "max_density": 0.1,
                    "max_density_height": 56,
                    "zero_density_height": 70
                }
            },
            "media_coefficients": {
                "air": {
                    "scattering": [ 0.02, 0.02, 0.02 ],
                    "absorption": [ 0.0, 0.0, 0.0 ]
                }
            }
        }
    }
}

안개 정의에 대한 스키마

  • format_version: 이 JSON이 작성된 스키마 버전.
  • minecraft:fog_settings: 안개 정의를 위한 항목
    • 설명
      • 식별자: 콜론 앞에 네임스페이스가 접두어로 붙여진 따옴표로 묶인 고유 이름. 고유 식별자는 biomes_client.json과 /fog 명령에서와 같이 안개 정의를 참조하는 데 사용됩니다.
    • 거리: 플레이어가 카메라에서 특정 거리 이상을 볼 수 없도록 제한하는 거리 안개(distance fog)를 설정하는 데 영향을 주는 선택적 오브젝트. 한 개 이상의 선택적, 열거형 오브젝트 그룹이 포함됩니다.
      • 공기: 플레이어의 카메라가 공기 중에 있는 경우
      • 날씨: 플레이어의 카메라가 활동적인 날씨(예: 비나 눈) 속에서 공기 중에 있는 경우
      • 수중: 플레이어의 카메라가 수중에 위치한 경우
      • 용암: 플레이어의 카메라가 용암 속에 위치한 경우
      • 용암_저항성: “불 저항성” 버프의 효과를 받으며 플레이어의 카메라가 용암 속에 위치한 경우
      • 각각의 열거형 오브젝트는 다음과 같은 밀도와 높이 값을 갖습니다.
        • for_start: 안개가 진해지기 시작하는 거리 (단위나 퍼센티지)
        • fog_end: 안개가 완전히 불투명해진 거리 (단위나 퍼센티지)
        • render_distance_type: 고정되있거나 렌더링
          • 고정: 거리값은 단위이며 플레이어의 카메라에서 블록으로 적용됩니다.
          • 렌더링: 거리값은 0.0 과 1.0 사이의 퍼센티지로 표시되며 고객의 렌더링 거리 설정에 곱해집니다.
        • fog_color: 안개의 색은 0에서 255 사이의 범위로 꺽쇠괄호 [ ] 안에 있는 3개의 값, 혹은 따옴표 안에서 파운드 사인 다음에 나오는 RGB의 16진수 값입니다.
    • 체적: 빛이 블록을 통과할 때 계산되는 안개 밀도를 설정하는 데 영향을 주는 선택적 오브젝트.
      • 밀도: 높이 기반 안개를 설정하는 선택적 오브젝트. 안개 이상의 선택적, 열거형 오브젝트 그룹이 포함됩니다.
        • 공기: 플레이어의 카메라가 공중에 있는 경우
        • 날씨: 플레이어의 카메라가 활동적인 날씨 (예: 비나 눈) 속에서 공중에 있는 경우
        • 수중: 플레이어의 카메라가 수중에 위치한 경우
        • 용암: 플레이어의 카메라가 용암 속에 위치한 경우
        • 용암_저항성: “불 저항성” 버프의 효과를 받으며 플레이어의 카메라가 용암 속에 위치한 경우
        • 각각의 열거형 오브젝트는 다음과 같은 밀도와 높이 값을 갖습니다.
          • max_density: 안개 밀도를 곱하는 분수값. 0은 안개가 완전히 없는 경우이고 1은 완전히 불투명한 안개입니다.
          • 균일성: 불리언(boolean) 값: 거짓값은 열거된 중간매체의 깊이를 기준으로 안개 밀도를 측정하고 참값은 zero_density_height 와 max_density_height 값을 제외시키고 안개 높이를 균일하게 분산시킵니다.
          • zero_density_height: 안개의 밀도가 높아지기 시작하는 블록의 높이. 균일성이 참일 경우 제외됩니다.
          • max_density_height: 안개의 밀도가 더이상 높아지지 않는 블록의 높이. 균일성이 참일 경우 제외됩니다.
      • media_coefficients: 광선이 다양한 매체를 통과하면서 밀도 안개로 인해 빛이 분산되고 굴절되는 방법을 설정하는 데 포함되는 선택적 오브젝트. 하나 이상의 선택적, 열거형 오브젝트 그룹:
        • 공기: 빛이 공기를 통과하는 경우에 사용됨
        • 물: 공기가 물을 통과하는 경우에 사용됨
        • 구름: 빛이 구름을 통과하는 경우에 사용됨
        • 각각 열거된 오브젝트의 계수 설정은 다음과 같습니다.
          • 산란: 열거한 매체를 통과하는 빛을 퍼지게 하기 위해 꺽쇠괄호 [ ] 안에 나열한 적색, 녹색, 파란색의 3가지 값. 이 값의 범위는 0.0과 1.0 사이입니다. 혹은 파운드 사인 다음에 따옴표 안에 넣은 16진수 RGB 값일 수도 있습니다.

흡수: 열거한 매체를 통과하는 빛을 흡수시키기 위해 꺽쇠괄호 [ ] 안에 나열한 적색, 녹색, 파란색의 3가지 값. 이 값의 범위는 0.0과 1.0 사이입니다. 혹은 파운드 사인 다음에 따옴표 안에 넣은 16진수 RGB 값일 수도 있습니다.

바이옴(Biomes)

액티브 안개 스택의 바이옴 레이어는 플레이어의 위치 주변의 평균적인 바이옴 설정이다. biomes_client.json에서 각각의 바이옴은 특정 바이옴 안개 설정을 위한 고유 식별자의 안개 정의를 참조할 수 있습니다.

안개 명령

/fog 명령은 각 플레이어의 액티브 안개 스택에 적용되는 안개 정의를 추가로 관리할 수 있습니다.

Fog settings within this layer of the stack are ordered via push, pop, & remove modes the /fog Command.

액티브 안개 스택의 이 레이어 내의 안개 설정에 /fog 명령의 푸시, 팝, 제거 모드 명령어를 사용할 수 있습니다.

푸시 모드: 선택된 플레이어(들)의 안개 명령 레이어의 상단에 사용자 제공 ID와 함께 안개 정의를 적용합니다.

팝 모드: 선택된 플레이어(들)로부터 사용자 제공 ID (푸시 모드를 사용해 /fog 명령을 통해 이전에 제공된 ID)에 해당하는 최상위 안개 정의를 제거합니다.

제거 모드: 선택된 플레이어(들)로부터 사용자 제공 ID에 해당하는 모든 안개 정의를 제거합니다.플레이어의 안개 명령 레이어 상태

Thanks Substance!