> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-ko/3d/materials.md).

# 재질

Decentraland에 가져온 3D 모델에서 지원되는 재질 속성과 텍스처가 무엇인지 알아보세요.

머티리얼은 다음에 내장됩니다 *.gltf* 또는 *.glb* 파일을 추가할 수 있습니다.

{% hint style="info" %}
**💡 팁**: 다음을 설치하세요 [Decentraland Tools Blender 플러그인](https://extensions.blender.org/add-ons/decentraland-tools/). 여기에는 3D 모델, 착용 아이템, 이모트를 편집하고 내보내는 데 도움이 되는 여러 유용한 기능이 포함되어 있습니다.
{% endhint %}

이 문서는 3D 모델에 가져온 머티리얼을 다룹니다. 코드로 정의된 머티리얼을 프리미티브 도형에 적용하는 방법은 다음을 참조하세요 [**재질**](https://docs.decentraland.org/creator/development-guide/materials/) .

{% hint style="warning" %}
**📔 참고**: 현재는 장면 코드에서 3D 모델의 머티리얼을 동적으로 변경할 수 없습니다. 단, 프리미티브 도형인 경우는 예외입니다.
{% endhint %}

## 셰이더 지원

모든 셰이더를 Decentraland에 가져온 모델에 사용할 수 있는 것은 아닙니다. 다음 중 하나를 사용해야 합니다:

* **표준 머티리얼:** 예를 들어 디퓨즈, 스페큘러, 투명도 등 모든 셰이더가 지원됩니다.
* **PBR(물리 기반 렌더링) 머티리얼**: 이 셰이더는 디퓨즈, 거칠기, 금속성, 발광 같은 속성을 포함하므로 더 유연하며, 머티리얼이 빛과 상호작용하는 방식을 설정할 수 있습니다.

아래 이미지는 같은 색상과 텍스처로 만든 서로 동일한 두 모델을 보여줍니다. 왼쪽 모델은 모든 *PBR* 머티리얼을 사용하며, 그중 일부에는 *금속성*, *투명도*, 그리고 *발광성*이 포함되어 있습니다. 오른쪽 모델은 모든 *표준* 머티리얼을 사용하며, 그중 일부에는 *투명도* 및 *발광성*.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-738840e87d1016d69373d87362184c128540bb34%2F30-materials.png?alt=media)

### 현재 Decentraland 엔진에서 동작하는 PBR 속성

> * 기본 색상
> * 금속성
> * 거칠기
> * 스페큘러
> * 발광
> * 발광 강도
> * 알파
> * 노멀

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4f7c30911e7f3f423d3bf4232caf391c4f3c21ea%2F60-principledBSDF.png?alt=media)

이러한 속성이 세계에서 어떻게 동작하는지 시각화하려면 다음으로 이동하세요 [테스트 월드](decentraland://?realm=TestEnvironment.dcl.eth) 에서 다양한 오브젝트와 머티리얼, 그리고 그것들이 조명 및 월드 환경과 어떻게 상호작용하는지 확인할 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-59533ef54ae1e8b023b1aac7c29c2e946bee5c6c%2F55-testing-environment.png?alt=media)

### 기본/디퓨즈 색상

객체 표면의 기본 색상을 정의합니다. 그 자체로는 조명에 의한 영향이 없기 때문에, 거칠기, 금속성, 스페큘러 등 다른 노드와 결합됩니다.

### 금속성

금속성 셰이더는 금속 표면의 외관을 모사하는 데 사용되는 렌더링 기법의 한 유형을 말합니다. 금속성 셰이더는 금속의 물리적 특성과 빛과의 상호작용을 고려하여 금속 특유의 반짝이고 반사되는 성질을 만들어냅니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-72df7dbe44a99add0601d2210ac6c8158cec7bd1%2F61-metallic-material.png?alt=media)

### 거칠기

