Japanese
Leave Your Message

Instancjonowanie komponentów w lekkim 3D/BIM: jak deduplikacja geometrii umożliwia renderowanie w skali GPU

2026-08-17

Instancjonowanie komponentów w 3D/Bim Odchudzanie:Jak deduplikacja geometrii odblokowuje skalę GPU oddaćNa

Od natywnego modelu BIM do sceny renderowanej w przeglądarce — inżynieria stojąca za procesem tworzenia instancji 3D Expert w ramach wtyczki 3D/BIM, generatora plików Opt i modułu Rapid3D Loader dla Three.js

Przez 3D Expert Co., Ltd. | Osaka, Japonia | sierpień 2026

Ten Instancjonowanie potoku — Zmapowano do produktu

Faza 1: Odciski geometryczne i wykrywanie duplikatów

Pierwszym wyzwaniem w tworzeniu instancji jest identyfikacja komponentów, które są geometrycznie identyczne. Lista komponentów modelu BIM może zawierać 400 elementów oznaczonych etykietą „Door_Type_A”, ale wariacje parametryczne, modyfikacje w miejscu edycji i dryft precyzji zmiennoprzecinkowej oznaczają, że nie wszystkie z nich mają tę samą siatkę. Mechanizm odcisków palców 3D Expert analizuje rzeczywiste dane wierzchołków — a nie etykietę — w celu określenia rzeczywistej równoważności geometrycznej.

  1. Hashowanie geometrii wielosygnaturowej

Każdej siatce przypisany jest złożony odcisk palca, łączący trzy niezależne sygnatury: (a) liczbę wierzchołków i trójkątów, (b) wymiary pola ograniczającego wyrównane do osi z tolerancją kwantową oraz (c) MurmurHash posortowanych współrzędnych wierzchołków. Dwie siatki są brane pod uwagę jako kandydatki do utworzenia instancji tylko wtedy, gdy wszystkie trzy sygnatury są zgodne. Ten trzyetapowy filtr skutecznie eliminuje fałszywe alarmy — tanie kontrole sygnatur (liczba wierzchołków, pole ograniczające) odrzucają ponad 95% niezgodności przed uruchomieniem kosztownego porównania haszy.

  • Obsługiwane przez: wtyczkę 3D/BIM (ekstrakcja geometrii → GLZIP) → Generator plików Opt (odciski palców i wykrywanie duplikatów → .opt). Alternatywa dla komputerów stacjonarnych: 3D Model & Data Asst (importuje GLZIP lub formaty otwarte, wykonuje ten sam odcisk palca wewnętrznie, Windows 10+)
  1. Weryfikacja równoważności uwzględniająca topologię

Gdy sygnatury odcisków palców są zgodne, wtórny etap weryfikacji porównuje topologię siatki: graf sąsiedztwa wierzchołków i krawędzi. Wykrywa to przypadki, gdy dwie siatki mają tę samą liczbę wierzchołków i obwiednię, ale inną łączność – na przykład panel drzwiowy i skrzydło okienne, które mają wspólne cechy wymiarowe. Tylko siatki, które pomyślnie przejdą kontrolę sygnatur i topologii, są scalane w grupę instancji.

  • Obsługiwane przez: Generator plików Opt (weryfikacja topologii → .opt). Pulpit: 3D Model & Data Asst (ten sam silnik weryfikacji, zintegrowane odchudzenie i renderowanie, Windows 10+)
  1. Normalizacja tolerancji zmiennoprzecinkowej

Narzędzia do tworzenia BIM przechowują współrzędne wierzchołków w jednostkach i poziomach precyzji specyficznych dla projektu. Revit używa stóp wewnętrznych z rozdzielczością 1/256 cala; Bentley używa milimetrów z podwójną precyzją. Mechanizm tworzenia odcisków palców normalizuje wszystkie współrzędne do wspólnej siatki skwantyzowanej (domyślnie z tolerancją ±0,1 mm, konfigurowalną) przed haszowaniem, zapewniając, że ta sama rodzina drzwi wyeksportowana z różnych narzędzi do tworzenia generuje zgodne odciski palców. Ta międzyplatformowa normalizacja jest niezbędna w przypadku projektów, które łączą modele z wielu narzędzi BIM.

  • Obsługiwane przez: wtyczkę 3D/BIM (ekstrakcja współrzędnych → GLZIP) → Generator plików Opt (normalizacja i odcisk palca → .opt). Pulpit: 3D Model & Data Asst (ten sam proces, Windows 10+)

Faza 2: Reorganizacja danych prototypu i instancji

