> 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/meshes.md).

# 메시

Decentraland로 가져온 3D 모델에서 어떤 메시 속성이 지원되는지 알아보세요.

3D 모델은 *메쉬가* 삼각형으로 이루어진 *면들로 구성되어 있습니다*. 이 면들은 *모서리에서* 서로 만납니다(서로 맞닿는 선) 그리고 *정점에서* 만납니다(꼭짓점이 만나는 점).

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

## 공간 제한

씬의 모든 3D 모델은 반드시 해당 구획의 한도 안에 들어와야 합니다. 미리보기 실행 시 모델의 일부가 이 한도를 벗어나면, 벗어난 부분은 잘려서 렌더링되지 않습니다.

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

Creator Hub 편집기에서는 모델이 빨간색으로 표시되고 바운딩 박스가 빨간색으로 표시된 것을 볼 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-a44ea3779c9fc579f367e0cbefb2b4218369eab9%2Ftrain-out-of-bounds.png?alt=media)

{% hint style="info" %}
**📔 참고**: 이전의 Decentraland 웹 클라이언트에서는 성능상의 이유로 3D 모델의 일부라도 범위를 벗어나면, 바운딩 박스만 벗어난 경우라도 전체 모델이 렌더링되지 않았습니다. Decentraland 2.0 데스크톱 클라이언트부터는 범위를 벗어난 모델의 부분만 잘립니다. 씬 안에 있는 모델의 부분은 렌더링됩니다.
{% endhint %}

## 바운딩 박스

모든 정점이 씬 영역 안에 깔끔하게 들어가 있지만, 대부분 비어 있고 씬 한계를 넘는 큰 바운딩 박스를 가진 모델이 있다면, Creator Hub에서는 전체 모델이 씬 한계 밖에 있는 것으로 표시됩니다. 파라셀 안에 있는 모델의 부분은 올바르게 렌더링되며, 씬을 게시할 수 있습니다.

모든 메쉬에는 형태의 한계를 둘러싸는 바운딩 박스가 있습니다. 3D 모델을 Decentraland 안에서 더 잘 사용할 수 있게 하려면, 바운딩 박스가 필요 이상으로 모델 밖으로 벗어나지 않도록 하세요.

이 문제를 피하려면 3D 모델을 정리하여 메쉬의 위치와 회전을 초기화하고, 바운딩 박스가 감싸는 메쉬보다 더 밖으로 나오지 않도록 할 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-3188e3d33635429246de0f2d7f8f810483135233%2F07-apply-rotations.gif?alt=media)

*Blender에서는 객체를 선택한 다음 Ctrl+A를 누르고 “모든 변환 적용”을 선택하면 됩니다.*

예를 들어, 모델 경계 근처의 서브 메쉬를 회전할 때는 주의하세요. 바운딩 박스는 정육면체이므로, 메쉬가 둥글더라도 45° 회전 후 바운딩 박스의 모서리가 밖으로 튀어나올 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-38697f7d74f05eee44d500f06cb076936d1c0eac%2F10-apply-rotation.png?alt=media)

모델의 모든 메쉬에 대해 회전과 스케일을 베이크하여, 필요한 크기보다 불필요하게 바깥으로 나가는 바운딩 박스가 없도록 하는 것을 권장합니다.

## 삼각형 제한

Decentraland는 서로 다른 씬과 오브젝트가 가득한 오픈 월드이며, 같은 3D 공간에서 다운로드가 실시간으로 이루어지기 때문에, 플레이 중 좋은 성능을 유지하려면 메쉬를 최적화하는 것이 중요합니다. 그런 의미에서 메쉬에 관해서는 항상 염두에 두어야 할 몇 가지 씬 제한이 있습니다:

> n은 씬이 차지하는 파라셀의 수를 나타냅니다.

* **삼각형:** n x 10000 씬에 있는 모든 모델의 총 삼각형 수.
* **높이:** log2(n+1) x 20 높이(미터).
* **파일 크기:** 파라셀당 15 MB - 최대 300 MB 콘텐츠 서버에 업로드되는 파일의 총 크기입니다. 3D 모델과 오디오가 포함됩니다. node.js 패키지처럼 업로드되지 않는 파일은 포함되지 않습니다.
* **파일당 최대 파일 크기 50 MB** 씬의 개별 파일은 종류와 상관없이 어떤 파일도 50 MB를 초과할 수 없습니다. 씬에 파라셀이 몇 개 있든 상관없습니다.

