Strona główna Przykłady Zrzuty ekranu Instrukcja obsługi Logo Bluesky. YouTube ☰
OghmaNano Platforma do symulacji wielofizycznych procesów zachodzących w optoelektronicznych urządzeniach i systemach fotonicznych. POBIERZ Przewodnik szybkiego uruchomienia

Samouczek dotyczący bazy danych kształtów (część B): generowanie obrazów i siatek 2D.

W części Część A utworzono nowy wpis w bazie danych Shape i zbudowano pierwszą siatkę na podstawie prostego wzoru przypominającego fotoniczną strukturę krystaliczną. W tej części skupimy się na tym, jak tworzone są te dwuwymiarowe obrazy i jak przekształcane są w użyteczne trójwymiarowe struktury, które można wykorzystać do śledzenia promieni i symulacji działania urządzeń.

Baza danych Shape jest przeznaczona do przechowywania danych o geometriach, których trudno opisać za pomocą prostych funkcji analitycznych: obrazów uzyskanych metodą mikroskopii sił atomowych (AFM), nierównych powierzchni, złożonych układów mozaikowych i siatek, a także importowanych elementów CAD. Wszystkie te dane są przetwarzane w sposób spójny, zaczynając od obrazu 2D, który następnie jest ekstrudowany do postaci 3D.

1. Pasek narzędzi „Obraz 2D”

Otwórz edytor kształtów dla dowolnego elementu w bazie danych (na przykład kształtu demo z części A) i przejdź do zakładki „Obraz 2D”. Powinna pojawić się podobna do tej z ?? belka narzędzi.

2D Image ribbon showing buttons for Image, Generate Honeycomb, Generate Xtal, Generate lens, Generate Gaussian, Saw wave, Checkerboard and Perlin noise.
Pasek narzędzi „Obraz 2D”. Każdy generator tworzy nowy obraz w skali szarości, który można przekształcić w trójwymiarowy obiekt.

Każdy przycisk generuje nową mapę wysokości w skali szarości w prawym panelu edytora kształtów: może to być struktura przypominająca plaster miodu, kryształ fotoniczny (oznaczony jako „Generuj kryształ”), profil przypominający soczewkę, plama Gaussa, fala piłokształtna, wzór w kratkę lub chropowata powierzchnia generowana za pomocą szumu Perlina. Za każdym razem, gdy klikniesz przycisk, obraz jest odświeżany z użyciem aktualnej konfiguracji.

Każdy generator ma również małą strzałkę umieszczoną pod nim. Kliknięcie tej strzałki otwiera okno konfiguracji, które jest specyficzne dla danego wzoru. Poniżej zaprezentujemy kilka konkretnych przykładów.

Nie musisz ograniczać się do obrazów syntetycznych. Przycisk „Obraz” po lewej stronie umożliwia importowanie rzeczywistych danych AFM lub dowolnego innego obrazu rastrowego. Moduł dyskretyzujący interpretuje obraz jako mapę wysokości: białe piksele odpowiadają maksymalnej wysokości, czarne piksele – minimalnej, a pośrednie odcienie szarości generują pośrednie wysokości. Aby uzyskać najlepsze wyniki, dane AFM należy przekonwertować do liniowej skali kolorów w odcieniach szarości; kolorowe palety „map ciepła” nie są odpowiednie, ponieważ jasność nie odzwierciedla już wysokości w prosty sposób.

Na koniec, jeśli klikniesz lewym przyciskiem myszy na prawym obrazie, możesz „zaciemnić” piksele, aby usunąć fragmenty obrazu. To prosty sposób na wycięcie niechcianych obszarów lub utworzenie otworów bez konieczności ponownego generowania całego wzoru.

2. Przykład: wzory kontaktów przypominające plaster miodu.

Struktury o strukturze plastra miodu znajdują zastosowanie jako przezroczyste elementy kontaktowe, elastyczne siatki przewodzące lub elementy nośne. Aby wygenerować taką strukturę, kliknij „Generuj plaster miodu”. Prawy panel zostanie zaktualizowany i wyświetli siatkę heksagonalną. Po kliknięciu „Utwórz siatkę”, wzór zostanie wyekstrudowany, tworząc trójwymiarową strukturę, jak pokazano na ilustracji ??.