Po zidentyfikowaniu duplikatów grup silnik reorganizuje dane: wybierana jest jedna siatka jako prototyp, a każdy inny element grupy jest zastępowany kompaktowym rekordem instancji zawierającym jedynie macierz transformacji 4×4 i odwołanie do prototypu. Ta reorganizacja odbywa się w formacie pliku .opt, dzięki czemu odbiorcy (Rapid3D Loader, 3D Model & Data Asst) otrzymują dane wstępnie zorganizowane do renderowania instancyjnego.

  1. Wybór prototypu i deduplikacja siatki

Dla każdej grupy instancji silnik wybiera siatkę o najwyższej jakości geometrycznej jako prototyp (zazwyczaj tę z najpełniejszym odwzorowaniem UV i danymi normalnymi). Wszystkie pozostałe elementy są usuwane z buforów wierzchołków/trójkątów/indeksów i zastępowane lekkim deskryptorem instancji: 16-zmiennoprzecinkową macierzą transformacji (pozycja, obrót, skala) oraz identyfikatorem prototypu. W typowym modelu budynku komercyjnego zmniejsza to bufor geometrii o 70–90% — 400 identycznych drzwi, które wcześniej zajmowały 400 × 8000 wierzchołków, teraz zajmuje 8000 wierzchołków + 400 × 64 bajty.

  • Obsługiwane przez: Generator plików Opt (wybór prototypów i deduplikacja → .opt). Pulpit: Model 3D i asystent danych (ta sama reorganizacja, zintegrowane renderowanie, Windows 10+)
  1. Zachowywanie atrybutów na instancję

Instancjonowanie nie oznacza utraty danych dla każdego elementu. Każdy rekord instancji zachowuje linki do swojego zestawu atrybutów — identyfikatora elementu, nazwy rodziny, nazwy typu, poziomu, fazy, przypisania materiału i wszystkich parametrów niestandardowych. Gdy użytkownik kliknie drzwi z instancją w przeglądarce internetowej, Rapid3D Loader przekształca identyfikator instancji z powrotem na właściwy rekord atrybutu w pliku bazy danych i wyświetla pełny panel właściwości. Drzewo struktury zachowuje również hierarchię dla każdej instancji: każda instancja pojawia się we właściwej pozycji w łańcuchu Typ rodziny → Poziom → Grupa.

  • Obsługiwane przez: wtyczkę 3D/BIM (ekstrakcja atrybutów → GLZIP + DB) → generator plików Opt (łączenie instancji z atrybutami → .opt + DB) → Rapid3D Loader (zapytanie o właściwości dla każdej instancji). Desktop: 3D Model & Data Asst (pełny proces, Windows 10+)
  1. Grupowanie i sortowanie instancji

Po deduplikacji grupy instancji są grupowane w pakiety i sortowane według przypisania materiału i lokalizacji przestrzennej. Komponenty korzystające z tego samego prototypu ORAZ tego samego materiału są scalane w jeden pakiet instancji, co minimalizuje zmiany stanu materiału podczas renderowania. Sortowanie przestrzenne (według hierarchii objętości granicznej) umożliwia efektywne usuwanie frustum w czasie wykonywania — jeśli frustum kamery nie przecina połączonego pola ograniczającego grupy, cały pakiet jest pomijany w jednym sprawdzeniu.

  • Obsługiwane przez: Generator plików Opt (przetwarzanie wsadowe i sortowanie przestrzenne → .opt) → Rapid3D Loader (renderowanie instancji z wykorzystaniem ściętego stożka). Komputer stacjonarny: Asystent modelu 3D i danych (to samo przetwarzanie wsadowe, renderowanie pulpitu, Windows 10+)

Faza 3: Proces renderowania instancji GPU

Ostatnia faza ma miejsce w trakcie renderowania. Rapid3D Loader dla Three.js odczytuje strukturę prototypu-instancji pliku .opt i konstruuje obiekty Three.js InstancedMesh — wbudowany mechanizm WebGL, który pozwala na renderowanie N kopii siatki z różnymi transformacjami za pomocą jednego wywołania rysowania. Silnik pulpitu w 3D Model & Data Asst wykorzystuje równoważną ścieżkę instancjonowania w swoim natywnym potoku renderowania.

  1. Rekonstrukcja siatki instancji WebGL