자세한 내용은 모든 씬 제한 사항을 확인하세요 [여기서.](https://docs.decentraland.org/creator/development-guide/scene-limitations/)

{% hint style="warning" %}
**🔥최적화 팁🔥: 폴리곤 수 추가** 유용한 팁은 모델의 폴리카운트를 항상 추적하는 것입니다. Blender에서는 뷰포트 오버레이 패널에서 통계를 켜면 됩니다.

<img src="https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-b1595d1e8b5529e0d12e99de25246215f1bdc900%2F41-stats.gif?alt=media" alt="" data-size="original">
{% endhint %}

## 대형 씬의 메쉬

메쉬를 만들 때는 다음 두 가지 모범 사례를 염두에 두어야 합니다:

* **모듈화:** 큰 메쉬를 더 작고 모듈화된 부분으로 나누세요. 예를 들어, 건물 전체를 하나의 메쉬로 만드는 대신 건물의 각 벽, 바닥, 구역별로 별도의 메쉬로 나눌 수 있습니다. 이렇게 하면 Unity의 프러스텀 컬링이 더 효과적으로 작동하여 렌더링에 필요한 보이는 부분만 고려하면 됩니다. 또한 메모리 사용량도 줄어듭니다. 하나의 메쉬를 같은 오브젝트의 다른 위치에서 여러 번 재사용할 수 있기 때문입니다(이를 위해서는 SDK7 씬 정의에서 같은 메쉬를 참조하거나, Blender에서 씬을 내보낼 때 중복된 오브젝트 대신 인스턴스를 사용해야 합니다).
* **바운딩 볼륨**: 각 오브젝트의 바운딩 볼륨이 가능한 한 꼭 맞도록 하세요. 바운딩 볼륨에 불필요한 공간이 있으면 보이지 않는 오브젝트도 렌더링될 수 있습니다.

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

### 프러스텀 컬링이란?

프러스텀 컬링은 카메라의 시야 영역 밖에 있는 오브젝트의 렌더러(메쉬)를 비활성화하는 최적화 기법입니다. 다음 두 가지 예를 보세요:

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

*미로 같은 실내 레벨입니다. 이 일반적인 씬 뷰는 보이는 모든 Game Object를 보여줍니다.*

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

*일반적인 프러스텀 컬링은 카메라 시야 안에 있는 오브젝트만 렌더링합니다. 이는 자동으로 항상 발생합니다.*

## 오브젝트 인스턴싱 vs 오브젝트 복제

Blender에서 오브젝트를 복제하면 오브젝트의 완전히 별도 사본이 만들어지고, 오브젝트를 인스턴싱하면 원본 오브젝트와 같은 데이터를 공유하는 복제본이 만들어집니다.

오브젝트를 복제하면 기하 구조, 머티리얼, 애니메이션을 포함한 모든 데이터가 완전히 독립된 새 오브젝트가 만들어집니다. 즉, 원본 오브젝트에 가한 변경 사항은 복제본에 반영되지 않으며, 그 반대도 마찬가지입니다.

반면 오브젝트를 인스턴싱하면 원본 오브젝트에 가한 변경 사항이 모든 인스턴스에 반영되고, 그 반대도 마찬가지입니다. 모든 인스턴스가 동일한 기반 데이터를 공유하기 때문입니다.

성능 측면에서 인스턴싱은 특히 복잡한 씬이나 많은 수의 오브젝트를 다룰 때 복제보다 훨씬 효율적일 수 있습니다. 인스턴싱은 각 인스턴스마다 새 데이터를 만들지 않으므로 복제보다 메모리를 덜 사용하기 때문입니다. 또한 인스턴싱은 Blender가 모든 인스턴스를 별도로 렌더링하는 대신 하나의 오브젝트처럼 처리하여 렌더링 과정을 최적화하도록 할 수 있습니다.

전반적으로 인스턴싱은 Blender와 Decentraland Scene에서 성능과 작업 효율을 개선하는 강력한 도구가 될 수 있으며, 특히 크고 복잡한 씬을 다룰 때 유용합니다.

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

경우에 따라 나무, 식물, 가로등 같은 오브젝트를 복제할 때 인스턴싱은 복제보다 성능을 크게 향상시킬 수 있습니다. 예를 들어, 이 씬에는 가로등이 14개 있고, 모두 정확히 같습니다. 각 가로등에는 두 개의 서로 다른 텍스처가 있다는 것을 알고 있습니다. 하나는 기둥용이고, 다른 하나는 조명용입니다. 따라서 이 경우 텍스처당 한 번씩, 총 두 개의 드로우 콜이 생깁니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-717d26a8b05990d9e19f7b3becaac8122de944a3%2F21-duplicate-objects-2.png?alt=media)

