Home
Servizi
Configuratore 3D prodotto Visualizzazione Web 3D Modellazione 3D catalogo Packshot 3D Fotorealistico Realtà Aumentata
Settori
Arredamento Tessile & Moda Gioielli e Lusso Gadget promozionali Abbigliamento sportivo
Integrazioni
Shopify WooCommerce PrestaShop WordPress
Risorse
FAQ Documentazione Blog Valori Contatto
Prenota una chiamata
Documentazione tecnica

Buone pratiche
3DVue

Guide tecniche per preparare i vostri file 3D, texture, asset BAT e integrare il configuratore nel vostro sito. Ultimo aggiornamento: aprile 2026.

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

Preparare i vostri file 3D

Formati accettati, regole di conversione e buone pratiche in Blender per un'integrazione senza attriti.

Formati accettati

La piattaforma 3DVue accetta diversi formati 3D. GLTF è il formato raccomandato — offre il miglior rapporto qualità/dimensione file per il rendering web in tempo reale.

.FBX
Compatibile, ma meno ottimizzato di GLTF per il web. Da usare se GLTF non è disponibile nel vostro software.
.DAE (Collada)
Utile come formato intermedio nella conversione da SolidWorks o altro software CAD tramite FreeCAD.
Foto / Disegni
Se non avete file 3D — foto frontali, laterali, dall'alto e dal basso. Partiamo da zero.

Convertire da SolidWorks — STEP / STL → GLTF

I file di software CAD (SolidWorks, Fusion 360, CATIA) sono generalmente in formato .STEP, .STP o .STL. Devono essere convertiti prima dell'integrazione.

Metodo raccomandato: FreeCAD — gratuito, open source, eccellente per la conversione CAD → GLTF senza perdita di geometria.
FreeCAD — procedura CAD → GLTF
1. Aprire FreeCAD
2. Importare il file STEP/STL
   Ctrl + I → selezionare il file .stp o .stl

3. Esportare in GLTF o DAE
   Ctrl + E → scegliere il formato DAE o GLTF

Convertitore online (alternativa rapida):
   https://imagetostl.com/fr/convertir/un-fichier/stp/en/glb
I file CAD industriali contengono spesso milioni di facce — troppo per il rendering web in tempo reale. Una retopologia è spesso necessaria dopo la conversione. 3DVue se ne occupa nell'ambito del progetto di modellazione.

Esportazione da Blender

Se lavorate direttamente in Blender, ecco le impostazioni di esportazione GLTF raccomandate per la piattaforma 3DVue. Usare la compressione Draco riduce significativamente la dimensione del file.

Blender — impostazioni di esportazione GLTF File > Esporta > glTF 2.0
Formato:          glTF Binary (.glb)  ← raggruppa tutto in un file
Compressione:     Draco attivato      ← riduce la dimensione del 60-80%
Texture:          Includi → spuntare
Materiali:        Esporta materiali → spuntare
Trasformazioni:   Applica → spuntare   ← obbligatorio, vedere sezione Trasformazioni

Nomenclatura delle collezioni in Blender

Gli script automatizzano l'esportazione dei file GLTF e delle mappe UV. Per funzionare correttamente, le collezioni di Blender devono seguire una struttura precisa.

Nessuna maiuscola, nessun carattere accentato, nessuno spazio nei nomi delle collezioni. Gli script non possono funzionare se questa regola non viene rispettata.
Struttura delle collezioni
Collection
  └── nome-prodotto           ← senza accenti né spazi
        ├── modelisation         ← tutti gli oggetti 3D
        └── gltf                 ← file di esportazione generati

Esempi corretti:
  nome-prodotto: butterfly-chair      ✓
  nome-prodotto: tolix-chair-aEsempi errati:
  nome-prodotto: Butterfly Chair      ✗ maiuscole + spazio
  nome-prodotto: sedia-scaffalé       ✗ caratteri accentati

Trasformazioni & scala

  • Applicare sempre le trasformazioni Ctrl + A → Tutte le Trasformazioni prima di esportare — altrimenti le mappe UV sono errate
  • Lavorare a scala 1 (scala reale in metri) — evita errori di scala nel configuratore
  • Se un oggetto non tocca il suolo (es. una lampada a sospensione), aggiungere un piano invisibile chiamato RA di dimensione 0.0001m in posizione 0,0,0 per la realtà aumentata
02

UV Mapping

Lo sviluppo UV determina la qualità del rendering delle texture. Un UV mal fatto crea distorsioni visibili — i pattern si stirano o si comprimono su certe facce.