Po załadowaniu pliku .opt, Rapid3D Loader iteruje tabelę grup instancji i tworzy jeden obiekt THREE.InstancedMesh na grupę. Każdy obiekt InstancedMesh otrzymuje geometrię prototypu i tablicę macierzy instancji. Procesor GPU renderuje wszystkie instancje w jednym wywołaniu rysowania (za pośrednictwem gl.drawArraysInstanced / gl.drawElementsInstanced), eliminując narzut na element, który w przeciwnym razie generowałby tysiące wywołań rysowania. W przypadku modelu z 15 000 komponentów w 80 grupach instancji, liczba wywołań rysowania spada z ~15 000 do ~80 — co stanowi redukcję o 99,5%.

  • Obsługiwane przez: Rapid3D Loader dla Three.js (rekonstrukcja InstancedMesh, renderowanie w sieci). Odpowiednik na komputery stacjonarne: 3D Model & Data Asst (natywne instancjonowanie GPU, Windows 10+)
  1. Interakcja na instancję: wybieranie, kolorowanie i wyróżnianie

Powszechnym błędnym przekonaniem dotyczącym instancjonowania jest to, że poświęca ono interaktywność – że wszystkie instancje muszą wyglądać i zachowywać się identycznie. Rapid3D Loader obala to przekonanie, udostępniając API dla poszczególnych instancji: setColorAt(instanceId, color) stosuje unikalny kolor do pojedynczej instancji bez wpływu na pozostałe; raycaster Picking przypisuje zdarzenia kliknięcia do identyfikatorów poszczególnych instancji, a nie tylko do siatki prototypu. Oznacza to, że użytkownik może podświetlić jedne drzwi spośród 400, wyizolować określone okno lub zastosować renderowanie transparentne do podzbioru kolumn strukturalnych – a wszystko to przy zachowaniu wydajności pojedynczego wywołania rysowania przez GPU.

  • Obsługiwane przez: Rapid3D Loader dla Three.js (interakcja API dla każdej instancji, renderowanie w sieci). Komputer stacjonarny: 3D Model & Data Asst (ta sama interakcja dla każdej instancji, Windows 10+)
  1. Instancje uwzględniające LOD

Generowanie poziomu szczegółowości (LOD) w Generatorze Plików Opt uwzględnia granice instancji. Każda siatka prototypu otrzymuje własny łańcuch LOD (wysoka/średnia/niska liczba wielokątów), a wszystkie instancje tego prototypu współdzielą ten sam łańcuch LOD. W trakcie renderowania program Rapid3D Loader wybiera odpowiedni poziom LOD dla każdej grupy instancji na podstawie odległości kamery — instancje z bliska renderują się w pełnej rozdzielczości, a instancje z daleka korzystają z uproszczonej geometrii. Ponieważ wszystkie instancje w grupie współdzielą ten sam przełącznik LOD, nie występuje narzut na obliczenia LOD dla każdej instancji. W połączeniu z usuwaniem stożka ściętego, umożliwia to płynne renderowanie modeli składających się z ponad 100 000 komponentów na sprzęcie klasy konsumenckiej.

  • Obsługiwane przez: Generator plików Opt (generowanie LOD dla każdego prototypu → .opt) → Rapid3D Loader (przełączanie LOD w oparciu o odległość + renderowanie instancyjne). Pulpit: 3D Model & Data Asst (ta sama instancja uwzględniająca LOD, Windows 10+)

Faza 4: Zmierzony wpływ na wydajność

Instancjonowanie komponentów nie jest optymalizacją teoretyczną — zapewnia mierzalną, a czasem wręcz drastyczną poprawę rozmiaru pliku, wykorzystania pamięci i wydajności renderowania. Poniższe metryki pochodzą z rzeczywistych modeli BIM przetworzonych w procesie 3D Expert.

  1. Zmniejszenie rozmiaru pliku

Model Revit 12-piętrowego budynku biurowego o rozmiarze 450 MB (87 000 komponentów, 62% duplikatów) został przetworzony za pomocą Generatora Plików Opt z włączoną obsługą instancji. Uzyskany plik .opt miał rozmiar 38 MB — o 92% mniej w porównaniu z tym samym modelem wyeksportowanym bez obsługi instancji (480 MB). Oszczędności wynikają głównie z wyeliminowania zbędnych buforów geometrii: 54 000 duplikatów siatek (każda o średniej wielkości 6 KB danych wierzchołków) zastąpiono 420 prototypami + 54 000 macierzami instancji (po 64 bajty każda), co pozwoliło zaoszczędzić około 310 MB surowych danych geometrycznych przed kompresją Draco.

  • Obsługiwane przez: Generator plików Opt (instancjonowanie + kompresja Draco → .opt)
  1. Poprawa wywołania rysowania i szybkości klatek

