Best Practices
3DVue
Technische Leitfäden zur Vorbereitung Ihrer 3D-Dateien, Texturen, BAT-Assets und zur Integration des Konfigurators auf Ihrer Website. Letzte Aktualisierung: April 2026.
Ihre 3D-Dateien vorbereiten
Akzeptierte Formate, Konvertierungsregeln und Best Practices in Blender für eine reibungslose Integration.
Akzeptierte Formate
Die 3DVue-Plattform akzeptiert mehrere 3D-Formate. GLTF ist das empfohlene Format : es bietet das beste Qualitäts-/Dateigröße-Verhältnis für Echtzeit-Web-Rendering.
Konvertierung von SolidWorks : STEP / STL → GLTF
CAD-Software-Dateien (SolidWorks, Fusion 360, CATIA) liegen in der Regel im Format .STEP, .STP oder .STL vor. Sie müssen vor der Integration konvertiert werden.
1. FreeCAD öffnen 2. STEP/STL-Datei importieren Ctrl + I → Ihre .stp oder .stl-Datei auswählen 3. Als GLTF oder DAE exportieren Ctrl + E → Format DAE oder GLTF auswählen Online-Konverter (schnelle Alternative): https://imagetostl.com/fr/convertir/un-fichier/stp/en/glb
Export aus Blender
Wenn Sie direkt in Blender arbeiten, hier sind die empfohlenen GLTF-Exporteinstellungen für die 3DVue-Plattform. Die Verwendung der Draco-Komprimierung reduziert die Dateigröße erheblich.
Format: glTF Binary (.glb) ← fasst alles in einer Datei zusammen Komprimierung: Draco aktiviert ← reduziert die Größe um 60-80% Texturen: Einbeziehen → aktivieren Materialien: Materialien exportieren → aktivieren Transformationen: Anwenden → aktivieren ← obligatorisch, siehe Abschnitt Transformationen
Kollektionsbezeichnung in Blender
Die Skripte automatisieren den Export von GLTF-Dateien und UV-Karten. Damit sie korrekt funktionieren, müssen die Blender-Kollektionen einer präzisen Struktur folgen.
Collection └── produktname ← keine Akzente oder Leerzeichen ├── modelisation ← alle 3D-Objekte └── gltf ← generierte Exportdateien Richtige Beispiele: produktname: butterfly-chair ✓ produktname: tolix-chair-a ✓ Falsche Beispiele: produktname: Butterfly Chair ✗ Großbuchstaben + Leerzeichen produktname: silla-estantería ✗ Akzentzeichen
Transformationen & Maßstab
- Transformationen immer anwenden Ctrl + A → Alle Transformationen vor dem Export : sonst sind die UV-Karten falsch
- Mit Maßstab 1 arbeiten (reale Maße in Metern) : vermeidet Maßstabsfehler im Konfigurator
- Wenn ein Objekt den Boden nicht berührt (z. B. eine hängende Lampe), eine unsichtbare Ebene namens RA mit der Größe 0.0001m an Position 0,0,0 für Augmented Reality hinzufügen
UV Mapping
Das UV-Unwrapping bestimmt die Qualität des Textur-Renderings. Ein schlecht gemachtes UV erzeugt sichtbare Verzerrungen : Muster strecken oder stauchen sich auf bestimmten Flächen.
Empfohlene Addons für Blender
Diese Addons werden vom 3DVue-Team systematisch eingesetzt, um in allen Projekten qualitativ hochwertige UVs zu gewährleisten.
| Addon | Hauptverwendung |
|---|---|
| UV Toolkit | Checker-Map zur Visualisierung von UV-Verzerrungen : essenziell zur Überprüfung der Unwrapping-Qualität vor dem Export |
| Texel Density | Gewährleistet Dichtekonsistenz zwischen allen Objekten desselben Projekts. Wenn Holz auf mehreren Objekten erscheint, muss es immer die gleiche scheinbare Größe haben |
| UVPackmaster | Optimiert die Platzierung von UV-Inseln auf der Karte, verwaltet die Ausrichtung gemäß der Objektrichtung (nützlich für Holz, Stoffe mit gerichteten Mustern) |
| Mio3 | Begradigt verzerrte UVs, ermöglicht das Überlagern ähnlicher UVs (spart Platz auf der UV-Karte) |
Texel-Density-Konsistenz
Die Texel-Dichte definiert, wie viele Textur-Pixel eine bestimmte reale Oberfläche abdecken. Wenn zwei Objekte desselben Kunden unterschiedliche Texel-Dichten haben, erscheint eine Holztextur in jedem Objekt in unterschiedlichen Maßstäben : was nicht realistisch ist.
UV-Unwrapping auf Basis von Nähten mit der Conformal-Methode bevorzugen : außer für einfarbige Objekte, die kein präzises Unwrapping benötigen.
UV für BAT SVG
Wenn der Konfigurator ein BAT SVG verwendet (Personalisierung mit Logo- oder Texteingabe), gelten zusätzliche Regeln für das UV-Unwrapping.
- Alle UVs müssen in eine einzige UV-Karte passen
- UV-Karte in 4096×4096 px exportieren
- Die GLTF-Datei muss genau der exportierten UV-Karte entsprechen
- Ein Blender-Skript automatisiert den Export der GLTF-Datei und der UV-Karte : die Kollektionen müssen korrekt benannt sein, damit es funktioniert
- Bei Bedarf auf der UV-Karte malen, um die Erstellung der Illustrator-Datei zu unterstützen (Musterausrichtung)
PBR-Texturen
Namenskonventionen, Formate und Spezifikationen für Texturdateien, die mit der 3DVue-Plattform kompatibel sind.
Dateibezeichnung für Texturen
Jeder PBR-Kanal entspricht einer Texturdatei mit einem standardisierten Namen. Die Plattform identifiziert die Rolle jeder Textur anhand ihres Namens.
| Dateiname | Rolle | Unterstützung |
|---|---|---|
| albedo | Grundfarbe des Materials (auch Diffus genannt) | ✅ Vollständig |
| roughness | Glanzgrad : weiß = matt, schwarz = glänzend | ✅ Vollständig |
| metallic | Metalleigenschaften : Umgebungsreflexion | ✅ Vollständig |
| normal | Falsches Relief : simuliert Vorsprünge und Vertiefungen ohne zusätzliche Polygone | ✅ Vollständig |
| emissive | Leuchtbereiche (LEDs, Bildschirme, hinterleuchtete Teile) | ✅ Vollständig |
| occlusion | Kontaktschatten zwischen Oberflächen (Ambient Occlusion) | ✅ Vollständig |
| bump | Alternative zur Normal-Map : ignoriert, wenn bereits eine Normal-Map vorhanden | ⚠️ Ignoriert wenn Normal |
| alpha | Transparenz : je nach Fall zu testen, nicht kompatibel mit AR | ⚠️ Nicht kompatibel mit AR |
Formate & Auflösung
- Quadratisches Format obligatorisch : 1024×1024 oder 2048×2048 (maximal 2K)
- Dateiformat: PNG (empfohlen für Transparenz und Qualität) oder JPEG (leichtere Dateigröße)
- Eine zu schwere Normal-Map kann verlustfrei über imagecompressor.com komprimiert werden
Ein BAT SVG erstellen
Illustrator-Leitfaden für Personalisierungsprojekte : Logo-Upload, gravierter Text, Markierungsbereiche. Das BAT SVG ist die vom Konfigurator generierte Produktionsdatei.
Allgemeine Regeln
- Quadratisches Format obligatorisch, 4K-Auflösung (4096×4096 px)
- Namenskonvention: BAT-modellname-abmessung_albedo.svg
- Keine Akzentzeichen, keine Leerzeichen im Dateinamen
- Alle bearbeitbaren Elemente müssen im SVG vektorisiert sein : keine Rasterelemente
Format: BAT-modellname-abmessung_albedo.svg Beispiele: BAT-trikot-groesseL_albedo.svg ✓ BAT-becher-25cl_albedo.svg ✓ BAT-trikot groesse L albedo.svg ✗ Leerzeichen nicht erlaubt BAT-trikot-groessee_albedo.svg ✗ Akzentzeichen nicht erlaubt
Ebenenstruktur in Illustrator
Die Illustrator-Ebenen müssen nach einer präzisen Struktur organisiert sein, damit der Konfigurator bearbeitbare Zonen und Referenzzonen identifizieren kann.
| Ebenenname | Rolle | Bearbeitbar? |
|---|---|---|
| masqué | Arbeitsebene : Testelemente oder zurückgestellte Elemente ohne Löschen | ✅ Frei |
| non vecto | Nicht vektorisierter Text zur Wiederverwendung aufbewahrt : nicht exportiert | ✅ Frei |
| gabarit | 3D-Modell-Konturen : Platzierungshilfe, nicht ändern | 🚫 Nicht anfassen |
| logo | Alle korrekt umbenannten Logos | ✅ Frei |
| design, design-1, design-2… | Grafikelemente für jede Design-Variante | ✅ Frei |
| présentation | Gemeinsame Vorlage für alle Designs : nicht ändern | 🚫 Nicht anfassen |
SVG-Export aus Illustrator
- Alle bearbeitbaren Elemente vor dem Export vektorisieren : Shift + Ctrl + O
- Die exportierte Datei nach der Konvention designname_albedo.svg benennen
- Keine Rasterelemente in der exportierten Datei : alles muss vektoriell sein
- Sicherstellen, dass die Ebenen gabarit und présentation beim Export ausgeblendet sind
Shift + Ctrl + O : ausgewählte Form vektorisieren
Ctrl + C : kopieren
Ctrl + Shift + V : an gleicher Stelle einfügen
Umbenennungsskript für Illustrator
JSX-Skript zum automatischen Umbenennen der ausgewählten Elemente im Format color_XXX. Erhebliche Zeitersparnis bei Projekten mit vielen bearbeitbaren Zonen.
Installation
1. Den folgenden Code in eine Textdatei kopieren 2. Die Datei in RenameColor.jsx umbenennen 3. In den Illustrator-Skriptordner kopieren: C:\Program Files\Adobe\Adobe Illustrator 2026\Presets\fr_FR\Scripts\ 4. Aus Illustrator ausführen: Datei → Skripte → RenameColor
Skript-Code
// Script Rename Color : Ultra Fast // Benennt alle ausgewählten Objekte in "color_XXX" um (function() { if (app.documents.length === 0) { alert("Bitte öffnen Sie ein Illustrator-Dokument."); return; } var doc = app.activeDocument; var selection = doc.selection; if (selection.length === 0) { alert("Bitte wählen Sie mindestens ein Objekt zum Umbenennen aus."); return; } var number = prompt("Nummer (z.B. 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 + " Objekt(e) umbenannt in: " + finalName); })();
Den 3DVue-Viewer integrieren
Der 3DVue-Viewer ist eine native Web-Komponente. Er funktioniert in jeder HTML-Umgebung : Shopify, WooCommerce, PrestaShop, WordPress oder einer maßgeschneiderten Website.
Das Script einbinden
Fügen Sie das Script einmalig in Ihren <head> oder vor </body> ein. Eine einzige Einbindung reicht für alle Seiten Ihrer Website.
<script src="https://cdn.jsdelivr.net/gh/3dvue/api@v4/viewer-3dvue-min.js"></script>
Die Komponente deklarieren
Platzieren Sie das Tag <viewer-3dvue>, wo der Viewer erscheinen soll. Zwei Attribute sind obligatorisch: name (eindeutige Kennung auf der Seite) und src (URL Ihres Konfigurators, von 3DVue bei der Lieferung bereitgestellt).
<!-- Obligatorische Attribute --> <viewer-3dvue name="meinViewer" src="https://app.3dvue.fr/view?p=AB01-CD02" ></viewer-3dvue> <!-- Mit aktiviertem Debug (Konsolen-Logs) --> <viewer-3dvue name="meinViewer" src="https://app.3dvue.fr/view?p=AB01-CD02" debug ></viewer-3dvue>
Steuerung ohne JavaScript
Die Komponente lauscht automatisch auf click- und change-Ereignisse an jedem Element mit den folgenden Attributen. Kein JavaScript erforderlich.
| Attribut | Wert | Verwendung |
|---|---|---|
| viewer-3dvue | Name des Ziel-Viewers | Obligatorisch bei jedem auslösenden Element |
| viewer-3dvue-clic | setMaterial | Löst eine Materialänderung beim Klicken aus |
| viewer-3dvue-change | setMaterial | Löst eine Änderung bei der Auswahl in <select> aus |
| viewer-3dvue-meshs-materials | JSON {"meshIndex":"materialId"} | Anzuwendende Materialien (mehrere Meshes unterstützt) |
| viewer-3dvue-mesh | "1,2,3" | Ziel-Mesh-Indizes für ein <select> |
<!-- Button der beim Klicken mehrere Materialien ändert --> <button viewer-3dvue="meinViewer" viewer-3dvue-clic="setMaterial" viewer-3dvue-meshs-materials='{"1":"0n","3":"2b"}' > Mitternachtsblau </button> <!-- Select der den gewählten Wert anwendet --> <select viewer-3dvue="meinViewer" viewer-3dvue-change="setMaterial" viewer-3dvue-mesh="2,4" > <option value="0n">Rot</option> <option value="1a">Blau</option> </select>
API JavaScript
Für erweiterte Fälle : dynamisches Laden, Bilderfassung, SVG-Export. Den Komponentenverweis über querySelector abrufen.
| Methode | Beschreibung |
|---|---|
| setMaterial(materials, index) | Wendet Materialien auf die Meshes eines Objekts an |
| loadModel(id) | Ersetzt das aktuelle Modell |
| addModel(id) | Fügt ein Objekt zur Szene hinzu |
| removeModel(index) | Entfernt ein Objekt anhand seines Index |
| resetCamera() | Setzt die Kamera auf ihre Anfangsposition zurück |
| pauseRenderer() / startRenderer() | Manuelle Renderer-Steuerung (automatisch durch IntersectionObserver verwaltet) |
| captureToBase64() | Erfasst das aktuelle Render als base64-Bild → Ereignis onCaptureBase64Complete |
| exportSVG() | Generiert das BAT SVG des Produkts → Ereignis onSVGExportComplete |
| addSVGText(text, opts) | Fügt Text in einem bearbeitbaren Bereich des Produkts hinzu |
| addSVGImage(source, opts) | Fügt ein Bild (File oder ArrayBuffer) in einem bearbeitbaren Bereich hinzu |
| loadFonts(fonts) | Lädt Google Fonts- oder benutzerdefinierte .woff2-Schriftarten vor |
| setSVGElementParam(param, value, id) | Ändert einen Parameter eines SVG-Elements : fill, text, fontFamily, scaleX, scaleY, angle, colorStop.N. Ohne id: gilt für das aktuell ausgewählte Element |
| removeSVGElement(id) | Entfernt ein hinzugefügtes SVG-Element (Text oder Bild). Ohne id: entfernt das ausgewählte Element |
| showSVG2D() / hideSVG2D() | Wechselt den Viewer in die 2D-Flachansicht zur SVG-Bearbeitung / zurück zur 3D-Ansicht |
| captureSVGToBase64() | Erfasst die SVG-Textur als base64-Bild |
Ereignisse
Hören Sie Ereignisse direkt am viewer-3dvue-Element über addEventListener.
| Ereignis | e.detail-Eigenschaften | Beschreibung |
|---|---|---|
| onLoadComplete | - | Viewer geladen und bereit : empfohlener Zeitpunkt für loadFonts() |
| onCaptureBase64Complete | base64, error | Render erfasst durch captureToBase64() |
| onSVGExportComplete | path, error | BAT generiert durch exportSVG() : path = URL der Datei auf dem Server |
| onSVGObjectSelected | obj.id, obj.type, obj.text, obj.fill, obj.fontFamily, obj.scale, obj.angle | Ein SVG-Element wurde im Viewer ausgewählt |
| onSVGObjectDeselected | - | Das aktive SVG-Element wurde abgewählt |
// Komponentenverweis abrufen const viewer = document.querySelector('viewer-3dvue[name="meinViewer"]'); // Auf Viewer-Bereitschaft warten (empfohlen für loadFonts) viewer.addEventListener("onLoadComplete", () => { viewer.loadFonts([{ family: "Bebas Neue" }, { family: "Pacifico" }]); }); // Materialien ändern viewer.setMaterial({ "1": "0n", "3": "2b" }); // Ausgewähltes SVG-Element ändern viewer.setSVGElementParam("fill", "#ff0000"); // Farbe viewer.setSVGElementParam("text", "Mein Text"); // Textinhalt viewer.setSVGElementParam("colorStop.0", "#7C3AED", "zone-id"); // Gradient // Auf SVG-Element-Auswahl reagieren viewer.addEventListener("onSVGObjectSelected", (e) => { const obj = e.detail.obj; if (obj.type === "text") inputText.value = obj.text ?? ""; }); viewer.addEventListener("onSVGObjectDeselected", () => { inputText.value = ""; }); // Aktuelles Render erfassen viewer.captureToBase64(); viewer.addEventListener("onCaptureBase64Complete", (e) => { const { base64, error } = e.detail; if (!error) document.querySelector("#preview").src = base64; });
Matthieu antwortet direkt : kein Ticketing, keine Verzögerungen. Wenn etwas unklar ist oder Ihr Fall hier nicht abgedeckt wird, buchen Sie ein Gespräch.