Início
Serviços
Configurador 3D de produto Visualização 3D web Modelização 3D de catálogo Packshot 3D fotorrealista Realidade aumentada Configurador 3D Modular
Setores
Mobiliário Têxtil e moda Joalheria e luxo Artigos publicitários Equipamentos desportivos
Integrações
Shopify WooCommerce PrestaShop WordPress
Recursos
FAQ Documentação Blog Sobre nós Contacto
Marcar uma reunião
Documentação técnica

Boas práticas
3DVue

Guias técnicos para preparar seus arquivos 3D, texturas, arquivos BAT e integrar o configurador no seu site. Última atualização: abril de 2026.

Blender / GLTF
UV Mapping
Texturas PBR
BAT SVG
Web Component
01

Preparar seus arquivos 3D

Formatos aceitos, regras de conversão e boas práticas no Blender para uma integração sem fricções.

Formatos aceitos

A plataforma 3DVue aceita vários formatos 3D. GLTF é o formato recomendado : oferece a melhor relação qualidade/tamanho de arquivo para renderização web em tempo real.

.FBX
Compatível, mas menos otimizado que GLTF para a web. Usar se GLTF não estiver disponível no seu software.
.DAE (Collada)
Útil como formato intermediário ao converter do SolidWorks ou outro software CAD via FreeCAD.
Fotos / Plantas
Se não tiver arquivos 3D : fotos de frente, lado, cima e baixo. Começamos do zero.

Converter do SolidWorks : STEP / STL → GLTF

Os arquivos de software CAD (SolidWorks, Fusion 360, CATIA) geralmente estão no formato .STEP, .STP ou .STL. Precisam ser convertidos antes da integração.

Método recomendado: FreeCAD : gratuito, de código aberto, excelente para conversão CAD → GLTF sem perda de geometria.
FreeCAD : procedimento CAD → GLTF
1. Abrir o FreeCAD
2. Importar o arquivo STEP/STL
   Ctrl + I → selecionar seu arquivo .stp ou .stl

3. Exportar para GLTF ou DAE
   Ctrl + E → escolher formato DAE ou GLTF

Conversor online (alternativa rápida):
   https://imagetostl.com/fr/convertir/un-fichier/stp/en/glb
Arquivos CAD industriais frequentemente contêm milhões de faces : muitas para renderização web em tempo real. Retopologia é frequentemente necessária após a conversão. A 3DVue cuida disso como parte do projeto de modelagem.

Exportação do Blender

Se você trabalha diretamente no Blender, aqui estão as configurações de exportação GLTF recomendadas para a plataforma 3DVue. Usar a compressão Draco reduz significativamente o tamanho do arquivo.

Blender : configurações de exportação GLTF Arquivo > Exportar > glTF 2.0
Formato:          glTF Binary (.glb)  ← agrupa tudo em um arquivo
Compressão:       Draco ativado       ← reduz o tamanho em 60-80%
Texturas:         Incluir → marcar
Materiais:        Exportar materiais → marcar
Transformações:   Aplicar → marcar    ← obrigatório, ver seção Transformações

Nomenclatura de coleções no Blender

Os scripts automatizam a exportação de arquivos GLTF e mapas UV. Para funcionar corretamente, as coleções do Blender devem seguir uma estrutura precisa.

Sem maiúsculas, sem caracteres acentuados, sem espaços nos nomes das coleções. Os scripts não funcionam se essa regra não for seguida.
Estrutura de coleções
Collection
  └── nome-produto             ← sem acentos nem espaços
        ├── modelisation         ← todos os objetos 3D
        └── gltf                 ← arquivos de exportação gerados

Exemplos corretos:
  nome-produto: butterfly-chair       ✓
  nome-produto: tolix-chair-aExemplos incorretos:
  nome-produto: Butterfly Chair       ✗ maiúsculas + espaço
  nome-produto: cadeira-estante       ✗ caracteres acentuados

Transformações & escala

  • Sempre aplicar transformações Ctrl + A → Todas as Transformações antes de exportar : caso contrário os mapas UV ficam incorretos
  • Trabalhar na escala 1 (escala real em metros) : evita erros de escala no configurador
  • Se um objeto não toca o chão (ex.: uma luminária suspensa), adicionar um plano invisível chamado RA de tamanho 0.0001m na posição 0,0,0 para realidade aumentada
02

UV Mapping

O desdobramento UV determina a qualidade da renderização de texturas. Um UV mal feito cria distorções visíveis : os padrões se esticam ou comprimem em certas faces.

Addons recomendados para o Blender

