# Modelos 3D

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5367cb41c363e65a52e8beaf39559643751a7b1f%2F01-3d-essentials-banner%20\(1\).png?alt=media)

Ao importar modelos 3D para Decentraland, é importante garantir que eles estejam no formato glTF. Esses modelos podem incluir uma variedade de recursos suportados. Esta seção trata de como torná-los compatíveis com Decentraland e seguir as melhores práticas.

Por favor, note que todos os modelos, shaders e texturas devem cumprir com o [**limitações da cena**](https://docs.decentraland.org/creator/development-guide/scene-limitations/).

## **Formatos de Modelo 3D Suportados**

Todos os modelos 3D em Decentraland devem estar no formato glTF. [**arquivo glTF**](https://www.khronos.org/gltf) (GL Transmission Format) é um projeto aberto da Khronos que fornece um formato comum e extensível para ativos 3D que é eficiente e altamente interoperável com tecnologias web modernas.

Modelos glTF podem ter tanto um *.gltf* ou um *.glb* extensão. Arquivos glTF são legíveis por humanos; você pode abrir um em um editor de texto e lê-lo como um arquivo JSON. Isso é útil, por exemplo, para verificar se as animações estão corretamente anexadas e conferir seus nomes. Arquivos .glb são binários, portanto não são legíveis, mas são consideravelmente menores em tamanho, o que é bom para o desempenho da cena.

Recomendamos usar *.gltf* enquanto você estiver trabalhando em uma cena, mas depois mudar para *.glb* ao enviá-la.

Os seguintes aspectos de um modelo 3D podem ser incorporados em um *arquivo glTF* arquivo ou referenciados externamente:

* Texturas podem ser incorporadas ou referenciadas a partir de um arquivo de imagem externo.
* Dados binários sobre geometria, animações e outros aspectos relacionados a buffers podem ser incorporados ou referenciados a partir de um *.bin* arquivo.

{% hint style="warning" %}
**📔 Nota**: Animações *devem* ser incorporadas dentro do *arquivo glTF* arquivo para uso em Decentraland. Além disso, cada modelo só pode ter 1 mapa UV.
{% endhint %}

## **Por que Usamos glTF**

Usamos glTF porque ele fornece um conjunto poderoso de recursos que inclui:

* Objetos hierárquicos
* Estrutura esquelética e animação
* Pipeline robusto para materiais e shaders
* Informações de cena como fontes de luz e câmeras (que podem ser usadas em desenvolvimentos futuros).

Comparado com *COLLADA*, os recursos suportados são muito semelhantes. No entanto, porque glTF foca em fornecer um “formato de transmissão” em vez de um formato de editor, ele é mais interoperável com tecnologias web.

## **Exportar e Converter glTF**

### **Exportar Para glTF a partir do Blender**

O Blender tem um exportador glTF nativo.

Para exportar selecione os modelos que você deseja incluir no arquivo .glb e então vá em File - Export - glTF 2.0

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-30e38513ce59831ac027cf1787af061bfdb7c267%2F02-export-glt-from-blender%20\(1\).png?alt=media) ![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-86db9dd94033fbf82446265353dce37915351452%2F03-exporting-options%20\(1\).png?alt=media)

*No painel lateral marque “Selected Objects” caso queira exportar somente os objetos selecionados na cena. Além disso, no Dropdown Mesh selecione Apply Modifiers (se houver), então Export.*

### **Exportar Para glTF a partir do 3D Studio Max**

O 3D Studio Max não suporta exportação para glTF por padrão, mas você pode instalar um plugin para habilitá-lo.

1. Baixe o plugin a partir do [este link](https://github.com/BabylonJS/Exporters/tree/master/3ds%20Max).
2. Instale o plugin seguindo [estas instruções](http://doc.babylonjs.com/resources/3dsmax#how-to-install-the-3ds-max-plugin).
3. Exporte arquivos glTF usando o plugin seguindo [estas instruções](http://doc.babylonjs.com/resources/3dsmax_to_gltf).

### **Exportar Para glTF a partir do Maya**

O Maya não suporta exportação para glTF por padrão, mas você pode instalar um plugin para habilitá-lo.

1. Instale o plugin seguindo [estas instruções](http://doc.babylonjs.com/resources/maya).
2. Exporte arquivos glTF usando o plugin seguindo [estas instruções](http://doc.babylonjs.com/resources/maya_to_gltf#pbr-materials).

{% hint style="warning" %}
**📔 Nota**: Como alternativa, você pode tentar [este outro plugin](https://github.com/WonderMediaProductions/Maya2glTF) também.
{% endhint %}

### **Exportar Para glTF a partir do Unity**

O Unity não suporta exportação para glTF por padrão, mas você pode instalar um plugin para habilitá-lo.

Baixe o plugin a partir do [este link](https://github.com/sketchfab/Unity-glTF-Exporter).

{% hint style="warning" %}
**📔 Nota**: Como alternativa, você pode tentar [este outro plugin](https://assetstore.unity.com/packages/tools/utilities/collada-exporter-for-unity2017-99793) também.
{% endhint %}

### **Exportar Para glTF a partir do SketchUp**

O SketchUp não suporta exportação para glTF por padrão, mas você pode instalar um plugin para habilitá-lo.

Baixe o plugin a partir do [este link](https://extensions.sketchup.com/en/content/gltf-exporter).

### **Converter FBX para glTF**

*.fbx* é um padrão muito popular para modelos 3D. Não é suportado pelo nosso engine, mas você pode facilmente exportar um *.fbx* modelo para *.gltf* formato.

Recomendamos usar estas ferramentas:

* [**Blender**](https://www.blender.org/download/) : Uma maneira fácil de converter .fbx para glTF é importando o .fbx para uma cena usando Blender e então exportá-lo a partir daí.
* [**Ferramenta CLI do Facebook**](https://github.com/facebookincubator/FBX2glTF) : esta é a alternativa mais robusta, mas requer o uso da linha de comando.
* [**Blackthread**](https://blackthread.io/gltf-converter) : Esta é a ferramenta web mais completa. Menos robusta que a CLI, mas muito mais fácil de usar.
* [**Modelconverter**](https://modelconverter.com/convert.html) : Outra ferramenta web fácil de usar.

## **Visualizar um Modelo glTF**

Uma maneira rápida e fácil de visualizar o conteúdo de um modelo glTF antes de importá-lo para uma cena é usar o [**Babylon.js Sandbox**](https://sandbox.babylonjs.com/). Basta arrastar e soltar o arquivo glTF (e seu arquivo *.bin* se aplicável) na canvas para ver o modelo.

No sandbox você também pode visualizar as animações que estão incorporadas no modelo, selecionar qual exibir escolhendo-a em um menu dropdown.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-bf9bd765a4a99705f7649909c74acd6dddb860d1%2F04-preview-gltf%20\(1\).png?alt=media)

## **Analisar glTF**

Uma ótima ferramenta para analisar seus glTFs é usar [**glTF Sample Viewer**](https://github.khronos.org/glTF-Sample-Viewer-Release/). Esta ferramenta permite inspecionar canais, texturas, reação a diferentes ambientes de luz, visualizar animações e muito mais! Ideal para modelos únicos.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-9d1b28696f55191432bb5c9c315c7497f91b970c%2F05-gltf-sample-viewer%20\(1\).png?alt=media)

Outra ferramenta útil é [**gltf.report/**](https://gltf.report/). Simplesmente arraste e solte seus modelos no site para ver o conteúdo do pacote glTF e avaliar quais partes do modelo podem ser otimizadas.

Esta ferramenta pode ser especialmente útil para arquivos grandes contendo múltiplos modelos, texturas e animações. Por exemplo, ao organizar texturas por tamanho, você pode identificar facilmente quais texturas estão consumindo mais recursos.

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-ca94129743df645c2e758d463f7837dea3dd03d0%2F05-gltf-report%20\(1\).png?alt=media)

## **Otimizar um glTF**

A ferramenta a seguir oferece algumas otimizações que tornarão os modelos 3D mais leves e mais rápidos para os jogadores baixarem na sua cena.

[glTF pipeline](https://github.com/AnalyticalGraphicsInc/gltf-pipeline)

Entre outras coisas, ela converte o formato *.gltf* em *.glb*, que é binário e portanto ocupa muito menos. Ela também coloca arquivos de textura fora do modelo 3D, o que permite usar a mesma textura em múltiplos modelos.

{% hint style="warning" %}
**📔 Nota**: *.glb* O formato por padrão sempre tem texturas incorporadas no arquivo. O engine não consegue reconhecer duas texturas incorporadas como a mesma; elas precisam ser arquivos externos que compartilhem o mesmo hash.
{% endhint %}

## Veja também

As páginas seguintes também abordam tópicos relacionados a modelos 3D para Decentraland:

* [Meshes](https://docs.decentraland.org/creator/content-creator-pt/modelagem-e-animacoes-3d/meshes)
* [Materials](https://docs.decentraland.org/creator/content-creator-pt/modelagem-e-animacoes-3d/materials)
* [Textures](https://docs.decentraland.org/creator/content-creator-pt/modelagem-e-animacoes-3d/textures)
* [Essas paredes invisíveis podem ser úteis ao importar um modelo 3D que não tem uma malha de collider, ou quando você quer criar uma parede que não seja visível para o jogador.](https://docs.decentraland.org/creator/content-creator-pt/modelagem-e-animacoes-3d/colliders)
* [Animations](https://docs.decentraland.org/creator/content-creator-pt/modelagem-e-animacoes-3d/animations)