거칠기 머티리얼은 빛이 머티리얼 표면과 상호작용하는 방식을 현실적으로 시뮬레이션하는 것과 관련이 있습니다. 일반적으로 거칠기 맵은 모델 표면에 '매끄러움' 또는 '거칠기'의 범위를 부여하는 데 사용됩니다. 이러한 유형의 정보를 제공하기 위해 보통 그레이스케일 값의 텍스처 맵을 사용합니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-9b8a24c451b1e14c95191185dccb686499f8a4ac%2F63-roughness.png?alt=media)

이 속성은 비금속 머티리얼 모델과 금속 머티리얼 모델 사이를 혼합합니다. 값이 1.0이면 디퓨즈 반사나 투과 없이, 기본 색상으로 색조가 입혀진 완전한 스페큘러 반사를 제공합니다. 0.0이면 머티리얼은 디퓨즈 또는 투과성 기반 레이어와 그 위의 스페큘러 반사 레이어로 구성됩니다.

### 스페큘러

물리 기반 렌더링(PBR) 셰이더에서 스페큘러 속성은 반사율과 광택 측면에서 빛이 표면과 어떻게 상호작용하는지를 나타냅니다. 스페큘러 반사는 표면에서 빛이 거울처럼 반사되는 것을 의미합니다. PBR에서는 이 속성을 사용해 표면이 거울처럼 얼마나 많은 빛을 반사하는지 제어합니다. 금속 같은 머티리얼은 일반적으로 스페큘러 반사가 높아 선명하고 밝은 하이라이트를 만들고, 플라스틱 같은 비금속 머티리얼은 스페큘러 반사가 낮아 더 넓고 부드러운 하이라이트를 만듭니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-912bbeaffb8c4725d9f60b946fc7fe5775df37bb%2F62-specular.png?alt=media)

### 알파

머티리얼을 *투명하게*설정할 수 있습니다. 투명한 머티리얼은 그 *alpha*. 이렇게 하려면 머티리얼의 투명도 속성을 활성화한 다음, 그 *alpha* 을 원하는 값으로 설정하세요. 알파 값이 1이면 머티리얼이 완전히 불투명해지고, 알파 값이 0이면 보이지 않게 됩니다.

아래 이미지는 표준 머티리얼로 만든 서로 동일한 두 모델을 보여줍니다. 왼쪽 모델은 불투명한 머티리얼만 사용하고, 오른쪽 모델은 일부 부분에 투명한 머티리얼과 불투명한 머티리얼을 함께 사용합니다.

{% hint style="warning" %}
💡 투명한 머티리얼을 사용하는 것은 디퓨즈 머티리얼보다 항상 성능 면에서 더 비용이 큽니다. 투명한 머티리얼은 항상 가능한 한 적게 유지하려고 하세요.
{% endhint %}

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-694975c9963d924b8da300a18d8a47e2025e1fdb%2F31-transparent-materials.png?alt=media)

주요 투명도 모드에는 두 가지가 있습니다: *알파 클립* 및 *알파 블렌드*. 주요 차이점은 다음과 같습니다:

* **알파 클립:** 알파 클립은 그레이스케일 값의 클립 임계값에 따라 값이 0 또는 1이 되도록 렌더링합니다. 이전 색상은 표면 색상으로 덮어쓰이지만, 알파 값이 클립 임계값보다 클 때만 그렇습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-b8eaf93cbe426a7c331301aed0a8da693bae547c%2F33-alpha-clip.png?alt=media)

* **알파 블렌드:** 알파 블렌드는 0과 1 사이의 값을 보간합니다. 알파 블렌딩을 사용해 이전 색상 위에 표면 색상을 겹쳐 표시할 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-87bb91f45cccee6600d3251887c7ae629b726336%2F34-alpha-blend.png?alt=media)

{% hint style="warning" %}
**🔥최적화 팁🔥** 중간 수준의 투명도가 꼭 필요하지 않다면, **렌더링 성능 측면에서는 항상 \_Alpha Clip***\*\* 대신 \*\****알파 블렌드**\_**.**
{% endhint %}

{% hint style="warning" %}
**⚠️ 정렬 문제**