Esses addons são usados sistematicamente pela equipe da 3DVue para garantir UVs de qualidade em todos os projetos.

AddonUso principal
UV Toolkit Mapa checker para visualizar distorções UV : essencial para verificar a qualidade do desdobramento antes de exportar
Texel Density Garante a consistência de densidade entre todos os objetos do mesmo projeto. Se a madeira aparece em vários objetos, deve sempre ter o mesmo tamanho aparente
UVPackmaster Otimiza o posicionamento das ilhas UV no mapa, gerencia a orientação de acordo com a direção do objeto (útil para madeira, tecidos com padrão direcional)
Mio3 Retifica UVs distorcidos, permite sobrepor UVs similares (economiza espaço no mapa UV)

Consistência de Texel Density

A densidade de texels define quantos pixels de textura cobrem uma determinada superfície real. Se dois objetos do mesmo cliente tiverem densidades de texels diferentes, uma textura de madeira aparecerá em escalas diferentes em cada objeto : o que não é realista.

Regra: definir um valor de densidade de texels comum por projeto no início da modelagem, e aplicá-lo a todos os objetos pelo addon Texel Density. Os materiais (madeira, tecido, metal) sempre aparecerão na mesma escala de um objeto para outro.

Preferir desdobramentos UV baseados em costuras com o método Conformal : exceto para objetos de cor uniforme que não precisam de um desdobramento preciso.

UV para BAT SVG

Quando o configurador usa um BAT SVG (personalização com upload de logo ou texto), regras adicionais se aplicam ao desdobramento UV.

  • Todos os UVs devem caber em um único mapa UV
  • Exportar o mapa UV em 4096×4096 px
  • O GLTF deve corresponder exatamente ao mapa UV exportado
  • Um script do Blender automatiza a exportação do GLTF e do mapa UV : as coleções devem estar corretamente nomeadas para funcionar
  • Se necessário, pintar no mapa UV para ajudar a criar o arquivo do Illustrator (alinhamento de padrões)
03

Texturas PBR

Convenções de nomenclatura, formatos e especificações para arquivos de textura compatíveis com a plataforma 3DVue.

Nomenclatura de arquivos de textura

Cada canal PBR corresponde a um arquivo de textura com um nome padronizado. A plataforma identifica o papel de cada textura pelo seu nome.

Nome do arquivoPapelSuporte
albedo Cor base do material (também chamado de difuso) ✅ Completo
roughness Nível de brilho : branco = fosco, preto = brilhante ✅ Completo
metallic Propriedades metálicas : reflexo do ambiente ✅ Completo
normal Relevo falso : simula saliências e reentrâncias sem polígonos adicionais ✅ Completo
emissive Zonas luminosas (LEDs, telas, peças retroiluminadas) ✅ Completo
occlusion Sombras de contato entre superfícies (oclusão ambiental) ✅ Completo
bump Alternativa ao mapa normal : ignorado se já houver um mapa normal ⚠️ Ignorado se há normal
alpha Transparência : a testar caso a caso, incompatível com RA ⚠️ Incompatível com RA

Formatos & resolução

  • Formato quadrado obrigatório : 1024×1024 ou 2048×2048 (máximo 2K)
  • Formato de arquivo: PNG (recomendado para transparência e qualidade) ou JPEG (tamanho de arquivo menor)
  • Um mapa normal muito pesado pode ser comprimido sem perda via imagecompressor.com
Texturas não quadradas ou superiores a 2K podem causar problemas de exibição ou desempenho no celular. Sempre exportar em formato quadrado.
04

Criar um BAT SVG

Guia do Illustrator para projetos de personalização : upload de logo, texto gravado, zonas de marcação. O BAT SVG é o arquivo de produção gerado pelo configurador.

Regras gerais

  • Formato quadrado obrigatório, resolução 4K (4096×4096 px)
  • Nomenclatura: BAT-nomemodelo-dimensao_albedo.svg
  • Sem caracteres acentuados, sem espaços no nome do arquivo
  • Todos os elementos editáveis devem estar vetorizados no SVG : sem elementos raster
Convenção de nomenclatura
Formato:  BAT-nomemodelo-dimensao_albedo.svg

Exemplos:
  BAT-camiseta-tamanhoG_albedo.svgBAT-caneca-300ml_albedo.svgBAT-camiseta tamanho G albedo.svg    ✗ espaços não permitidos
  BAT-camiseta-tamanhoé_albedo.svg     ✗ caracteres acentuados não permitidos

Estrutura de camadas no Illustrator