Ten sam model został załadowany w programie Rapid3D Loader dla Three.js. Bez instancjonowania scena wygenerowała 87 000 wywołań rysowania, osiągając 8–12 kl./s na laptopie średniej klasy ze zintegrowanym procesorem graficznym. Po instancjonowaniu liczba wywołań rysowania spadła do 340 (jedno na grupę instancji + unikalne siatki bez instancji), a liczba klatek na sekundę wzrosła do 45–60 kl./s na tym samym sprzęcie — 4–6-krotnie. Na komputerze stacjonarnym z oddzielnym procesorem graficznym, model z instancją utrzymywał 60 kl./s w rozdzielczości 4K.

  • Obsługiwane przez: Rapid3D Loader dla Three.js (renderowanie InstancedMesh, web). Desktop: 3D Model & Data Asst (natywne renderowanie instancyjne, Windows 10+)
  1. Optymalizacja wykorzystania pamięci

W pamięci przeglądarki, wersja modelu bez instancji zużywała 1,2 GB pamięci buforowej GPU (geometria + materiały + tekstury). Wersja z instancją zużywała 290 MB — co stanowi redukcję o 76%. To różnica między modelem, który powoduje awarie urządzeń z małą ilością pamięci (tablety, laptopy z wbudowanym GPU), a modelem, który działa płynnie. W przypadku przeglądarek mobilnych, gdzie pamięć jest głównym wąskim gardłem, instancja często okazuje się najbardziej efektywną optymalizacją.

  • Obsługiwane przez: Generator plików Opt (zoptymalizowany pod kątem pamięci wynik .opt) → Rapid3D Loader (efektywne zarządzanie buforem GPU). Pulpit: 3D Model & Data Asst (ta sama optymalizacja pamięci, Windows 10+)

────────────────────────────────────────────────────────────

Ilustracja_informacyjna_techniczna_2026-08-17T08-16-29.png

Łączenie wszystkiego: który produkt zaspokaja poszczególne potrzeby?

Proces tworzenia instancji jest osadzony w ekosystemie produktów 3D Expert. Wybór produktu zależy od tego, gdzie znajdują się użytkownicy i co muszą zrobić:

  • Tworzysz internetową platformę BIM lub pulpit nawigacyjny cyfrowego bliźniaka?→ Użyj wtyczki 3D/BIM do wyodrębnienia natywnych plików .rvt/.dgn do pośredniego GLZIP (z zachowaniem metadanych instancji rodziny), a następnie uruchom Generator plików Opt, aby wykonać odcisk palca geometrii, deduplikację i reorganizację danych z kompresją Draco (dane wyjściowe: .opt + DB). Wdróż pliki .opt na swoim serwerze internetowym. Załaduj za pomocą Rapid3D Loader dla Three.js — automatycznie rekonstruuje on obiekty InstancedMesh w celu zapewnienia efektywnego renderowania GPU. Wybieranie, kolorowanie i zapytania o właściwości dla poszczególnych instancji są dostępne za pośrednictwem interfejsu API JavaScript.
  • Dostarczasz klientom modele BIM na komputery stacjonarne bez dostępu do sieci?→ Użyj wtyczki 3D/BIM do wyodrębnienia, a następnie przekazania klientowi modelu 3D i asystenta danych (Windows 10+). Importuje on pliki GLZIP (lub otwarte formaty, takie jak IFC/FBX/STEP), a aplikacja przeprowadza wewnętrznie tę samą analizę instancji — odciski palców, deduplikacja i renderowanie instancji GPU – wszystko odbywa się w jednym, zintegrowanym środowisku. Nie są potrzebne żadne pliki .opt.
  • Konwertowanie otwartych formatów (IFC, FBX, STEP, 3DXML) bez natywnej licencji CAD?→ Pomiń wtyczkę. Przekaż otwarte formaty bezpośrednio do Generatora plików Opt, który wykonuje odciski palców geometrii i deduplikację instancji dla dowolnych danych siatki — nawet formatów, które nie mają natywnych metadanych instancji. Mechanizm odcisków palców identyfikuje duplikaty wyłącznie na podstawie geometrii. Dane wyjściowe: plik .opt do wdrożenia w sieci za pośrednictwem Rapid3D Loader.
  • Zarówno w przeglądarce, jak i na komputerze?→ W przypadku sieci: wyodrębnij za pomocą wtyczki (natywnej, zachowującej metadane rodziny) lub zaimportuj otwarte formaty → Generator plików Opt (instancjonowanie + Draco → .opt) → Rapid3D Loader (renderowanie w sieci za pomocą InstancedMesh). W przypadku komputerów stacjonarnych: zaimportuj GLZIP lub otwarte formaty bezpośrednio do 3D Model & Data Asst (Win 10+) — wykonuje instancjonowanie i renderowanie w jednej aplikacji.

────────────────────────────────────────────────────────────

