Assets

Esta página foi traduzida automaticamente e pode conter erros. Encontrou um problema? Use o link "Edit this page" para ajudar a corrigir.

A Turian utiliza um pipeline de importação: os arquivos que você joga na pasta assets/ de um projeto são fontes (sources). Na importação, cada fonte recebe um GUID estável (salvo em um arquivo sidecar <arquivo>.meta) e é compilado (cooked) em um artefato de runtime sob .cache/assets/. O jogo finalizado (shipped) lê esses artefatos de um arquivo .oap empacotado e nunca toca na pasta assets/ solta. As referências entre assets (as texturas de um material, a mesh de um MeshRenderer) são armazenadas como GUIDs, portanto sobrevivem a renomeações e movimentações.


Importando modelos (glTF / GLB / OBJ)

Colocar um .gltf, .glb ou .obj na pasta assets/ importa sua geometria. Para glTF/GLB, a Turian também lê os materiais e texturas do arquivo e gera assets do engine a partir deles — um único modelo é uma fonte que produz muitos assets:

  • um .material por material glTF, mapeando o modelo metallic-roughness do glTF no shader PBR nativo (base color, metallic, roughness, emissive + strength, normal scale, occlusion, alpha mode/cutoff, double-sided → cull);
  • um asset de textura por imagem referenciada.

Esses assets gerados são registrados no arquivo .meta do modelo e mantêm seus GUIDs em diferentes reimportações, para que as referências na cena permaneçam válidas. Extensões de material não suportadas geram avisos, mas nunca erros fatais.

A geometria é compilada para uma mesh binária canônica no momento da importação, para que o runtime a carregue por meio de um único caminho rápido e independente de formato — o parsing de OBJ/glTF/cgltf acontece apenas no editor, nunca no jogo finalizado.

Editando sub-assets gerados

Selecione um modelo importado no Asset Browser; o Inspector lista seus materiais/texturas gerados em Generated Assets. Clique em um material para abri-lo e ajustá-lo (por exemplo, sua cor base). As edições persistem entre as reimportações — o importador apenas (re)gera materiais ausentes. Um Reimport completo limpa o cache para regenerar tudo a partir da fonte.

Configurações de importação

Selecionar uma textura ou modelo mostra um painel Import Settings (estilo Unity):

  • Image — tipo de textura (default / normal map / sprite / UI / HDR), espaço de cor, mipmaps, compressão, filtro, wrap, tamanho máximo.
  • Model — importar materiais, importar animações, fator de escala.

As configurações são armazenadas no .meta; clicar em Apply recompila (re-cooks) o asset.

Texturas externas vs embutidas

  • Imagens externas (um glTF que aponta para arquivos .png/.jpg irmãos) tornam-se assets de textura comuns com seu próprio .meta — assim você pode selecioná-los e substituí-los como qualquer outro asset.
  • Imagens embutidas (pedaços binários GLB ou URIs de dados base64) são extraídas em assets de textura somente em cache durante a importação.

De qualquer forma, o material gerado vincula cada mapa por GUID. Formatos comuns (PNG, JPEG, ...) são decodificados para RGBA8.

Formatos de textura

Formato Caminho
PNG / JPEG / BMP / TGA / WebP Decodificado para RGBA8 (stb_image).
KTX2 (.ktx2) Formatos de bloco de GPU carregados diretamente — passthrough de BCn, descompactação Zstandard e Basis Universal (ETC1S / UASTC) transcodificado para BC7. Os níveis de mipmap (mip levels) são preservados.

O suporte a KTX2 reside em um módulo ktx2 independente e autônomo do engine (com um transcodificador Basis Universal embutido), integrado por trás de loadTexture para que os materiais e importadores permaneçam independentes de formato.


Materiais PBR

Um .material é um pequeno asset JSON que referencia um shader por GUID e armazena valores para os parâmetros expostos por esse shader. O shader nativo PBR (Metallic-Roughness) expõe:

Parâmetro Tipo Notas
base_color color tonalidade albedo (RGBA)
metallic, roughness scalar 0–1
emissive, emissive_strength color / scalar
normal_scale, occlusion_strength scalar
alpha_cutoff scalar para transparência mascarada
albedo_map, metallic_roughness_map, normal_map, emissive_map, occlusion_map texture vinculado por GUID

Como um material gerado é um asset normal, você pode editá-lo no Inspector ou substituir a mesh por um material diferente sem alterar o modelo. Quando você define a mesh de um MeshRenderer para um modelo e seu material ainda está vazio, a Turian o preenche com o material gerado principal do modelo de forma automática.

Você também pode criar materiais do zero através do Asset Browser, incluindo presets nativos (Default, Metal, Plastic, Emissive, Glass).


Exemplo

O exemplo 3d-model-materials mostra três objetos lado a lado: um cubo OBJ com o preset nativo Metal, a WaterBottle da Khronos como glTF (mapas .png externos) e a mesma garrafa como GLB (mapas embutidos extraídos na importação). É estruturado para escalar para cenas grandes como Sponza ou Bistro — coloque o modelo em assets/models/, abra o projeto e adicione-o a uma cena.

Consulte também a Referência de Componentes para o componente MeshRenderer e as Configurações do Projeto para a cena de inicialização.


← Toda a documentação Editar esta página