Головна Приклади Знімки екрана Інструкція користувача Логотип Bluesky. YouTube ☰
OghmaNano Мультифізична платформа для моделювання оптоелектронних пристроїв і фотонних систем. ЗАВАНТАЖИТИ Короткий посібник зі швидкого старту

Навчальний посібник зі створення бази даних геометричних форм (частина B): створення двовимірних зображень і сіток.

У Частина А ви створили новий запис у базі даних «Shape» і побудували свою першу сітку на основі простого візерунка, що імітує фотонний кристал. У цій частині ми зосереджуємося на тому, як саме створюються ці двовимірні зображення, і як їх перетворюють на корисні тривимірні структури для трасування променів і моделювання пристроїв.

База даних Shape призначена для зберігання геометричних об’єктів, які важко описати за допомогою простих аналітичних функцій: зображень, отриманих за допомогою атомно-силової мікроскопії, нерівних поверхонь, складних мозаїчних візерунків і сіток, а також імпортованих CAD-моделей. Усі ці об’єкти обробляються послідовно: починають із двовимірного зображення, а потім екструдують його в тривимірний простір.

1. Стрічка інструментів для роботи з двовимірними зображеннями

Відкрийте редактор фігур для будь-якого елемента в базі даних (наприклад, фігури demo з розділу A) і перейдіть до вкладки «Двовимірне зображення». Ви повинні побачити панель інструментів, схожу на ту, що зображена на ??.

2D Image ribbon showing buttons for Image, Generate Honeycomb, Generate Xtal, Generate lens, Generate Gaussian, Saw wave, Checkerboard and Perlin noise.
Панель інструментів «Двовимірне зображення». Кожен генератор створює нове зображення у відтінках сірого, яке можна екструдувати в тривимірний об’єкт.

Кожна кнопка генерує нову карту висот у градаціях сірого в правій панелі редактора форми: стільникову структуру, фотонний кристал (позначено як «Згенерувати кристал»), профіль, що нагадує лінзу, гауссівську пляму, пилкоподібну хвилю, шаховий візерунок або нерівну поверхню, створену за допомогою шуму Перліна. Щоразу, коли ви натискаєте на кнопку, зображення відтворюється заново з поточними налаштуваннями.

Під кожним генератором також є невелика стрілка. Натискання на неї відкриває вікно налаштувань, що стосується саме цього шаблону. Нижче ми розглянемо кілька конкретних прикладів.

Ви не обмежені використанням лише синтетичних зображень. Кнопка «Зображення» зліва дозволяє імпортувати реальні дані, отримані за допомогою атомно-силової мікроскопії (АСМ), або будь-яке інше растрове зображення. Програма дискретизує зображення, інтерпретуючи його як карту висот: білі пікселі відповідають максимальній висоті, чорні – мінімальній, а проміжні відтінки сірого – проміжним висотам. Для досягнення найкращих результатів дані АСМ слід перетворити на лінійну шкалу відтінків сірого; кольорові палітри «теплової карти» не підходять, оскільки яскравість більше не кодує висоту простим способом.

Насамкінець, якщо ви натиснете лівою кнопкою миші на зображенні праворуч, ви зможете «зафарбувати» пікселі в чорний колір, щоб видалити матеріал. Це простий спосіб обрізати небажані області або вирізати отвори, не потребуючи повторного створення всього малюнка.

2. Приклад: схеми розташування контактів у вигляді стільникової структури.

Стільникові структури корисні як прозорі контакти, гнучкі провідні сітки або механічні опори. Щоб створити таку структуру, натисніть «Згенерувати стільникову структуру». Права панель оновиться, відображаючи гексагональну сітку. Коли ви натиснете «Створити сітку», візерунок буде екструдовано в тривимірну структуру, як показано на ??.

Honeycomb pattern and its corresponding 3D mesh in the Shape editor.
Стільникова структура, створена на основі двовимірного зображення та перетворена на тривимірний об’єкт.
Honeycomb configuration window showing dx, dy, shifts, line width and rotation.
Параметри конфігурації стільникової структури. Ви можете налаштувати відстань між елементами, зміщення, товщину ліній і кут повороту в пікселях.

Вікно налаштувань дозволяє змінювати характерні інтервали за осі X та Y, зсувати візерунок відносно базової сітки, встановлювати товщину ліній і обертати візерунок. Невеликі коригування тут можуть суттєво вплинути на те, як сітка вписується в структуру пристрою, тому варто трохи поекспериментувати.

Коли ви будете задоволені двовимірним малюнком, знову натисніть кнопку «Створити сітку», щоб оновити тривимірне зображення. Якщо сітка виглядає надмірно складною, ви можете натиснути кнопку «Редагувати сітку» та зменшити кількість трикутників. Мета полягає в тому, щоб використовувати якомога менше трикутників, зберігаючи при цьому точну геометрію: кожен додатковий трикутник збільшує обчислювальні витрати на трасування променів, і на практиці сповільнення зазвичай є надлінійним, а не лінійним.

3. Приклад: нерівності, подібні до тих, що отримують за допомогою атомно-силової мікроскопії, на основі перлінівського шуму.

Реальні поверхні часто мають нерівну структуру, тому корисно мати можливість створювати «штучні» поверхні, що імітують атомно-силову мікроскопію, зі схожими статистичними характеристиками для швидких оптичних експериментів. OghmaNano використовує шум Перліна, який являє собою гладке випадкове поле, що зазвичай використовується в комп’ютерній графіці ( див. Вікіпедію), щоб імітувати таку поведінку.

На стрічці інструментів «Двовимірне зображення» натисніть «Шум Перліна». У правій панелі з’явиться сірий шум. Ви можете налаштувати параметри шуму за допомогою випадаючого меню конфігурації та знову натиснути на відповідну іконку, щоб повторно генерувати шум, доки не отримаєте бажаний рівень шорсткості.