Honeycomb pattern and its corresponding 3D mesh in the Shape editor.
Wzorzec plastra miodu, wygenerowany na podstawie dwuwymiarowego obrazu i przekształcony w trójwymiarowy obiekt.
Honeycomb configuration window showing dx, dy, shifts, line width and rotation.
Możliwości konfiguracji siatki heksagonalnej. Można regulować odstępy, przesunięcia, grubość linii i obrót, podając wartości w pikselach.

Okno konfiguracji umożliwia zmianę charakterystycznego odstępu w kierunkach x i y, przesunięcie wzoru względem podstawowej siatki, ustawienie grubości linii oraz obracanie wzoru. Niewielkie zmiany w tych ustawieniach mogą znacząco wpłynąć na sposób, w jaki siatka dopasowuje się do struktury urządzenia, dlatego warto trochę poeksperymentować.

Gdy będziesz zadowolony z dwuwymiarowego wzoru, ponownie kliknij „Utwórz siatkę”, aby zaktualizować widok trójwymiarowy. Jeśli siatka wydaje się zbyt skomplikowana, możesz kliknąć „Edytuj siatkę” i zmniejszyć liczbę trójkątów. Celem jest zawsze użycie jak najmniejszej liczby trójkątów, przy zachowaniu wiernego odwzorowania geometrii: każdy dodatkowy trójkąt zwiększa koszt śledzenia promieni, a w praktyce spowolnienie jest zazwyczaj bardziej niż liniowe.

3. Przykład: generowanie chropowatej powierzchni przypominającej obraz z mikroskopu sił atomowych (AFM) za pomocą szumu Perlina.

Rzeczywiste powierzchnie są często nierówne, dlatego przydatne jest generowanie „sztucznych powierzchni AFM” o podobnych parametrach statystycznych, co umożliwia szybkie przeprowadzanie eksperymentów optycznych. OghmaNano wykorzystuje Szum Perlinagładkie pole losowe, powszechnie stosowane w grafice komputerowejzobacz Wikipedię), aby naśladować to zachowanie.

Kliknij opcję „Szum Perlin” na wstążce „Obraz 2D”. Na prawym panelu pojawi się wzór szumu w skali szarości. Możesz dostosować parametry szumu za pomocą rozwijanego menu konfiguracji, a następnie ponownie kliknij ikonę, aby odświeżyć obraz, aż uzyskasz pożądany poziom szorstkości.

Perlin noise image and mesh with irregular triangle reduction.
Powierzchnia generowana przy użyciu szumu Perlina, z włączoną funkcją redukcji liczby węzłów. Gęstość trójkątów dostosowuje się do lokalnej krzywizny.
Perlin noise surface meshed with a regular triangular grid.
Ta sama powierzchnia została podzielona na regularną siatkę (bez zmniejszania liczby węzłów). Jest to często dobre rozwiązanie w przypadku danych uzyskanych metodą zbliżoną do AFM.

Po wybraniu wzoru naciśnij przycisk „Utwórz siatkę”, aby wygenerować trójwymiarową powierzchnię. W przypadku struktur przypominających te stosowane w mikroskopii sił atomowych (AFM) zazwyczaj lepiej jest użyć regularnej siatki niż domyślnego algorytmu redukcji liczby węzłów. Regularna siatka zapewnia bardziej równomierne próbkowanie wysokości powierzchni i ułatwia kontrolowanie całkowitej liczby trójkątów. Możesz przełączać się między tymi opcjami w oknie dialogowym „Edytuj siatkę” i eksperymentować z różnymi rozdzielczościami trójkątów, aż uzyskasz optymalny kompromis między dokładnością a szybkością.

4. Obróbka końcowa z wykorzystaniem filtrów.

Po wygenerowaniu obrazu 2D można go dodatkowo udoskonalić, korzystając z narzędzi dostępnych na karcie „Filtry”, jak pokazano na ilustracji ??. Narzędzia te działają bezpośrednio na obraz po prawej stronie, przed utworzeniem siatki.

Filters ribbon showing blur, Normalize y, Normalize z, Threshold, Rotate and Boundary tools.
Filtry do przetwarzania obrazów. Służą one do modyfikacji mapy wysokości przed generowaniem siatki.