Blender에서는 공간에 요소를 복제하고 배치하는 단계에서 세 가지 선택지가 있습니다. Duplicate, Instance 또는 Merge objects입니다.

각 절차의 장단점을 살펴보겠습니다.

### 오브젝트 복제

| 메뉴:  | 오브젝트 ‣ 오브젝트 복제 |
| ---- | -------------- |
| 단축키: | Shift-D        |

이렇게 하면 선택한 오브젝트와 시각적으로 동일한 복사본이 만들어지지만, 서로 다른 오브젝트로 처리됩니다. 따라서 내보내면 오브젝트당 드로우 콜이 2개씩 생겨 2 \* 14 = 28개의 드로우 콜이 되고, 총 디스크 사용량은 320kb입니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-36c86406e9de1a3c1029ab6a77bcbced976f77b7%2F22-duplicate-objects-3.png?alt=media)

### 오브젝트 인스턴싱

| 패널:  | 툴바 ‣ 도구 ‣ 편집 ‣ 연결된 복제 |
| ---- | --------------------- |
| 메뉴:  | 오브젝트 ‣ 연결된 복제         |
| 단축키: | Alt-D                 |

이렇게 하면 모든 데이터가 원본 오브젝트에 연결된 새 오브젝트가 만들어집니다. 편집 모드에서 연결된 오브젝트 중 하나를 수정하면 연결된 모든 복사본이 수정됩니다. 변환 속성은 여전히 링크가 아니라 복사본으로 유지되므로, 다른 복사본에 영향을 주지 않고 자유롭게 회전, 스케일, 이동할 수 있습니다.

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

*이 모델들을 내보내면 드로우 콜 수는 여전히 같지만(28개), 메쉬가 하나뿐이므로 디스크 사용량이 크게 줄어듭니다(41 kb).*

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

*정리를 위해 씬에서 컬렉션을 그냥 인스턴싱할 수도 있습니다. 이렇게 하면 하나의 폴더와 소스에서 모든 인스턴스를 제어할 수 있습니다.*

{% hint style="info" %}
**💡 팁**: SDK 측에도 같은 논리가 적용됩니다. 모두 같은 `GltfContainer` 파일을 가리키는 14개의 엔티티는 인스턴스처럼 동작합니다. 파일은 한 번만 다운로드되고, 한 번만 변환되며, 몇 개의 엔티티가 사용하더라도 메쉬와 텍스처는 메모리에 한 번만 유지됩니다. 같은 콘텐츠를 거의 동일한 14개의 *.glb* 파일로 나누는 것은 복제에 해당하며, 14번의 다운로드와 메모리상의 14개 복사본 비용이 듭니다. *.glb* 파일
{% endhint %}

### 오브젝트 병합

| 메뉴:  | 오브젝트 ‣ 결합 |
| ---- | --------- |
| 단축키: | Ctrl-J    |

이렇게 하면 선택한 오브젝트가 단일 메쉬를 가진 하나의 오브젝트로 합쳐집니다. 오브젝트 모드에서 작동하며, 모든 것을 마지막으로 선택한 *active* 오브젝트에 병합하고, 선택한 오브젝트들이 모두 같은 유형이어야 합니다. 머티리얼은 유지되고 병합되므로, 14개의 가로등은 더 이상 14개의 렌더 가능한 오브젝트가 아니라 하나가 되고, 엔진은 28개 대신 2개의 드로우 콜로 이를 그립니다. 즉, 머티리얼당 한 번입니다.

