Component-instantiëring in 3D/BIM-lichtgewichtoptimalisatie: hoe geometrie-deduplicatie GPU-schaalrendering mogelijk maakt
Component-instantiëring in 3D/Bim Gewichtsvermindering:Hoe het verwijderen van geometrie-duplicatie de mogelijkheden van GPU's op schaal ontsluit veroorzakenbij
Van native BIM-model tot in de browser weergegeven scène: de techniek achter de instantiëringspipeline van 3D Expert, die gebruikmaakt van de 3D/BIM-plug-in, Opt File Generator en Rapid3D Loader voor Three.js.
Door 3D Expert Co.,Ltd. | Osaka, Japan | Augustus 2026
De Instantiëringspijplijn — Gekoppeld aan product
Fase 1: Geometrische vingerafdrukken en duplicaatdetectie
De eerste uitdaging bij het instantiëren is het identificeren van geometrisch identieke componenten. De componentenlijst van een BIM-model kan 400 elementen labelen als "Deur_Type_A", maar parametrische variaties, bewerkingen ter plaatse en afwijkingen in de precisie van drijvende-kommagetallen betekenen dat niet alle elementen hetzelfde mesh delen. De fingerprinting-engine van 3D Expert analyseert de werkelijke vertexgegevens – niet het label – om de ware geometrische equivalentie te bepalen.
- Multi-Signature Geometry Hashing
Aan elk mesh wordt een samengestelde vingerafdruk toegekend die drie onafhankelijke kenmerken combineert: (a) het aantal hoekpunten en driehoeken, (b) de as-uitgelijnde afmetingen van de begrenzingsbox met gekwantiseerde tolerantie, en (c) een MurmurHash van gesorteerde hoekpuntcoördinaten. Twee meshes worden alleen als kandidaat voor instancing beschouwd als alle drie de kenmerken overeenkomen. Dit drietrapsfilter elimineert valse positieven efficiënt: de goedkope controle van de kenmerken (aantal hoekpunten, begrenzingsbox) wijst meer dan 95% van de niet-overeenkomende gevallen af voordat de dure hashvergelijking plaatsvindt.
- Mogelijk gemaakt door: 3D/BIM-plug-in (geometrie-extractie → GLZIP) → .opt-bestandgenerator (vingerafdruk en duplicatiedetectie → .opt). Desktop-alternatief: 3D Model & Data Asst (importeert GLZIP of open formaten, voert intern dezelfde vingerafdruk uit, Windows 10+).
- Topologiebewuste equivalentieverificatie
Wanneer de vingerafdrukken overeenkomen, wordt in een tweede verificatiestap de mesh-topologie vergeleken: de aangrenzingsgrafiek van hoekpunten en randen. Dit detecteert gevallen waarin twee meshes hetzelfde aantal hoekpunten en dezelfde begrenzingsbox hebben, maar een verschillende connectiviteit – bijvoorbeeld een deurpaneel versus een raamkozijn die toevallig dezelfde dimensionale kenmerken delen. Alleen meshes die zowel de vingerafdruk- als de topologiecontrole doorstaan, worden samengevoegd tot een instantiegroep.
- Mogelijk gemaakt door: Opt File Generator (topologieverificatie → .opt). Desktop: 3D Model & Data Asst (zelfde verificatie-engine, geïntegreerde gewichtsbesparing + rendering, Win 10+)
- Normalisatie van de tolerantie voor zwevende-kommagetallen
BIM-ontwerptools slaan hoekpuntcoördinaten op in projectspecifieke eenheden en precisieniveaus. Revit gebruikt interne voeten met een resolutie van 1/256 inch; Bentley gebruikt millimeters met dubbele precisie. De fingerprinting-engine normaliseert alle coördinaten naar een gemeenschappelijk gekwantiseerd raster (standaard tolerantie van ±0,1 mm, configureerbaar) voordat er hashing plaatsvindt. Dit zorgt ervoor dat dezelfde deurfamilie, geëxporteerd vanuit verschillende ontwerptools, overeenkomende fingerprints oplevert. Deze platformonafhankelijke normalisatie is essentieel voor projecten die modellen van meerdere BIM-tools samenvoegen.
- Mogelijk gemaakt door: 3D/BIM-plug-in (coördinatenextractie → GLZIP) → .opt-bestandgenerator (normalisatie en fingerprinting → .opt). Desktop: 3D-model- en data-assistent (zelfde workflow, Win 10+)
Fase 2: Reorganisatie van prototype-instantiegegevens
Zodra dubbele groepen zijn geïdentificeerd, reorganiseert de engine de gegevens: één mesh wordt geselecteerd als prototype en elk ander lid van de groep wordt vervangen door een compact instantie-record dat alleen een 4×4 transformatiematrix en een verwijzing naar het prototype bevat. Deze reorganisatie vindt plaats binnen het .opt-bestandsformaat, zodat downstream-gebruikers (Rapid3D Loader, 3D Model & Data Asst) de gegevens ontvangen die al georganiseerd zijn voor instanced rendering.
- Prototypeselectie en mesh-deduplicatie
Voor elke instantiegroep selecteert de engine het mesh met de hoogste geometrische kwaliteit als prototype (doorgaans het mesh met de meest complete UV-mapping en normaaldata). Alle andere leden worden ontdaan van hun vertex-/driehoek-/indexbuffers en vervangen door een lichtgewicht instantiebeschrijving: een transformatiematrix van 16 drijvende-kommawaarden (positie, rotatie, schaal) plus een prototype-ID. In een typisch commercieel gebouwmodel reduceert dit de geometriebuffer met 70-90% — 400 identieke deuren die voorheen 400 × 8000 vertices in beslag namen, nemen nu 8000 vertices + 400 × 64 bytes in beslag.
- Mogelijk gemaakt door: Opt File Generator (prototype selectie & deduplicatie → .opt). Desktop: 3D Model & Data Asst (zelfde reorganisatie, geïntegreerde rendering, Win 10+)
- Attribuutbehoud per instantie
Instantiëren betekent niet dat per element gegevens verloren gaan. Elk instantie-record behoudt de koppelingen naar de bijbehorende attributenset: element-ID, familienaam, typenaam, niveau, fase, materiaaltoewijzing en alle aangepaste parameters. Wanneer een gebruiker in de webviewer op een geïnstantieerde deur klikt, koppelt Rapid3D Loader de instantie-ID aan het juiste attribuutrecord in het databasebestand en toont het volledige eigenschappenpaneel. De structuurboom behoudt ook de hiërarchie per instantie: elke instantie verschijnt op de juiste positie in de keten Familietype → Niveau → Groep.
- Mogelijk gemaakt door: 3D/BIM-plug-in (attribuutextractie → GLZIP + DB) → Opt-bestandgenerator (koppeling tussen instanties en attributen → .opt + DB) → Rapid3D Loader (eigenschapsquery per instantie). Desktop: 3D Model & Data Asst (volledige pipeline, Win 10+)
- Instancegroepering en sortering
Na het verwijderen van duplicaten worden instantiegroepen gebundeld en gesorteerd op materiaaltoewijzing en ruimtelijke locatie. Componenten met hetzelfde prototype én hetzelfde materiaal worden samengevoegd tot één instantiebatch, waardoor het aantal materiaaltoestandwisselingen tijdens het renderen tot een minimum wordt beperkt. Ruimtelijke sortering (op basis van de begrenzingsvolumehiërarchie) maakt efficiënte frustum-culling tijdens runtime mogelijk: als het gezichtsveld van een camera de gecombineerde begrenzingsbox van een groep niet overlapt, wordt de hele batch in één controle overgeslagen.
- Mogelijk gemaakt door: Opt File Generator (batchverwerking en ruimtelijke sortering → .opt) → Rapid3D Loader (frustum-culled instanced rendering). Desktop: 3D Model & Data Asst (zelfde batchverwerking, desktoprendering, Win 10+)
Fase 3: GPU-instantiëring renderingpipeline
De laatste fase vindt plaats tijdens het renderen. Rapid3D Loader voor Three.js leest de prototype-instance-structuur van het .opt-bestand en construeert Three.js InstancedMesh-objecten — een ingebouwd WebGL-mechanisme waarmee met één enkele draw call N kopieën van een mesh met verschillende transformaties kunnen worden gerenderd. De desktop-engine in 3D Model & Data Asst gebruikt een vergelijkbaar instancing-pad via de eigen rendering-pipeline.
- WebGL InstancedMesh-reconstructie
Bij het laden van een .opt-bestand doorloopt Rapid3D Loader de tabel met instantiegroepen en maakt één THREE.InstancedMesh per groep aan. Elke InstancedMesh ontvangt de prototypegeometrie en een array met instantie-matrices. De GPU rendert alle instanties in één enkele draw call (via gl.drawArraysInstanced / gl.drawElementsInstanced), waardoor de overhead per element, die anders duizenden draw calls zou opleveren, wordt geëlimineerd. Voor een model met 15.000 componenten verdeeld over 80 instantiegroepen daalt het aantal draw calls van ongeveer 15.000 naar ongeveer 80 – een reductie van 99,5%.
- Mogelijk gemaakt door: Rapid3D Loader voor Three.js (InstancedMesh-reconstructie, webrendering). Desktop-equivalent: 3D Model & Data Asst (native GPU-instantiëring, Win 10+).
- Interactie per instantie: selecteren, kleuren en markeren
Een veelvoorkomende misvatting over instancing is dat het ten koste gaat van de interactiviteit – dat alle instanties er identiek uit moeten zien en zich identiek moeten gedragen. Rapid3D Loader weerlegt dit door API's per instantie beschikbaar te stellen: `setColorAt(instanceId, color)` past een unieke kleur toe op één instantie zonder andere instanties te beïnvloeden; de picking raycaster koppelt klikgebeurtenissen aan individuele instantie-ID's, niet alleen aan het prototype-mesh. Dit betekent dat een gebruiker één deur kan markeren tussen 400, een specifiek raam kan isoleren of transparante rendering kan toepassen op een subset van structurele kolommen – en dat alles terwijl de GPU de efficiëntie van één enkele draw call behoudt.
- Mogelijk gemaakt door: Rapid3D Loader voor Three.js (API voor interactie per instantie, webrendering). Desktop: 3D Model & Data Asst (zelfde interactie per instantie, Win 10+)
- LOD-bewuste instantie
De generatie van detailniveaus (LOD) in Opt File Generator respecteert de grenzen van instanties. Elk prototype-mesh krijgt zijn eigen LOD-keten (hoog / gemiddeld / laag aantal polygonen), en alle instanties van dat prototype delen dezelfde LOD-keten. Tijdens het renderen selecteert Rapid3D Loader het juiste LOD-niveau per instantiegroep op basis van de afstand tot de camera: instanties van dichtbij worden op volledige resolutie gerenderd, instanties van veraf gebruiken vereenvoudigde geometrie. Omdat alle instanties in een groep dezelfde LOD-schakelaar delen, is er geen overhead voor LOD-berekeningen per instantie. In combinatie met frustum culling maakt dit een vloeiende rendering mogelijk van modellen met meer dan 100.000 componenten op hardware voor consumenten.
- Mogelijk gemaakt door: Opt File Generator (LOD-generatie per prototype → .opt) → Rapid3D Loader (op afstand gebaseerde LOD-schakeling + geïnstantieerde rendering). Desktop: 3D Model & Data Asst (zelfde LOD-bewuste instantiëring, Win 10+)
Fase 4: Gemeten impact op de prestaties
Component-instantiëring is geen theoretische optimalisatie; het levert meetbare, soms dramatische verbeteringen op in bestandsgrootte, geheugengebruik en renderingprestaties. De volgende statistieken zijn afkomstig van BIM-modellen uit de praktijk die zijn verwerkt via de pipeline van 3D Expert.
Een Revit-model van 450 MB van een kantoorgebouw met 12 verdiepingen (87.000 componenten, 62% duplicaten) werd verwerkt met Opt File Generator met ingeschakelde instantiëring. Het resulterende .opt-bestand was slechts 38 MB groot – een reductie van 92% ten opzichte van hetzelfde model dat zonder instantiëring was geëxporteerd (480 MB). De besparing is voornamelijk te danken aan het elimineren van redundante geometriebuffers: 54.000 dubbele meshes (elk met gemiddeld 6 KB aan vertexgegevens) werden vervangen door 420 prototypes + 54.000 instantiematrices (elk 64 bytes), wat ongeveer 310 MB aan ruwe geometriegegevens bespaarde vóór Draco-compressie.
- Mogelijk gemaakt door: Opt File Generator (instantiëring + Draco-compressie → .opt)
- Draw Call & Frame Rate verbetering
Hetzelfde model werd geladen in Rapid3D Loader voor Three.js. Zonder instantiëring genereerde de scène 87.000 draw calls, wat resulteerde in 8-12 FPS op een gemiddelde laptop met een geïntegreerde GPU. Met instantiëring daalde het aantal draw calls naar 340 (één per instantiegroep + niet-geïnstantieerde unieke meshes), en verbeterde de framerate naar 45-60 FPS op dezelfde hardware — een verbetering van 4-6 keer. Op een desktop met een aparte GPU behield het geïnstantieerde model 60 FPS bij een 4K-resolutie.
- Mogelijk gemaakt door: Rapid3D Loader voor Three.js (InstancedMesh-rendering, web). Desktop: 3D Model & Data Asst (native instanced rendering, Win 10+)
- Optimalisatie van het geheugengebruik
In het browsergeheugen verbruikte de niet-geïnstantieerde versie van het model 1,2 GB GPU-buffergeheugen (geometrie + materialen + texturen). De geïnstantieerde versie verbruikte 290 MB – een reductie van 76%. Dit is het verschil tussen een model dat apparaten met weinig geheugen (tablets, laptops met geïntegreerde GPU) laat vastlopen en een model dat soepel draait. Voor mobiele webbrowsers, waar geheugen de belangrijkste bottleneck is, is het instantiëren van het model vaak de meest impactvolle optimalisatie.
- Mogelijk gemaakt door: Opt File Generator (geheugen-geoptimaliseerde .opt-uitvoer) → Rapid3D Loader (efficiënt GPU-bufferbeheer). Desktop: 3D Model & Data Asst (zelfde geheugenoptimalisatie, Win 10+)
────────────────────────────────────────────────────────────
Alles op een rijtje: welk product voor welke behoefte?
De instantie-pipeline is geïntegreerd in het gehele 3D Expert-productecosysteem. Welk product u kiest, hangt af van waar uw gebruikers zich bevinden en wat ze moeten doen:
- Een webgebaseerd BIM-platform of dashboard voor digitale tweelingen bouwen?→ Gebruik de 3D/BIM-plug-in om native .rvt/.dgn-bestanden te extraheren naar een intermediair GLZIP-bestand (waarbij de metadata van de familie-instantie behouden blijft). Voer vervolgens de Opt File Generator uit om geometrische vingerafdrukken te maken, duplicaten te verwijderen en gegevens te reorganiseren met Draco-compressie (output: .opt + DB). Implementeer de .opt-bestanden op uw webserver. Laad ze met Rapid3D Loader voor Three.js — deze herbouwt automatisch InstancedMesh-objecten voor GPU-efficiënte rendering. Selecteren, kleuren en opvragen van eigenschappen per instantie zijn allemaal beschikbaar via de JavaScript API.
- BIM-modellen aan klanten leveren op desktops zonder netwerktoegang?→ Gebruik de 3D/BIM-plug-in om de gegevens te extraheren en geef de klant vervolgens 3D Model & Data Asst (Windows 10+). Zij importeren GLZIP-bestanden (of open formaten zoals IFC/FBX/STEP), waarna de app intern dezelfde instantieanalyse uitvoert: fingerprinting, deduplicatie en GPU-rendering vinden allemaal plaats in één geïntegreerde ervaring. Er zijn geen .opt-bestanden nodig.
- Open formaten (IFC, FBX, STEP, 3DXML) converteren zonder een native CAD-licentie?→ Sla de plug-in over. Voer open formaten rechtstreeks in Opt File Generator in, die geometrie-fingerprinting en instantie-deduplicatie uitvoert op alle mesh-gegevens — zelfs formaten zonder native instantie-metadata. De fingerprinting-engine identificeert duplicaten uitsluitend op basis van de geometrie. Uitvoer: .opt voor webimplementatie via Rapid3D Loader.
- Zowel voor web als voor desktop?→ Voor web: extraheer met Plugin (native, behoudt familiemetadata) of importeer open formaten → Opt File Generator (instantiëren + Draco → .opt) → Rapid3D Loader (InstancedMesh webrendering). Voor desktop: importeer GLZIP of open formaten direct in 3D Model & Data Asst (Win 10+) — het voert instantiëren en renderen uit in één applicatie.
────────────────────────────────────────────────────────────
Conclusie: Waarom instantiëring op pipelineniveau belangrijk is
Component-instantiëring is de meest effectieve techniek om de hoeveelheid data in BIM-modellen met herhaalde elementen te verminderen – en vrijwel alle BIM-modellen bevatten dergelijke elementen. Een reductie van 60-90% in geometrische data, een reductie van meer dan 99% in draw calls en een verviervoudiging tot zesvoudige verbetering van de framesnelheid zijn geen uitzonderlijke resultaten; dit is de standaard die je kunt verwachten wanneer instancing correct wordt toegepast.
Wat de aanpak van 3D Expert onderscheidt, is dat instancing geen losstaande functie of nabewerking is. Het is een functionaliteit op pipelineniveau die begint bij de extractie (waarbij de native familie-instance-metadata behouden blijft in de 3D/BIM-plug-in), verder wordt ontwikkeld tijdens het lichtgewicht maken (multi-signature fingerprinting en topologiebewuste verificatie in Opt File Generator) en culmineert in de rendering (WebGL InstancedMesh met volledige interactie per instance in Rapid3D Loader). Elke fase is ontworpen om de volgende te voeden, zodat de GPU vooraf georganiseerde data ontvangt voor instanced draw calls — geen runtime-deduplicatie, geen verspild geheugen, geen onnodige draw calls.
Voor AEC-bedrijven die webgebaseerde BIM-viewers, digitale tweelingplatforms of desktopmodelreviewtools ontwikkelen, betekent deze pipeline het verschil tussen een model dat laadt en een model dat direct laadt. Tussen 12 FPS en 60 FPS. Tussen een viewer die werkt op een tablet op de bouwplaats en een viewer die een werkstation vereist. Component-instantiëring is geen optionele engineering – het is de basis.
────────────────────────────────────────────────────────────
Over het bedrijf
3D Expert Co.,Ltd., met hoofdkantoor in Osaka, Japan, ontwikkelt hoogwaardige 3D/BIM-software voor de wereldwijde AEC-industrie (Architectuur, Engineering en Constructie). Ons productportfolio omvat:
- 3D/BIM-plug-in — Momenteel 6 native export-add-ins voor CAD/BIM-platformen, gebouwd op officiële API's van leveranciers. Voert verliesvrije extractie uit van geometrie, texturen, materialen, structuurbomen en familie-instantie-metadata uit native formaten (.rvt, .dgn, enz.). Uitvoer: intermediair GLZIP. Voert GEEN compressie of gewichtsbesparing uit.
- Opt File Generator — Een lichtgewicht desktop-engine voor batchverwerking. Het accepteert tussenliggende GLZIP-bestanden (via een plugin) of open formaten (IFC, FBX, STEP, 3DXML, enz.) en past geometrie-fingerprinting, instantie-deduplicatie, reorganisatie van prototype-instanties, Draco-compressie, LOD-generatie en mesh-optimalisatie toe op de lokale computer van de gebruiker. Uitvoer: .opt-formaat model + database. Dit is het ENIGE product dat .opt-bestanden produceert.
- 3D Model & Data Asst — Een native desktopapplicatie voor Windows 10+. Importeert GLZIP-bestanden (via een plug-in) of open formaten (IFC, FBX, STEP, 3DXML, enz.), voert intern dezelfde instantieanalyse en gewichtsbesparing uit en rendert het model met GPU-instantie en volledige eigenschappenquery — alles in één geïntegreerde app. Genereert GEEN .opt-bestanden.
- Rapid3D Loader voor Three.js — npm-pakket (opt-rapid3d-loader) met ingebouwde WASM Draco-decoder, progressieve chunk-streaming, automatische InstancedMesh-reconstructie en volledige interactie-API's per instantie (selecteren, kleuren, transparantie, markeren, klikken om op te vragen). Leest en laadt direct modellen in .opt-formaat (geproduceerd door Opt File Generator) in Three.js-scènes.
Meer informatie of een gratis proefperiode starten kan via https://www.opt3ds.com/
Contact: info@3dexpert.jp
© 2010–2026 3D Expert Co.,Ltd. Alle rechten voorbehouden.