Addon consigliati per Blender

Questi addon sono usati sistematicamente dal team di 3DVue per garantire UV di qualità su tutti i progetti.

AddonUso principale
UV Toolkit Mappa checker per visualizzare le distorsioni UV — essenziale per verificare la qualità dello sviluppo prima di esportare
Texel Density Garantisce la coerenza di densità tra tutti gli oggetti dello stesso progetto. Se il legno appare in più oggetti, deve sempre avere la stessa dimensione apparente
UVPackmaster Ottimizza il posizionamento delle isole UV sulla mappa, gestisce l'orientamento in base alla direzione dell'oggetto (utile per legno, tessuti con pattern direzionali)
Mio3 Raddrizza UV distorti, permette di sovrapporre UV simili (risparmia spazio sulla mappa UV)

Coerenza della Texel Density

La densità texel definisce quanti pixel di texture coprono una determinata superficie reale. Se due oggetti dello stesso cliente hanno densità texel diverse, una texture in legno apparirà a scale diverse su ciascun oggetto — il che non è realistico.

Regola: definire un valore di densità texel comune per progetto all'inizio della modellazione, e applicarlo a tutti gli oggetti tramite l'addon Texel Density. I materiali (legno, tessuto, metallo) appariranno sempre alla stessa scala da un oggetto all'altro.

Privilegiare sviluppi UV basati su cuciture con il metodo Conformal — eccetto per oggetti di colore uniforme che non richiedono uno sviluppo preciso.

UV per BAT SVG

Quando il configuratore usa un BAT SVG (personalizzazione con caricamento logo o testo), si applicano regole aggiuntive allo sviluppo UV.

  • Tutti gli UV devono rientrare in un'unica mappa UV
  • Esportare la mappa UV a 4096×4096 px
  • Il GLTF deve corrispondere esattamente alla mappa UV esportata
  • Uno script Blender automatizza l'esportazione del GLTF e della mappa UV — le collezioni devono essere correttamente nominate perché funzioni
  • Se necessario, dipingere sulla mappa UV per aiutare a creare il file Illustrator (allineamento dei pattern)
03

Texture PBR

Convenzioni di nomenclatura, formati e specifiche per i file di texture compatibili con la piattaforma 3DVue.

Nomenclatura dei file di texture

Ogni canale PBR corrisponde a un file di texture con un nome standardizzato. La piattaforma identifica il ruolo di ogni texture tramite il suo nome.

Nome fileRuoloSupporto
albedo Colore base del materiale (detto anche diffuso) ✅ Completo
roughness Livello di lucentezza — bianco = opaco, nero = lucido ✅ Completo
metallic Proprietà metalliche — riflesso dell'ambiente ✅ Completo
normal Rilievo falso — simula sporgenze e rientranze senza poligoni aggiuntivi ✅ Completo
emissive Zone luminose (LED, schermi, parti retroilluminate) ✅ Completo
occlusion Ombre di contatto tra superfici (occlusione ambientale) ✅ Completo
bump Alternativa alla mappa normal — ignorata se è già presente una mappa normal ⚠️ Ignorato se c'è normal
alpha Trasparenza — da testare caso per caso, non compatibile con RA ⚠️ Non compatibile con RA

Formati & risoluzione

  • Formato quadrato obbligatorio — 1024×1024 o 2048×2048 (massimo 2K)
  • Formato file: PNG (raccomandato per trasparenza e qualità) o JPEG (dimensione file più leggera)
  • Una mappa normal troppo pesante può essere compressa senza perdita tramite imagecompressor.com
Le texture non quadrate o superiori a 2K possono causare problemi di visualizzazione o prestazioni su mobile. Esportare sempre in formato quadrato.
04

Creare un BAT SVG

Guida Illustrator per i progetti di personalizzazione — caricamento logo, testo inciso, zone di marcatura. Il BAT SVG è il file di produzione generato dal configuratore.

Regole generali

  • Formato quadrato obbligatorio, risoluzione 4K (4096×4096 px)
  • Nomenclatura: BAT-nomemodello-dimensione_albedo.svg
  • Nessun carattere accentato, nessuno spazio nel nome del file
  • Tutti gli elementi modificabili devono essere vettorizzati nell'SVG — nessun elemento raster
Convenzione di nomenclatura
Formato:  BAT-nomemodello-dimensione_albedo.svg

Esempi:
  BAT-maglietta-tagliaL_albedo.svgBAT-tazza-25cl_albedo.svgBAT-maglietta taglia L albedo.svg   ✗ spazi non ammessi
  BAT-maglietta-tagliaé_albedo.svg    ✗ caratteri accentati non ammessi

