형상 데이터베이스
형상 데이터베이스는 3D CAD 모델의 범용 로컬 저장소 역할을 합니다. 형상 데이터베이스의 항목은 3D 메시(또는 형상)로 저장되며, 예를 들어 AFM 측정으로부터 얻은 재료의 거친 표면, 대면적 장치의 복잡한 육각형 접촉( ?? 참조), 또는 광자 결정의 주기적 기둥을 나타낼 수 있습니다. 형상은 삼각형 메시를 사용하여 정의됩니다. 형상 데이터베이스 창에는 2D 이미지로부터 새로운 3D CAD 모델을 생성하는 도구와 외부 메시를 Wavefront OBJ 파일에서 가져오는 도구가 포함되어 있습니다. 중요한 점은 이 데이터베이스의 모든 형상이 디스크에 영구적으로 저장되며, 상자, 튜브, 구와 같은 단순한 기하학적 기본 형상에 중점을 둔 Mesh editor가 생성하는 것보다 더 복잡한 기하 구조를 표현하기 위한 용도로 사용된다는 것입니다( CAD 메시 참조).
데이터베이스 접근
형상은 형상 데이터베이스에 저장되며, 이는 Database 리본에서 Shapes 아이콘을 클릭하여 접근할 수 있습니다( ?? 참조). Shape database 아이콘을 클릭하면 형상 데이터베이스 창이 열립니다 (??).
일부 형상을 열어 검사해 보십시오. 그러면 ??와 같은 창을 보게 됩니다. 이 예는 태양전지의 벌집형 접촉 구조를 보여줍니다. 왼쪽은 3D 형상이고, 오른쪽은 이를 생성하는 데 사용된 2D 이미지입니다. 2D 이미지 위에는 3D 메시의 zx 투영이 겹쳐져 있습니다. 상단 리본에서 show mesh 버튼을 전환하여 이 2D 메시를 끄고 켤 수 있습니다.
메시 생성
형상 데이터베이스 창이 열리면, 저장된 어떤 형상이든 보고 편집할 수 있습니다. 데이터베이스의 많은 형상은
원래 내장된 이산화 도구를 사용하여 2D 이미지로부터 생성되었습니다. 이 절에서는 그 과정이
어떻게 작동하는지 설명합니다. 형상 데이터베이스에서 morphology/1을 여십시오.
그러면
??와 유사한 창을 보게 됩니다.
왼쪽 패널은 결과로 생성된 3D 삼각형 메시를 보여주고, 오른쪽 패널은
메시가 생성된 원본 2D 이미지를 보여줍니다. File 리본의 Show mesh 버튼은
2D 이미지에서 메시 오버레이를 전환하여 삼각분할이 기본 특징을 어떻게 따르는지 검사할 수 있게 합니다.
이미지가 3D 메시로 변환되는 방식을 변경하려면 File 리본에서 Edit mesh를 클릭하십시오. 그러면 메시 설정 대화상자가 열립니다 (??), 여기서 이산화 수준을 제어할 수 있습니다.
주요 파라미터는 다음과 같습니다:
- x-triangles — 수평 방향의 최대 삼각형 개수
- y-triangles — 수직 방향의 최대 삼각형 개수
- Method — 메시가 구성되는 방식을 선택
- Min allowable angle — अत्य히 가늘고 불안정한 삼각형을 방지
예를 들어, x-triangles와 y-triangles를 모두 40으로 줄인 다음
Build mesh를 클릭하십시오. 결과 메시에는 더 적은 삼각형이 포함되므로 세부 수준은 낮아지지만,
다루기가 더 빨라집니다. 이 감소는 2D와 3D 미리보기에서 즉시 확인할 수 있습니다.
Method 설정은 삼각형이 생성되는 방식을 제어합니다:
- No reduce: 균일한 정규 삼각형 격자를 생성합니다. 이는 가장 정확한 기하 구조를 제공하지만 많은 수의 삼각형을 생성합니다.
- Node reduce: 정규 격자에서 시작한 다음 불필요한 점을 제거하여 전체 형상을 유지하면서 삼각형 개수를 줄입니다.
No reduce로 전환하고 메시를 다시 빌드하면 적응형 메시가 완전한 정규 70 × 70 삼각분할로 대체됩니다. 이는 더 정밀하지만, 저장하고 시뮬레이션하기에는 더 무겁습니다. 메시의 모든 추가 삼각형은 시뮬레이션에서 अतिरिक्त 계산 부담을 도입합니다. 따라서 메시를 만들 때의 목표는 가능한 한 적은 삼각형으로 형상을 표현하는 것입니다. 전체 표면을 비교적 적은 수의 삼각형으로 설명할 수 있다면, 일반적으로 그렇게 하는 것이 좋습니다. 그러나 매우 규칙적인 형상의 경우에는 삼각형 수를 줄이기 위해 Node reduce를 적용해도 거의 또는 전혀 이점이 없을 수 있습니다. 이런 경우에는 단순한 정규 메시가 똑같이 효과적일 수 있습니다. 실제로는 정확도와 계산 비용 사이에서 허용 가능한 균형을 제공하는 메시를 찾기 위해 서로 다른 설정과 방법을 실험해야 하는 경우가 많습니다.
2D 이미지 생성 및 필터링 도구
Shape Editor에는 파일에서 이미지를 불러오는 것 외에도, 3D 메시로 변환할 수 있는 새로운 2D 패턴을 생성하는 도구 세트가 포함되어 있습니다. 이러한 도구는 2D Image 리본 아래에 위치하며, 다양한 구조를 위한 생성기를 포함합니다:
- 픽셀 레이아웃 또는 전극 격자를 위한 Honeycomb 패턴
- 주기성을 설정할 수 있는 Photonic crystal 격자
- 높이 맵으로 정의된 Lenses
- 돌출부, 함몰부 또는 구배 표면을 위한 Gaussian 프로파일
- Saw-wave 높이 함수(아래 예 참조)
- 보정 및 테스트를 위한 Checkerboard 패턴
- 현실적인 표면 거칠기를 생성하기 위한 Perlin noise
각 생성기에는 자체 설정 옵션이 제공되므로, 메시로 변환하기 전에 기하 구조를 사용자 정의할 수 있습니다. 이러한 이미지는 Shape Editor가 해당하는 3D 구조를 구성하는 높이 맵 또는 마스크 역할을 합니다.
이미지를 생성하거나 불러온 후에는 Filters 리본에서 메시 구성 전에 이미지를 수정하는 도구를 제공합니다. 여기에는 다음이 포함됩니다:
- Blur — 노이즈나 급격한 전이를 부드럽게 함
- Normalize (x, y, z) — 각 방향에서 이미지를 재스케일함
- Threshold — 이미지를 이진 마스크로 변환함(위 예 참조)
- Rotate — 패턴을 고정 각도 또는 임의 각도로 회전함
- Boundary — 이미지 내의 경계를 강조하거나 추출함
이러한 도구를 사용하면 최종 삼각형 메시를 생성하기 전에 높이 맵을 정제하고, 노이즈가 많은 이미지를 정리하거나, 패턴을 조작할 수 있습니다. 이미지 생성기와 필터의 조합은 OghmaNano 내부에서 직접 복잡하고 사용자 정의된 3D 기하 구조를 생성하기 위한 유연한 워크플로우를 제공합니다.
CAD 파일에서 가져오기
2D 이미지로부터 형상을 생성하는 것 외에도, Shape Editor는 또한 ??에 표시된 Import CAD file 버튼을 사용하여 외부 3D 메시를 가져올 수 있게 합니다. OghmaNano는 삼각형 표면 메시 저장에 널리 사용되는 Wavefront OBJ 형식을 지원합니다. 또한 형상 데이터베이스에서 가져온 CAD 모델의 예시를 찾을 수 있습니다. 바로 고전적인 Utah Teapot이며, 이는 ??에 나와 있습니다. 이 메시는 외부 삼각형 모델이 편집기로 가져온 후 어떻게 보이는지를 보여줍니다.
CAD 모델을 가져올 때는 메시가 닫힌 표면을 형성하는지 확인하는 것이 중요합니다. 닫힌 표면이란 모든 모서리가 정확히 두 개의 삼각형에 속하여 완전히 밀폐된, watertight 부피를 형성하는 표면입니다. 열린 표면, 누락된 면 또는 균열은 점이 내부에 있는지 외부에 있는지 판단하는 데 모호성을 초래하므로 시뮬레이션에 적합하지 않습니다.
CAD 메시는 일반적으로 수치 시뮬레이션이 아니라 가공 및 제조를 위해 설계됩니다. 그 결과, 광학 또는 물리 모델링에 필요한 것보다 훨씬 더 많은 삼각형을 포함하는 경우가 많습니다. 큰 삼각형 개수는 광선 추적 및 기타 솔버에서 계산 시간을 크게 증가시킵니다.
최상의 성능을 위해, 가져온 메시는 다음을 만족해야 합니다:
- 완전히 닫히고 watertight한 표면을 형성할 것,
- 기하 구조를 표현하는 데 필요한 만큼의 삼각형만 포함할 것, 그리고
- 불필요하게 미세한 특징이나 가공 아티팩트가 제거되어 있을 것.
이러한 지침을 따르면 가져온 CAD 기하 구조가 OghmaNano 내에서 효율적으로 실행되도록 할 수 있습니다.
형상 파일 형식
형상은 완전히 닫힌 부피를 형성해야 합니다. 내장된 형상 이산화기를 사용하면 이 조건은 자동으로 강제됩니다. 그러나 형상을 수동으로 구성하는 경우에는 부피가 닫혀 있는지 반드시 확인해야 합니다.
각 형상 디렉터리에는 다음 파일이 포함됩니다:
| 파일 이름 | 설명 | |
|---|---|---|
| \(data.json\) | 형상 설정 데이터. | |
| \(image\_original.png\) | 가져온 이미지의 백업. | |
| \(image\_out.png\) | 최종 처리된 이미지. | |
| \(image.png\) | 가져온 이미지의 작업 사본. | |
| \(shape.inp\) | 형상의 이산화된 3D 메시. |
PNG 파일은 서로 다른 처리 단계의 이미지를 나타냅니다. data.json 파일은
Shape Editor의 설정을 저장하며, shape.inp 파일은 객체의 3D 구조를 포함합니다.
shape.inp 파일의 예가
??에 나와 있습니다.
이 형식은 gnuplot이 splot 명령을 사용하여 직접 열 수 있도록 설계되었습니다.
각 삼각형은 네 개의 z, x, y 점으로 설명됩니다. 처음 세 줄이 삼각형을 정의하고,
네 번째 줄은 첫 번째 점을 반복하여 gnuplot이 닫힌 외곽선을 플로팅할 수 있도록 합니다. 파일의
삼각형 개수는 #y로 시작하는 줄에 정의됩니다.
z, x, y 값의 정확한 크기는 중요하지 않습니다. 형상이 로드되는 즉시 모든 값은
형상의 최소점이 (0, 0, 0)에 위치하고 최대점이
(1, 1, 1)에 오도록 정규화됩니다. 형상이 장면에 삽입되면, 장치 내 객체의 원하는 물리적 크기에 맞게
다시 정규화됩니다.
shape.inp 파일의 예. 각 삼각형은 네 개의 z, x, y 점으로 정의되며,
gnuplot을 사용하여 직접 시각화할 수 있습니다.
👉 다음 단계: 형상을 생성하는 실제 예는 형상 데이터베이스와 이미지로부터 3D 형상을 만드는 방법에 대한 튜토리얼을 이 링크에서 참조하십시오.