As camadas do Illustrator devem ser organizadas de acordo com uma estrutura precisa para que o configurador possa identificar as zonas editáveis e as zonas de referência.

Nome da camadaPapelEditável?
masqué Camada de trabalho : elementos de teste ou reservados sem excluir ✅ Livre
non vecto Texto não vetorizado mantido para reutilização : não exportado ✅ Livre
gabarit Contornos do modelo 3D : guia de posicionamento, não modificar 🚫 Não tocar
logo Todos os logos corretamente renomeados ✅ Livre
design, design-1, design-2 Elementos gráficos para cada variante de design ✅ Livre
présentation Template comum a todos os designs : não modificar 🚫 Não tocar

Exportação SVG do Illustrator

  • Vetorizar todos os elementos editáveis antes de exportar : Shift + Ctrl + O
  • Nomear o arquivo exportado com a convenção nomedesign_albedo.svg
  • Sem elementos raster no arquivo exportado : tudo deve ser vetorial
  • Verificar que as camadas gabarit e présentation estejam ocultas ao exportar
Atalhos úteis do Illustrator:
Shift + Ctrl + O : vetorizar forma selecionada
Ctrl + C : copiar
Ctrl + Shift + V : colar no mesmo lugar
05

Script de renomeação para o Illustrator

Script JSX para renomear automaticamente os elementos selecionados no formato color_XXX. Economia considerável de tempo em projetos com muitas zonas editáveis.

Instalação

Instalação do script
1. Copiar o código abaixo em um arquivo de texto
2. Renomear o arquivo como RenameColor.jsx
3. Copiar para a pasta de scripts do Illustrator:
   C:\Program Files\Adobe\Adobe Illustrator 2026\Presets\pt_BR\Scripts\
4. Executar do Illustrator:
   Arquivo → Scripts → RenameColor

Código do script

RenameColor.jsx Adobe Illustrator
// Script Rename Color : Ultra Fast
// Renomeia todos os objetos selecionados para "color_XXX"

(function() {
  if (app.documents.length === 0) {
    alert("Por favor abra um documento do Illustrator.");
    return;
  }

  var doc       = app.activeDocument;
  var selection = doc.selection;

  if (selection.length === 0) {
    alert("Por favor selecione pelo menos um objeto para renomear.");
    return;
  }

  var number = prompt("Número (ex.: 001, 002, etc.):", "001");

  if (number === null || number === "") { return; }

  var finalName = "color" + number;

  for (var i = 0; i < selection.length; i++) {
    selection[i].name = finalName;
  }

  alert(selection.length + " objeto(s) renomeado(s) para: " + finalName);
})();
Como usar: selecionar uma ou várias camadas no Illustrator, executar o script via Arquivo → Scripts → RenameColor, inserir o número (001, 002…) e confirmar. Todos os objetos selecionados são renomeados para color001 simultaneamente.
06

Integrar o visualizador 3DVue

O visualizador 3DVue é um Web Component nativo. Funciona em qualquer ambiente HTML : Shopify, WooCommerce, PrestaShop, WordPress ou um site personalizado.

Incluir o script

Adicione o script uma vez no seu <head> ou antes de </body>. Uma única inclusão é suficiente para todas as páginas do seu site.

HTML : inclusão do script CDN jsDelivr
<script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script>

Declarar o componente

Coloque a tag <viewer-3dvue> onde deseja que o visualizador apareça. Dois atributos são obrigatórios: name (identificador único na página) e src (URL do seu configurador, fornecida pela 3DVue na entrega).

HTML : componente visualizador
<!-- Atributos obrigatórios -->
<viewer-3dvue
  name="meuVisualizador"
  src="https://app.3dvue.fr/view?p=AB01-CD02"
></viewer-3dvue>

<!-- Com debug ativado (logs no console) -->
<viewer-3dvue
  name="meuVisualizador"
  src="https://app.3dvue.fr/view?p=AB01-CD02"
  debug
></viewer-3dvue>
A URL do parâmetro src é específica de cada projeto : ela codifica os objetos e materiais do configurador. A 3DVue fornece na entrega.

Controle sem JavaScript

O componente escuta automaticamente os eventos click e change em qualquer elemento que tenha os seguintes atributos. Sem JavaScript necessário.