Struttura dei livelli in Illustrator

I livelli di Illustrator devono essere organizzati secondo una struttura precisa perché il configuratore possa identificare le zone modificabili e le zone di riferimento.

Nome livelloRuoloModificabile?
masqué Livello di lavoro — elementi di test o accantonati senza eliminare ✅ Libero
non vecto Testo non vettorizzato conservato per riutilizzo — non esportato ✅ Libero
gabarit Contorni del modello 3D — guida di posizionamento, da non modificare 🚫 Non toccare
logo Tutti i logo correttamente rinominati ✅ Libero
design, design-1, design-2 Elementi grafici per ogni variante di design ✅ Libero
présentation Template comune a tutti i design — da non modificare 🚫 Non toccare

Esportazione SVG da Illustrator

  • Vettorizzare tutti gli elementi modificabili prima di esportare — Shift + Ctrl + O
  • Nominare il file esportato con la convenzione nomedesign_albedo.svg
  • Nessun elemento raster nel file esportato — tutto deve essere vettoriale
  • Verificare che i livelli gabarit e présentation siano nascosti durante l'esportazione
Scorciatoie utili di Illustrator:
Shift + Ctrl + O — vettorizzare la forma selezionata
Ctrl + C — copiare
Ctrl + Shift + V — incollare nella stessa posizione
05

Script di rinomina per Illustrator

Script JSX per rinominare automaticamente gli elementi selezionati nel formato color_XXX. Risparmio considerevole di tempo nei progetti con molte zone modificabili.

Installazione

Installazione dello script
1. Copiare il codice seguente in un file di testo
2. Rinominare il file come RenameColor.jsx
3. Copiare nella cartella degli script di Illustrator:
   C:\Program Files\Adobe\Adobe Illustrator 2026\Presets\fr_FR\Scripts\
4. Eseguire da Illustrator:
   File → Script → RenameColor

Codice dello script

RenameColor.jsx Adobe Illustrator
// Script Rename Color — Ultra Fast
// Rinomina tutti gli oggetti selezionati in "color_XXX"

