ホーム スクリーンショット ユーザーマニュアル Blueskyロゴ YouTube
OghmaNano 有機/ペロブスカイト太陽電池、OFET、OLEDをシミュレーション ダウンロード

Shape Database チュートリアル(Part B):2D 画像とメッシュの生成

Part A では、 Shape database に新しいエントリを作成し、単純なフォトニック結晶スタイルのパターンから 最初のメッシュを構築しました。 このパートでは、それらの 2D 画像がそもそもどのように生成されるのか、そして それらがレイトレーシングやデバイスシミュレーションに有用な 3D 構造へ どのように変換されるのかに焦点を当てます。

Shape database は、単純な解析関数では記述しにくい 幾何形状 を対象としています:AFM 画像、粗い界面、複雑なタイリングやメッシュ、 さらにインポートされた CAD 部品です。これらはすべて、2D 画像から開始し、 それを 3D に押し出すことで一貫して扱われます。

1. 2D Image リボン

データベース内の任意のエントリ(例えば Part A の demo 形状)の Shape editor を開き、2D Image リボンに切り替えてください。 ?? に示すものと類似したツールバーが表示されるはずです。

Image、Generate Honeycomb、Generate Xtal、Generate lens、Generate Gaussian、Saw wave、Checkerboard、および Perlin noise の各ボタンを表示した 2D Image リボン。
2D Image リボン。各ジェネレータは、3D に押し出すことができる新しいグレースケール画像を生成します。

各ボタンは Shape editor の右側パネルに新しいグレースケールの高さマップを生成します: ハニカム、フォトニック結晶(Generate Xtal と表示)、レンズ状プロファイル、 ガウシアンスポット、のこぎり波、チェッカーボードパターン、または Perlin ノイズ粗面です。 ボタンをクリックするたびに、現在の設定で画像が再生成されます。

各ジェネレータの下には小さな矢印もあります。これをクリックすると、そのパターン固有の Configure ウィンドウが開きます。以下でいくつか具体例を見ていきます。

合成画像だけに限定されるわけではありません。左側の Image ボタンを使うと、 実際の AFM データやその他のビットマップもインポートできます。離散化器は その画像を高さマップとして解釈します: 白ピクセルは最大高さ、黒ピクセルは最小高さ、そして中間の グレーは中間の高さを与えます。最良の結果を得るには、AFM データは 線形グレースケールのカラースケールへ変換されている必要があります;着色された「ヒートマップ」 パレットは、明るさがもはや単純な形で高さを表現しないため適していません。

最後に、右側の画像上でマウスを左クリックすると、ピクセルを黒く「塗る」ことで 材料を除去できます。これは、パターン全体を再生成することなく、 不要な領域を切り取ったりアパーチャをくり抜いたりする簡単な方法です。

2. 例:ハニカム接触パターン

ハニカム構造は、透明電極、柔軟な導電メッシュ、または 機械的支持体として有用です。生成するには、Generate Honeycomb をクリックします。 右側パネルが六角格子に更新されます。次に Build Mesh をクリックすると、そのパターンは ?? に示すような 3D 構造に押し出されます。

Shape editor におけるハニカムパターンと対応する 3D メッシュ。
2D Image リボンから生成され、3D に押し出されたハニカムパターン。
dx、dy、シフト、線幅、および回転を表示したハニカム設定ウィンドウ。
ハニカム設定オプション。画素単位で間隔、オフセット、線幅、および回転を調整できます。

設定ウィンドウでは、x 方向および y 方向の特徴的な間隔を変更し、 下地グリッドに対するパターンのシフトを設定し、線幅を設定し、 パターンを回転できます。ここでの小さな調整でも、メッシュがデバイス構造に どのように収まるかに大きな違いを生むことがあるため、少し試してみる価値があります。

2D パターンに満足したら、再度 Build Mesh を押して 3D 表示を更新してください。メッシュが過度に複雑に見える場合は、Edit mesh をクリックして 三角形数を減らせます。目標は常に、形状を忠実に表現しつつ 最小限 の三角形を使うことです: 余分な三角形はすべてレイトレーシングのコストを増加させ、実際にはその低速化は通常、 線形ではなく超線形です。

3. 例:Perlin ノイズによる AFM 類似粗さ

実際の界面はしばしば粗く、簡単な光学実験のために同様の統計を持つ 「擬似 AFM」表面を生成できると便利です。OghmaNano は Perlin noise を使用します。これはコンピュータグラフィックスで一般的に用いられる 滑らかなランダム場であり、 (Wikipedia を参照)、 この挙動を模倣します。

2D Image リボンの Perlin noise をクリックしてください。グレースケールのノイズパターンが 右側パネルに現れます。ドロップダウン設定メニューからノイズパラメータを調整し、 望む種類の粗さが得られるまで再度アイコンをクリックして再生成できます。