AtributoValorUso
viewer-3dvue Nome do visualizador alvo Obrigatório em cada elemento disparador
viewer-3dvue-clic setMaterial Dispara uma mudança de material ao clicar
viewer-3dvue-change setMaterial Dispara uma mudança ao selecionar em <select>
viewer-3dvue-meshs-materials JSON {"meshIndex":"materialId"} Materiais a aplicar (vários meshes suportados)
viewer-3dvue-mesh "1,2,3" Índices de mesh alvo para um <select>
Exemplos : botão e select
<!-- Botão que muda vários materiais ao clicar -->
<button
  viewer-3dvue="meuVisualizador"
  viewer-3dvue-clic="setMaterial"
  viewer-3dvue-meshs-materials='{"1":"0n","3":"2b"}'
>
  Azul Meia-Noite
</button>

<!-- Select que aplica o valor escolhido -->
<select
  viewer-3dvue="meuVisualizador"
  viewer-3dvue-change="setMaterial"
  viewer-3dvue-mesh="2,4"
>
  <option value="0n">Vermelho</option>
  <option value="1a">Azul</option>
</select>

API JavaScript

Para casos avançados : carregamento dinâmico, captura de imagem, exportação SVG. Recuperar a referência do componente via querySelector.

MétodoDescrição
setMaterial(materials, index)Aplica materiais aos meshes de um objeto
loadModel(id)Substitui o modelo atual
addModel(id)Adiciona um objeto à cena
removeModel(index)Remove um objeto pelo seu índice
resetCamera()Restaura a câmera à sua posição inicial
pauseRenderer() / startRenderer()Controle manual do renderizador (gerenciado automaticamente pelo IntersectionObserver)
captureToBase64()Captura o render como imagem base64 → evento onCaptureBase64Complete
exportSVG()Gera o BAT SVG do produto → evento onSVGExportComplete
addSVGText(text, opts)Adiciona texto em uma zona editável do produto
addSVGImage(source, opts)Adiciona uma imagem (File ou ArrayBuffer) em uma zona editável
loadFonts(fonts)Pré-carrega fontes do Google Fonts ou fontes .woff2 personalizadas
setSVGElementParam(param, value, id)Modifica um parâmetro de um elemento SVG : fill, text, fontFamily, scaleX, scaleY, angle, colorStop.N. Sem id: aplica-se ao elemento atualmente selecionado
removeSVGElement(id)Remove um elemento SVG adicionado (texto ou imagem). Sem argumento: remove o elemento selecionado
showSVG2D() / hideSVG2D()Alterna o viewer para a vista plana 2D para edição SVG / volta à vista 3D
captureSVGToBase64()Captura a textura SVG como imagem base64

Eventos

Escute os eventos diretamente no elemento viewer-3dvue através de addEventListener.

EventoPropriedades e.detailDescrição
onLoadComplete-Viewer carregado e pronto : momento recomendado para chamar loadFonts()
onCaptureBase64Completebase64, errorRender capturado por captureToBase64()
onSVGExportCompletepath, errorProva gerada por exportSVG() : path = URL do ficheiro no servidor
onSVGObjectSelectedobj.id, obj.type, obj.text, obj.fill, obj.fontFamily, obj.scale, obj.angleUm elemento SVG foi selecionado no viewer
onSVGObjectDeselected-O elemento SVG ativo foi desselecionado
JavaScript : exemplos da API
// Obter a referência do componente
const viewer = document.querySelector('viewer-3dvue[name="meuVisualizador"]');

// Aguardar que o viewer esteja pronto (recomendado para loadFonts)
viewer.addEventListener("onLoadComplete", () => {
  viewer.loadFonts([{ family: "Bebas Neue" }, { family: "Pacifico" }]);
});

// Mudar materiais
viewer.setMaterial({ "1": "0n", "3": "2b" });

// Modificar o elemento SVG selecionado
viewer.setSVGElementParam("fill", "#ff0000");          // cor
viewer.setSVGElementParam("text", "O meu texto");      // conteúdo do texto
viewer.setSVGElementParam("colorStop.0", "#7C3AED", "zone-id"); // gradiente

// Reagir à seleção de um elemento SVG
viewer.addEventListener("onSVGObjectSelected", (e) => {
  const obj = e.detail.obj;
  if (obj.type === "text") inputText.value = obj.text ?? "";
});
viewer.addEventListener("onSVGObjectDeselected", () => { inputText.value = ""; });

// Capturar o render atual
viewer.captureToBase64();
viewer.addEventListener("onCaptureBase64Complete", (e) => {
  const { base64, error } = e.detail;
  if (!error) document.querySelector("#preview").src = base64;
});
Guias de integração por plataforma: Shopify, WooCommerce, PrestaShop, WordPress.
Uma dúvida sobre esta documentação?

Matthieu responde diretamente : sem sistema de tickets, sem demora. Se algo não estiver claro ou seu caso não estiver coberto aqui, agende uma reunião.