(function() {
  if (app.documents.length === 0) {
    alert("Apri un documento di Illustrator.");
    return;
  }

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

  if (selection.length === 0) {
    alert("Seleziona almeno un oggetto da rinominare.");
    return;
  }

  var number = prompt("Numero (es. 001, 002, ecc.):", "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 + " oggetto/i rinominato/i in: " + finalName);
})();
Come usarlo: selezionare uno o più livelli in Illustrator, eseguire lo script tramite File → Script → RenameColor, inserire il numero (001, 002…) e confermare. Tutti gli oggetti selezionati vengono rinominati in color001 simultaneamente.
06

Integrare il viewer 3DVue

Il viewer 3DVue è un Web Component nativo. Funziona in qualsiasi ambiente HTML — Shopify, WooCommerce, PrestaShop, WordPress, o un sito su misura.

Includere lo script

Aggiungete lo script una volta nel vostro <head> o prima di </body>. Una sola inclusione è sufficiente per tutte le pagine del vostro sito.

HTML — inclusione dello script CDN jsDelivr
<script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script>

Dichiarare il componente

Posizionate il tag <viewer-3dvue> dove volete che appaia il viewer. Due attributi sono obbligatori: name (identificatore unico nella pagina) e src (URL del vostro configuratore, fornita da 3DVue alla consegna).

HTML — componente viewer
<!-- Attributi obbligatori -->
<viewer-3dvue
  name="mioViewer"
  src="https://app.3dvue.fr/view?p=AB01-CD02"
></viewer-3dvue>

<!-- Con debug attivato (log in console) -->
<viewer-3dvue
  name="mioViewer"
  src="https://app.3dvue.fr/view?p=AB01-CD02"
  debug
></viewer-3dvue>
L'URL del parametro src è specifica per ogni progetto — codifica gli oggetti e i materiali del configuratore. Ve la fornisce 3DVue alla consegna.

Controllo senza JavaScript

Il componente ascolta automaticamente gli eventi click e change su qualsiasi elemento che abbia i seguenti attributi. Nessun JavaScript necessario.

AttributoValoreUso
viewer-3dvue Nome del viewer di destinazione Obbligatorio su ogni elemento trigger
viewer-3dvue-clic setMaterial Attiva un cambio di materiale al clic
viewer-3dvue-change setMaterial Attiva un cambio alla selezione in <select>
viewer-3dvue-meshs-materials JSON {"meshIndex":"materialId"} Materiali da applicare (più mesh supportati)
viewer-3dvue-mesh "1,2,3" Indici mesh di destinazione per un <select>
Esempi — pulsante e select
<!-- Pulsante che cambia più materiali al clic -->
<button
  viewer-3dvue="mioViewer"
  viewer-3dvue-clic="setMaterial"
  viewer-3dvue-meshs-materials='{"1":"0n","3":"2b"}'
>
  Blu Notte
</button>

<!-- Select che applica il valore scelto -->
<select
  viewer-3dvue="mioViewer"
  viewer-3dvue-change="setMaterial"
  viewer-3dvue-mesh="2,4"
>
  <option value="0n">Rosso</option>
  <option value="1a">Blu</option>
</select>

API JavaScript

Per casi avanzati — caricamento dinamico, cattura immagine, esportazione SVG. Recuperare il riferimento del componente tramite querySelector.

MetodoDescrizione
setMaterial(materials, index)Applica materiali ai mesh di un oggetto
loadModel(id)Sostituisce il modello attuale
addModel(id)Aggiunge un oggetto alla scena
removeModel(index)Rimuove un oggetto per indice
resetCamera()Ripristina la camera alla posizione iniziale
pauseRenderer() / startRenderer()Controllo manuale del renderer (gestito automaticamente da IntersectionObserver)
captureToBase64()Cattura il render come immagine base64 → evento onCaptureBase64Complete
exportSVG()Genera il BAT SVG del prodotto → evento onSVGExportComplete
addSVGText(text, opts)Aggiunge testo in una zona modificabile del prodotto
addSVGImage(source, opts)Aggiunge un'immagine (File o ArrayBuffer) in una zona modificabile
loadFonts(fonts)Precarica font da Google Fonts o font .woff2 personalizzati
setSVGElementParam(param, value, id)Modifica un parametro di un elemento SVG — fill, text, fontFamily, scaleX, scaleY, angle, colorStop.N. Senza id: si applica all'elemento attualmente selezionato
removeSVGElement(id)Rimuove un elemento SVG aggiunto (testo o immagine). Senza argomento: rimuove l'elemento selezionato
showSVG2D() / hideSVG2D()Passa il viewer alla vista piatta 2D per la modifica SVG / ritorna alla vista 3D
captureSVGToBase64()Cattura la texture SVG come immagine base64

Eventi

Ascoltare gli eventi direttamente sull'elemento viewer-3dvue tramite addEventListener.

EventoProprietà e.detailDescrizione
onLoadCompleteViewer caricato e pronto — momento consigliato per chiamare loadFonts()
onCaptureBase64Completebase64, errorRender catturato da captureToBase64()
onSVGExportCompletepath, errorProva generata da exportSVG()path = URL del file sul server
onSVGObjectSelectedobj.id, obj.type, obj.text, obj.fill, obj.fontFamily, obj.scale, obj.angleUn elemento SVG è stato selezionato nel viewer
onSVGObjectDeselectedL'elemento SVG attivo è stato deselezionato
JavaScript — esempi dell'API
// Ottenere il riferimento del componente
const viewer = document.querySelector('viewer-3dvue[name="mioViewer"]');

// Attendere che il viewer sia pronto (consigliato per loadFonts)
viewer.addEventListener("onLoadComplete", () => {
  viewer.loadFonts([{ family: "Bebas Neue" }, { family: "Pacifico" }]);
});

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

// Modificare l'elemento SVG selezionato
viewer.setSVGElementParam("fill", "#ff0000");          // colore
viewer.setSVGElementParam("text", "Il mio testo");      // contenuto testo
viewer.setSVGElementParam("colorStop.0", "#7C3AED", "zone-id"); // gradiente

// Reagire alla selezione di un elemento SVG
viewer.addEventListener("onSVGObjectSelected", (e) => {
  const obj = e.detail.obj;
  if (obj.type === "text") inputText.value = obj.text ?? "";
});
viewer.addEventListener("onSVGObjectDeselected", () => { inputText.value = ""; });

// Catturare il render attuale
viewer.captureToBase64();
viewer.addEventListener("onCaptureBase64Complete", (e) => {
  const { base64, error } = e.detail;
  if (!error) document.querySelector("#preview").src = base64;
});
Guide di integrazione per piattaforma: Shopify, WooCommerce, PrestaShop, WordPress.
Una domanda su questa documentazione?

Matthieu risponde direttamente — senza ticketing, senza ritardi. Se qualcosa non è chiaro o il vostro caso non è coperto qui, prenotate un incontro.