실제로 드로우 콜을 줄이는 것은 이 세 가지 옵션 중 이것뿐이며, 그 이유를 분명히 아는 것이 중요합니다. Decentraland 엔진은 스트리밍된 콘텐츠로부터 런타임에 씬을 구성하므로, 미리 베이크된 콘텐츠를 가진 엔진처럼 반복 오브젝트를 자동으로 그룹화하거나 배치 처리할 수 없습니다. 드로우 콜을 줄여야 한다면 Blender에서 병합해야 합니다.

그 감소는 공짜가 아닙니다. 병합하면 여러 가지를 한꺼번에 포기하게 됩니다:

* **디스크 사용량이 다시 증가합니다.** 병합된 메쉬는 14개 기둥 모두의 기하 구조를 저장하므로, 인스턴싱으로 얻은 절약 효과를 잃게 됩니다.
* **프러스텀 컬링이 전부 아니면 전무 방식이 됩니다.** 병합된 오브젝트는 일부라도 화면에 보이면 전체가 렌더링됩니다. 거리 전체에 흩어진 14개의 기둥은 거의 항상 하나는 보이므로, 결국 항상 14개 모두를 그리게 됩니다. 이는 절약한 드로우 콜보다 더 많은 비용이 들 수 있습니다.
* **각 부분을 개별적으로 다룰 수 없게 됩니다.** 이제 오브젝트가 하나뿐이므로, 기둥 하나만 이동하거나 애니메이션을 적용하거나 클릭하거나 숨길 수 없습니다.

병합은 좁게 사용하세요: 한 장소에서 항상 함께 보이고, 상호작용이 없으며, 오브젝트 수가 실제로 성능 저하의 원인임을 확인한 뒤의 많은 작은 소품에만 적용하세요. 그 외의 경우에는 인스턴싱이 더 나은 기본값입니다.

{% hint style="warning" %}
**📔 참고**: 서로 다른 14개의 오브젝트를 하나의 *.glb* 파일로 내보내는 것은 **아닙니다** 병합입니다. 엔진은 여전히 14개의 오브젝트를 보고 여전히 28개의 드로우 콜을 발생시킵니다. 메쉬를 결합해야만 개수가 바뀝니다.
{% endhint %}

## 메쉬 명명

메쉬에는 의미 있는 이름을 사용하세요. 이름은 자산이 어디에 사용되는지 또는 오브젝트의 어느 부분과 관련되는지에 대한 맥락을 제공해야 합니다.

자산 이름에는 다음의 조합을 사용하세요 `파스칼케이스` 및 `스네이크 케이스`, 이를 우리는 `파스칼스네이크 케이스`. 기본 규칙은 다음과 같습니다. 새 단어나 구분자(`_`) 뒤의 단어는 **대문자로 시작합니다.**

* 메쉬에는 의미 있는 이름을 사용하세요 **예:** 🟢 **권장** 이름에 붙습니다 - `극장`, `트램` 🔴 **피해야 할 것은** 이름에 붙습니다 - `Untitiled.008`, `기본 도형(1)`, `Cylinder.091`, `_sphere-AB`
* 구분자로 언더스코어를 사용하여 `_` 이름에 더 많은 맥락을 담으세요. 더 일반적인 것을 앞에 두고 구체적인 것은 끝에 두세요. **예:** 🟢 **권장** 이름에 붙습니다 - `분수조각상`, `극장메인월`, `트램휠왼쪽` 🔴 **피해야 할 것은** 이름에 붙습니다 - `북쪽_메인월_극장`, `트램_왼쪽앞_바퀴`

같은 이름의 오브젝트가 하나 이상 있으면 단어 뒤에 숫자를 붙이세요: `분수조각상01, 분수조각상02 등.`

## 모델 생성 도구

에셋 제작 시 작업을 더 빠르고 효율적으로 해주는 애드온과 외부 도구가 많이 있으며, 그중 일부는 무료이고 일부는 유료입니다. 몇 가지를 소개하면:

### 디시메이트