Wnioski: Dlaczego tworzenie instancji na poziomie potoku ma znaczenie

Instancjonowanie komponentów to najskuteczniejsza technika redukcji danych w modelach BIM zawierających powtarzające się elementy – i praktycznie wszystkie modele BIM to robią. Redukcja danych geometrycznych o 60–90%, redukcja wywołań rysowania o ponad 99% i 4–6-krotna poprawa liczby klatek na sekundę to nie wyniki skrajne, lecz bazowe oczekiwania przy prawidłowym zastosowaniu instancjonowania.

Cechą wyróżniającą podejście 3D Expert jest to, że instancjonowanie nie jest funkcją dodaną ani etapem postprocessingu. Jest to funkcjonalność na poziomie potoku, która rozpoczyna się od ekstrakcji (zachowując natywne metadane instancji rodziny we wtyczce 3D/BIM), dojrzewa podczas odchudzenia (odcisk palca z wieloma podpisami i weryfikacja uwzględniająca topologię w Generatorze Plików Opt) i osiąga punkt kulminacyjny w renderowaniu (WebGL InstancedMesh z pełną interakcją dla każdej instancji w Rapid3D Loader). Każdy etap jest zaprojektowany tak, aby dostarczać dane do następnego, dzięki czemu GPU otrzymuje dane wstępnie zorganizowane dla wywołań rysowania dla instancji — bez deduplikacji w czasie wykonywania, bez marnowania pamięci i bez zbędnych wywołań rysowania.

Dla firm z branży architektoniczno-inżynierskiej (AEC) budujących internetowe przeglądarki BIM, platformy cyfrowych bliźniaków lub narzędzia do przeglądu modeli na komputerach stacjonarnych, ten proces oznacza różnicę między modelem, który się ładuje, a modelem, który ładuje się natychmiast. Między 12 a 60 klatkami na sekundę. Między przeglądarką działającą na tablecie na placu budowy a przeglądarką wymagającą stacji roboczej. Instancjonowanie komponentów nie jest opcjonalnym procesem inżynieryjnym — to podstawa.

────────────────────────────────────────────────────────────

O firmie

Firma 3D Expert Co.,Ltd. z siedzibą w Osace w Japonii opracowuje wydajne oprogramowanie 3D/BIM dla globalnego sektora AEC. Nasze portfolio produktów obejmuje:

  • Wtyczka 3D/BIM — obecnie 6 natywnych dodatków eksportowych dla platform CAD/BIM, opartych na oficjalnych interfejsach API dostawców. Umożliwia bezstratną ekstrakcję geometrii, tekstur, materiałów, drzew struktur i metadanych instancji rodzin z formatów natywnych (.rvt, .dgn itp.). Dane wyjściowe: pośredni GLZIP. NIE wykonuje kompresji ani odciążania.
  • Generator plików Opt — lekki silnik desktopowy do przetwarzania wsadowego. Wykorzystuje pośrednie formaty GLZIP (z wtyczki) lub otwarte (IFC, FBX, STEP, 3DXML itp.) i stosuje odciski palców geometrii, deduplikację instancji, reorganizację prototypów i instancji, kompresję Draco, generowanie poziomu szczegółowości (LOD) oraz optymalizację siatki na komputerze lokalnym użytkownika. Dane wyjściowe: model w formacie .opt + baza danych. To JEDYNY produkt generujący pliki .opt.
  • 3D Model & Data Asst — natywna aplikacja desktopowa dla systemu Windows 10+. Importuje GLZIP (z wtyczki) lub otwarte formaty (IFC, FBX, STEP, 3DXML itp.), wewnętrznie przeprowadza tę samą analizę i odciążanie instancji, a także renderuje model z instancjami GPU i pełnym zapytaniem o właściwości — wszystko w jednej zintegrowanej aplikacji. NIE generuje plików .opt.
  • Rapid3D Loader dla Three.js — pakiet npm (opt-rapid3d-loader) z wbudowanym dekoderem WASM Draco, progresywnym strumieniowaniem fragmentów, automatyczną rekonstrukcją InstancedMesh oraz pełnymi interfejsami API interakcji dla każdej instancji (wybieranie, kolorowanie, przezroczystość, podświetlanie, zapytanie „kliknij, aby zapytać”). Bezpośrednio odczytuje i ładuje modele w formacie .opt (wygenerowane przez Opt File Generator) do scen Three.js.

Dowiedz się więcej lub rozpocznij bezpłatny okres próbny na stronie https://www.opt3ds.com/

Kontakt: info@3dexpert.jp


© 2010–2026 3D Expert Co.,Ltd. Wszelkie prawa zastrzeżone.