Filtr „Rozmycie” wygładza ostre krawędzie i rogi; opcje „Normalizacja” zmieniają skalę rozkładu wysokości, ograniczając go do określonego zakresu; funkcja „Próg” może przekształcić obraz w skali szarości w strukturę binarną; a funkcja „Obramowanie” może dodać solidną ramkę wokół obrazu. Wszystkie te funkcje działają na podstawie obrazu źródłowego, dzięki czemu można je dowolnie łączyć, a następnie nacisnąć przycisk „Utwórz siatkę”, aby zobaczyć efekt na powierzchni 3D.

Jako konkretny przykład, zacznijmy od wzoru fali piłokształtnej, który można wygenerować za pomocą przycisku „Fala piłokształtna”. Po utworzeniu siatki można zobaczyć coś podobnego do ??. Zastosowanie filtra rozmywającego wygładza krawędzie i tworzy bardziej gładką powierzchnię, jak na ilustracji ??.

Saw-wave generated pattern and its 3D mesh.
Trójwymiarowy model przedstawiający falę piłokształtną. Widoczny na nim obraz ukazuje ostre, trójkątne wypukłości.
Blurred saw-wave pattern and smoothed 3D mesh.
Po zastosowaniu filtra rozmywającego efekt jest podobny. Grzbiety są bardziej gładkie, a siatka lepiej nadaje się do zastosowań w optyce.

Ogólna strategia jest zawsze taka sama: generujemy lub importujemy obraz 2D, stosujemy potrzebne filtry, a następnie odtwarzamy siatkę. Jeśli uzyskana siatka nadal wydaje się zbyt złożona, używamy funkcji „Edytuj siatkę”, aby zmniejszyć liczbę trójkątów, zachowując jednocześnie kluczowe elementy powierzchni.

5. Importowanie plików CAD (format Wavefront OBJ)

Oprócz kształtów opartych na obrazach, OghmaNano umożliwia importowanie prostych modeli CAD za pomocą formatu Wavefront OBJ ( link do Wikipedii). Jest to przydatne, jeśli masz już gotowe projekty mechaniczne lub geometrię soczewek, które zostały zdefiniowane w zewnętrznym programie CAD.

Aby zaimportować model CAD, kliknij opcję „Importuj plik CAD” w lewym górnym rogu edytora kształtów i wybierz plik OBJ. Analizator obsługuje wersję tego formatu w postaci zwykłego tekstu, składającą się głównie z definicji wierzchołków i ścian. Inne formaty CAD nie są obecnie obsługiwane.

Podczas importowania geometrii CAD szczególnie ważne jest, aby kontrolować liczbę trójkątów. Bardzo szczegółowy plik OBJ zawierający dziesiątki tysięcy trójkątów może być idealny do wizualizacji, ale w przypadku śledzenia promieni będzie działał bardzo wolno i może znacząco wydłużyć czas działania całej symulacji. Jeśli to możliwe, uprość lub zredukuj liczbę elementów siatki w programie CAD przed zaimportowaniem jej do OghmaNano.

6. Kilka uwag na temat powierzchni zamkniętych.

Niezależnie od tego, czy dany kształt pochodzi z obrazu 2D, czy z zaimportowanego pliku CAD, wszystkie kształty używane przez OghmaNano są traktowane jako powierzchnie zamknięte. Nieformalnie, powierzchnia jest zamknięta, jeśli całkowicie ogranicza określoną objętość, nie pozostawiając żadnych otworów ani przerw. W terminologii siatek, każda krawędź w siatce powinna należeć dokładnie do dwóch trójkątów.

Powodem wprowadzenia tego wymogu jest to, że algorytm śledzenia promieni musi jednoznacznie określać, kiedy promień znajduje się „wewnątrz” lub „na zewnątrz” danej struktury. Jeśli siatka ma otwarte krawędzie, brakuje w niej ścian lub występują w niej przecięcia, promienie mogą przedostawać się przez szczeliny lub utknąć w słabo zdefiniowanych obszarach. Może to prowadzić do powstawania błędów numerycznych, a nawet spowodować nieprawidłowe działanie algorytmu śledzenia promieni.

Siatki generowane na podstawie obrazów 2D są zawsze domyślnie zamknięte: płaszczyzna bazowa i ściany boczne są dodawane automatycznie. Jakość importowanych modeli CAD zależy jednak od jakości oryginalnego pliku. Jeśli napotkasz problemy z modelem pochodzącym z CAD, warto sprawdzić w programie do przeglądania plików CAD, czy obiekt faktycznie tworzy zamkniętą bryłę, i w razie potrzeby naprawić go przed użyciem w OghmaNano.