이것은 모델의 표면 구조를 유지하면서 메쉬의 삼각형 수를 줄이는 데 사용할 수 있는 잘 알려진 모디파이어입니다. 모델 최적화에 매우 강력한 도구이지만, 한 번 디시메이트하면 토폴로지가 영향을 받아 좋지 않은 토폴로지가 될 수 있다는 점을 고려해야 합니다(기하를 예측할 수 없는 조각으로 나누기 때문입니다). 또 다른 측면에서 디시메이션은 메쉬의 쿼드를 삼각형으로 변환하므로, 사용 후 수정이 어려워집니다. 이런 점에서 **디시메이션은 정적인 모델에는 유용할 수 있지만, 애니메이션 모델에는 선호되지 않습니다.**

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-fa7269059815d6b0687b7b6c29ec632463318861%2F42-decimate-01.png?alt=media) ![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-8ae651d7fd4bd8a23c60469f60cc8a572c2ad714%2F43-decimate-02.png?alt=media)

디시메이션을 사용해 메쉬를 최적화하는 또 다른 방법은 모델을 디시메이트한 다음 적절한 리토폴로지를 수행하는 것입니다. 이렇게 하면 더 예측 가능한 결과와 깔끔한 토폴로지를 얻을 수 있습니다.

유용할 수 있는 리토폴로지 애드온 몇 가지는 다음과 같습니다(일부는 유료입니다):

* **Simplygon:** <https://www.simplygon.com/>
* **Speedretopo:** <https://blendermarket.com/products/speedretopo?ref=2>
* **Retopoflow:** <https://blendermarket.com/products/retopoflow>

### 미러 모디파이어

Blender의 미러 모디파이어는 오브젝트의 절반을 원하는 방향(X,Y,Z)으로 대칭 복사하여 대칭 모델을 만드는 데 사용하는 도구입니다. 대칭 모델을 다룰 때 아주 유용한 도구인데, 3D 모델링 시간을 줄여주고 UV 언래핑도 줄여주며(모델의 한 부분만 언래핑하면 되고 나머지는 같은 UV 좌표를 공유하므로), 텍스처 해상도를 사실상 대칭인 부분에 낭비하지 않도록 텍스처도 최적화해 줍니다.

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

### 일괄 이름 변경

이름 규칙을 쉽게 바꾸는 매우 편리한 도구는 Blender에 내장된 일괄 이름 변경을 사용하는 것입니다. 접근하려면 *편집* 그리고 나서 *일괄 이름 변경*.

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

이름을 바꾸고 싶은 오브젝트를 선택한 뒤 기본 오브젝트 이름을 새 이름으로 바꾸기만 하면 됩니다. 이 도구는 다양한 방식과 자산 유형의 이름 변경을 제공하므로 메쉬, 애니메이션, 본 등도 매우 유연하게 이름을 바꿀 수 있습니다.

![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6a91a4b355df03a163ec1cb3570753eedd05fc8f%2F47-batch-rename-methods.png?alt=media) ![](https://3980763956-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-a6c301bd731a96d8813c4120ee554490e480f874%2F46-batch-rename-types.png?alt=media)

## 기하 구조에 대한 모범 사례 [#](https://docs.decentraland.org/creator/3d-modeling/meshes/#best-practices-for-geometries)

* 3D 모델에 추가하는 면의 수에 주의하세요. 면이 많을수록 렌더링이 더 부담스러워집니다. 씬에서 부과하는 제한은 [**씬 제한 사항**](https://docs.decentraland.org/creator/development-guide/scene-limitations/) 를 확인하세요.
* 보이지 않지만 삼각형 수에 포함되는 숨은 면이 없는지 확인하세요.
* 측면이 둥글어야 하는 형태는 추가 면을 넣기보다 *부드럽게* 설정하세요.
* 모든 면의 *노멀* 이 안쪽이 아니라 바깥쪽을 향하고 있는지 확인하세요. 렌더링할 때 모델에 있는 것 같아야 할 면이 보이지 않는다면, 대부분 이것이 원인입니다.
* 메쉬의 회전과 스케일을 베이크하여 바운딩 박스가 불필요하게 밖으로 나오지 않도록 하세요.


---

# 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/meshes.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.