게임에서 투명 블렌드 모드를 사용할 때는 색상 블렌딩이 이루어지는 순서를 고려하는 것이 매우 중요합니다. 최종 출력 색상은 블렌딩 순서에 크게 영향을 받을 수 있기 때문입니다. 현재 엔진은 오브젝트 단위 정렬만 지원하므로, 오브젝트 원점을 기준으로 모든 투명 표면을 자동으로 정렬합니다. 그러나 프래그먼트(픽셀) 정렬과 삼각형 단위 정렬은 현재 지원되지 않습니다.

정렬과 관련된 문제를 피하려면, 동일한 메시에서 알파 클립과 알파 블렌드를 함께 사용하는 오브젝트는 피하는 것이 가장 좋습니다. 이렇게 하면 예상치 못한 블렌딩 아티팩트를 방지하고 게임이 가장 보기 좋게 보이도록 할 수 있습니다.
{% endhint %}

### 발광

머티리얼을 *발광하게*할 수도 있습니다. 발광 머티리얼은 스스로 빛을 냅니다. 렌더링될 때 실제로는 씬의 주변 오브젝트를 비추지 않고, 그저 주변에 흐릿한 광채가 있는 것처럼 보입니다.

아래 이미지는 표준 머티리얼로 만든 서로 동일한 두 모델을 보여줍니다. 오른쪽 모델은 일부 표면에 빛나는 발광 머티리얼을 사용합니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-116cf9169c3fda356bf068bd4cab46462e0828fe%2F34-emissive-materials.png?alt=media) ![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-bdb40cfa388909cc3ada13c89fff4b3aa9b5f46e%2F35-emissive-nodes.png?alt=media)

*Blender에서 머티리얼을 발광하게 하려면, 단순히 `발광` 셰이더를 머티리얼에 추가하면 됩니다.*

### 발광 강도

방출되는 빛의 세기입니다. 값이 1.0이면 이미지 속 객체가 발광 색상과 정확히 같은 색을 갖게 되어, 즉 '그림자 없음(shadeless)' 상태가 됩니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-d7442e553d308821f6f2069fced7e8139a562396%2F52-emissive-materials.png?alt=media)

*다음에서 확인할 수 있습니다* [*테스트 월드*](decentraland://?realm=TestEnvironment.dcl.eth) *세계에서 발광 강도가 어떻게 동작하는지*

### 노멀

PBR 셰이더의 'normal' 노드는 머티리얼의 표면 노멀을 제어하는 데 사용되는 기본 구성 요소입니다. 노멀은 특정 지점에서 표면에 수직인 방향을 정의하는 벡터이며, 빛이 표면과 어떻게 상호작용하는지를 결정하는 데 매우 중요한 역할을 합니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-13d87ebefb8dbb8b4ddc2d72b2d6d3db7181872f%2F50-normal.gif?alt=media)

## 버텍스 페인팅

3D 모델의 버텍스 페인팅은 현재 Decentraland 엔진에서 지원되지 않습니다.

## 머티리얼 제한

파셀당 머티리얼 제한은 다음과 같습니다:

> log2(n+1) x 20 씬 내 머티리얼 수. 모델의 일부로 가져온 머티리얼도 포함됩니다.

각 머티리얼은 객체당 하나의 드로우 콜을 나타내므로, 머티리얼 수를 가능한 한 최소화하고 텍스처 아틀라스 같은 기법을 사용해 머티리얼을 최대한 재사용하려는 것이 중요합니다. 이렇게 하면 씬의 에셋 간에 일관된 스타일을 유지하는 데도 도움이 됩니다.

## 머티리얼 이름 지정

체계적이고 건강한 아트 파이프라인을 갖추기 위해 머티리얼에 적절한 이름을 붙이는 것을 권장합니다. 이를 수행하는 한 가지 방법은 이 규칙을 사용하는 것입니다.

```
<Object>_<Classification>_<Sub-Classification(optional)>_<_MAT>
```

예를 들어, 봄용으로 발광하고 빛나는 나무 2개와 겨울용으로 차갑고 금속성인 나무 1개를 만들었다고 해봅시다. 머티리얼 이름은 다음과 같이 지을 수 있습니다: *"TreeSpring\_Emissive\_MAT"* 그리고 또 하나는 *"TreeWinter\_Metallic\_MAT"*