不規則な三角形削減を用いた Perlin ノイズ画像とメッシュ。
ノード削減を有効にした Perlin ノイズ生成表面。三角形密度は局所曲率に適応します。
規則的な三角格子でメッシュ化された Perlin ノイズ表面。
同じ表面を規則格子(ノード削減なし)でメッシュ化したもの。これは AFM 風データに対して良い選択となることが多いです。

パターンを選んだら、Build Mesh を押して 3D 表面を作成してください。 AFM 類似構造では、デフォルトのノード削減アルゴリズムよりも 規則的な メッシュを使う方が良い場合が多くあります。規則格子は 表面高さのより均一なサンプリングを与え、総三角形数を制御しやすくします。 これらの選択は Edit mesh ダイアログで切り替えることができ、 忠実度と速度の良い妥協点に達するまで異なる三角形分解能を試せます。

4. Filters による後処理

2D 画像が生成された後、さらに ?? に示す Filters リボンを使って それを加工できます。 これらのツールは、メッシュ化の前に右側の画像へ直接作用します。

blur、Normalize y、Normalize z、Threshold、Rotate、および Boundary ツールを表示した Filters リボン。
画像処理フィルタ。これらはメッシュ生成前に高さマップを修正します。

Blur フィルタは鋭い段差や角を平滑化し、 Normalize オプションは高さ分布を制御された範囲へ再スケーリングし、 Threshold はグレースケールパターンを二値構造へ変換でき、 Boundary はパターンの周囲に実体境界を追加できます。これらはすべて 下地画像に対して作用するため、自由に組み合わせてから Build Mesh を押し、3D 表面への効果を確認できます。

具体例として、Saw wave ボタンで生成したのこぎり波パターンから始めてください。 メッシュ構築後には、 ?? に類似したものが見えるかもしれません。 ぼかしフィルタを適用するとエッジが柔らかくなり、 ?? に示すより滑らかな表面が得られます。

のこぎり波で生成されたパターンとその 3D メッシュ。
3D に押し出されたのこぎり波パターン。下地画像は鋭い三角形状のリッジを示しています。
ぼかし処理されたのこぎり波パターンと平滑化された 3D メッシュ。
ぼかしフィルタ適用後の同じパターン。リッジがより滑らかになり、メッシュは光学により適したものになります。

一般的な戦略は常に同じです:2D 画像を生成またはインポートし、 必要なフィルタを適用し、その後メッシュを再構築します。 それでも結果のメッシュがまだ重すぎると感じる場合は、 Edit mesh を使って、表面の主要な特徴を保ちながら 三角形数を減らしてください。

5. CAD ファイルのインポート(Wavefront OBJ)

画像ベースの形状に加えて、OghmaNano は Wavefront OBJ 形式を介して単純な CAD モデルをインポートできます (Wikipedia リンク)。 これは、外部 CAD パッケージで定義された 機械設計やレンズ形状をすでに持っている場合に便利です。

CAD モデルをインポートするには、Shape editor 左上の Import CAD file をクリックし、 OBJ ファイルを選択します。パーサは、主に頂点定義と面定義からなる プレーンテキスト版の形式をサポートします。その他の CAD 形式は現在 認識されません。

CAD 形状をインポートする際には、三角形数を制御下に保つことが 特に重要です。数万個の三角形を持つ高詳細な OBJ は、可視化にはまったく問題ないかもしれませんが、 レイトレーシングでは極めて低速になり、シミュレーション全体の 実行時間を容易に支配してしまいます。可能であれば、OghmaNano に持ち込む前に、 CAD ツール内でメッシュを簡略化または間引いてください。

6. 閉曲面に関する注意

形状が 2D 画像から来たものであれ、インポートされた CAD ファイルから来たものであれ、 OghmaNano で使用されるすべての形状は 閉曲面 として扱われます。非形式的に言えば、曲面が閉じているとは、 穴や隙間なしに体積を完全に囲んでいることを意味します。メッシュの用語では、 メッシュ内のすべての辺はちょうど 2 つの三角形に属している必要があります。

この要件が必要な理由は、光学ソルバーが光線が構造の 「内側」にあるのか「外側」にあるのかを曖昧さなく知る必要があるからです。 メッシュに開いた辺、欠損面、あるいは自己交差がある場合、 光線が隙間から漏れたり、不定義領域に閉じ込められたりする可能性があります。 これは数値アーティファクトを引き起こし、場合によってはレイトレーサーを失敗させることすらあります。

2D 画像から生成されたメッシュは、構成上常に閉じています:底面と側壁が 自動的に追加されるためです。しかし CAD インポートは、元ファイルの品質にのみ依存します。 CAD 由来の形状で問題が起きた場合は、CAD ビューアで そのオブジェクトが本当に密閉シェルを形成しているかどうかを確認し、 必要であれば修復してから OghmaNano で使用する価値があります。