Perlin noise image and mesh with irregular triangle reduction.
Згенерована поверхня з використанням алгоритму Перліна, зі ввімкненою функцією зменшення кількості вузлів. Щільність трикутників адаптується до локальної кривизни.
Perlin noise surface meshed with a regular triangular grid.
Одна й та сама поверхня представлена у вигляді регулярної сітки (без зменшення кількості вузлів). Це часто є вдалим рішенням для даних, отриманих за допомогою атомно-силової мікроскопії.

Після того, як ви обрали шаблон, натисніть «Створити сітку», щоб створити тривимірну поверхню. Для структур, подібних до тих, що використовуються в атомно-силовій мікроскопії, зазвичай краще використовувати регулярну сітку, а не стандартний алгоритм зменшення кількості вузлів. Регулярна сітка забезпечує більш рівномірне розподілення точок для визначення висоти поверхні та полегшує контроль над загальною кількістю трикутників. Ви можете перемикатися між цими параметрами у вікні редагування сітки та експериментувати з різною роздільною здатністю трикутників, доки не досягнете оптимального балансу між точністю та швидкістю.

4. Постобробка за допомогою фільтрів

Після створення двовимірного зображення ви можете додатково вдосконалити його, використовуючи інструменти, розташовані на стрічці «Фільтри», як показано на ??. Ці інструменти безпосередньо впливають на зображення, що відображається праворуч, до того, як буде виконано створення сітки.

Filters ribbon showing blur, Normalize y, Normalize z, Threshold, Rotate and Boundary tools.
Фільтри для обробки зображень. Вони змінюють карту висот перед створенням сітки.

Фільтр «Розмиття» згладжує різкі переходи та кути; параметри «Нормалізація» змінюють масштаб розподілу висот, обмежуючи його певним діапазоном; параметр «Поріг» може перетворити зображення у відтінках сірого на бінарну структуру; а параметр «Межа» може додати суцільну рамку навколо зображення. Усі ці параметри застосовуються до базового зображення, тому ви можете вільно комбінувати їх, а потім натиснути кнопку «Створити сітку», щоб побачити, як це впливає на тривимірну поверхню.

Для наочності почнемо з прикладу: створіть візерунок у формі пилкоподібної хвилі за допомогою кнопки «Пилкоподібна хвиля». Після створення сітки ви побачите щось подібне до ??. Застосування фільтра розмиття згладжує краї та створює більш рівну поверхню, як показано на ??.

Saw-wave generated pattern and its 3D mesh.
Зображення у вигляді хвилі, що нагадує пилку, перенесене в тривимірний простір. На основному зображенні видно чіткі трикутні гребені.
Blurred saw-wave pattern and smoothed 3D mesh.
Після застосування фільтра розмиття спостерігається та сама закономірність. Ребра стають більш гладкими, а структура сітки краще пристосована для оптики.

Загальна стратегія завжди однакова: створіть або імпортуйте двовимірне зображення, застосуйте необхідні фільтри, а потім відтворіть сітку. Якщо отримана сітка все ще здається надто складною, скористайтеся функцією «Редагувати сітку», щоб зменшити кількість трикутників, зберігаючи при цьому основні характеристики поверхні.

5. Імпорт CAD-файлів (формат Wavefront OBJ)

Окрім фігур, створених на основі зображень, OghmaNano може імпортувати прості CAD-моделі у форматі Wavefront OBJ ( посилання на Wikipedia). Це корисно, якщо у вас вже є готові механічні проєкти або геометричні моделі лінз, створені в зовнішній CAD-програмі.

Щоб імпортувати CAD-модель, натисніть кнопку «Імпортувати CAD-файл» у верхньому лівому куті редактора фігур і виберіть файл OBJ. Аналізатор підтримує текстову версію цього формату, яка складається переважно з визначень вершин і граней. Інші CAD-формати наразі не підтримуються.

Під час імпорту CAD-геометрії особливо важливо контролювати кількість трикутників. Дуже деталізований OBJ-файл, що містить десятки тисяч трикутників, може цілком підходити для візуалізації, але для трасування променів він буде надзвичайно повільним і може значно збільшити час обчислень усієї симуляції. За можливості, спростіть або зменште кількість полігонів у вашому CAD-інструменті, перш ніж імпортувати їх в OghmaNano.

6. Додаток про замкнуті поверхні.

Незалежно від того, чи отримано форму з двовимірного зображення або з імпортованого CAD-файлу, усі форми, які використовуються в OghmaNano, розглядаються як замкнуті поверхні. У загальному розумінні, поверхня вважається замкнутою, якщо вона повністю обмежує об’єм, не містячи отворів або проміжків. У термінах сітки, кожне ребро в сітці повинно належати рівно двом трикутникам.

Причина цієї вимоги полягає в тому, що оптичному розв’язувачу необхідно чітко визначати, коли промінь знаходиться «всередині» або «зовні» певної структури. Якщо сітка має відкриті краї, відсутні грані або перетинається сама з собою, промені можуть проникати крізь щілини або застрягати у нечітко визначених областях. Це може призвести до числових артефактів або навіть до збою в роботі трасувальника променів.

Сітки, створені на основі двовимірних зображень, завжди є замкнутими за своєю структурою: базова площина та бічні стінки додаються автоматично. Однак якість імпортованих CAD-моделей залежить від якості вихідного файлу. Якщо у вас виникли проблеми з формою, отриманою з CAD-моделі, варто перевірити в програмі для перегляду CAD-моделей, чи дійсно об’єкт утворює замкнуту оболонку, і, якщо необхідно, відредагувати її перед використанням в OghmaNano.