결론적으로,

* 🟢 **권장** 하는 것은 객체와 분류로 시작하는 이름을 사용하는 것입니다: *"Wood\_Oak\_MAT"*, *"SciFiFence\_Metallic\_MAT"*, 등.
* 🔴 **피해야 할 것은** 다음과 같은 이름을 사용하는 것입니다 *"Material009"*, *"material1"*&#xC785;니다. 이런 이름은 씬과 모델을 추적하고 분석하기 매우 어렵게 만듭니다.

## glTF 머티리얼 재정의

다음의 머티리얼을 재정의할 수 있습니다 *glTF* 모델에서 다음을 사용하여 [GltfNodeModifiers](/creator/content-creator-ko/sdk7/3d/materials.md#modify-gltf-materials) 컴포넌트를 장면 코드에서 사용하세요. 다음을 참조하세요 [glTF 머티리얼 수정](/creator/content-creator-ko/sdk7/3d/materials.md#modify-gltf-materials) 자세한 내용은 다음을 참조하세요.

## 머티리얼 모범 사례

* 씬에 동일한 텍스처를 사용하는 여러 모델이 포함되어 있다면, 텍스처를 3D 모델에 내장하는 대신 외부 파일로 참조하세요.

내장된 텍스처는 각 모델마다 중복되며 씬의 크기를 늘립니다. *.glb* 파일은 기본적으로 텍스처가 내장되어 있지만, 다음을 사용할 수 있습니다 [**glTF 파이프라인**](https://github.com/AnalyticalGraphicsInc/gltf-pipeline) 을 사용해 외부로 추출할 수 있습니다.

> 참고: 내장되지 않을 텍스처에 대해 파일을 참조한 뒤에는, 그 파일이 이동되거나 이름이 바뀌지 않도록 하세요. 그렇지 않으면 파일 참조가 끊어집니다. 파일은 씬과 함께 업로드되도록 씬 폴더 안에 있어야 합니다.

* 머티리얼의 투명도를 설정할 때는, 항상 *알파 클립* 을 *알파 블렌드*보다 사용하는 것이 좋습니다. 단, 유리처럼 부분적으로 투명한 머티리얼이 꼭 필요할 때는 예외입니다. 이렇게 하면 엔진이 다른 오브젝트 앞에 잘못된 모델을 렌더링하는 문제를 피할 수 있습니다.
* 경험칙으로 항상 *뒷면 컬링* 을 머티리얼에 설정하는 것을 기억하세요. 이렇게 하면 엔진이 모델의 보이는 면만 렌더링하므로 씬의 성능이 더 좋아집니다. 다음 경우에만 해제하세요 *뒷면 컬링* 양면으로 렌더링되어야 하는 모델이 필요할 때(예: 3D 평면으로 만든 나무의 잎사귀 무리)입니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-8039927ba106b4fd2df524ed0986d877aca0a70e%2F59-backface-culling.png?alt=media)

* Decentraland의 [**기본 텍스처**](https://github.com/decentraland/builder-assets/tree/master/textures) 를 사용하세요. 플레이어에게 미리 로드되어 있으므로 에셋의 렌더링이 훨씬 빨라집니다.
* 읽기 [**이 글은**](https://www.khronos.org/blog/art-pipeline-for-gltf) glTF 모델에서 PBR 텍스처를 사용하는 전체 아트 파이프라인에 대한 자세한 개요를 제공합니다.
* Blender로 glTF 호환 머티리얼을 만드는 방법에 대한 자세한 참고 자료는 다음에서 찾을 수 있습니다 [**Blender 문서**](https://docs.blender.org/manual/en/latest/addons/import_export/scene_gltf2.html) .
* 다음에서 무료의 고품질 PBR 텍스처를 찾으세요 [**cgbookcase**](https://cgbookcase.com/) .


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.decentraland.org/creator/content-creator-ko/3d/materials.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
