コンテンツにスキップ

3D ビューワ

3D ビューワは DICOM 画像スタックから 3D ボリュームを再構成し、 OpenGL 3.3 を使ったリアルタイムレンダリングで表示します。 メッシュ(サーフェスモデル)の表示・編集にも対応しています。

3D ビューワ全体

GPU 要件

3D ビューワには OpenGL 3.3 Core Profile 対応の GPU が必要です。 仮想マシンや古い GPU では起動しない場合があります。

起動方法

  • メインスクリーンでシリーズを右クリック → 3D ビューワで開く
  • 2D ビューワのメニュー → 3D ビューワ

画面構成

エリア 説明
OpenGL キャンバス 3D 画像を表示するメインビューポート
コントロールパネル スライダー・チェックボックス・テーブル(右側)
Scene Objects テーブル ROI グループとメッシュを統合管理するリスト
Stats 詳細エリア 選択オブジェクトの形状統計を表示
計測エリア 距離・3D ライン計測の操作パネル
メニューバー ファイル・表示・編集

カメラ操作

操作 動作
左ドラッグ 回転(オービット)
右ドラッグ 平行移動(パン)
マウスホイール ズームイン / ズームアウト
中クリックドラッグ 平行移動
R 視点をリセット

ボリューム表示

ボリュームレンダリング

DICOM スタックをそのままボリュームとして表示します。 CT 値(HU)に基づいて透明度・色が自動設定されます。

ボリュームレンダリング

不透明度・輝度の調整

右パネルの Opacity スライダーと Brightness スライダーで調整します。


Cinematic Rendering

モンテカルロ・パストレーシングを使って光の散乱・セルフシャドウ・物理ベース反射を再現する 高品質なボリュームレンダリングモードです。 Rendering Mode で「Cinematic Rendering」を選ぶと有効になります。

プログレッシブ蓄積

カメラやパラメータが静止している間、フレームごとにサンプルが加算され ノイズが自動的に減少します。スライダーを動かすと蓄積がリセットされます。

ライト設定

スライダー 範囲 説明
Light Azimuth 0〜360° 光源の水平方向の角度。0 = 正面、90 = 右、180 = 背面
Light Elevation −90〜90° 光源の仰角。0 = 水平照射、90 = 真上から照射
Light Intensity 0〜4.0 光源の強さ。大きいほど明るく陰影が強くなる
Ambient Intensity 0〜1.0 環境光の強さ。増やすと影の中も明るくなる
Shadow Softness 0〜30° 影の柔らかさ(光源の見かけ上の半角度)。0 = 点光源(硬い影)、大きいほどソフトな影
Exposure 0.1〜4.0 トーンマッピング前の輝度スケール。全体が明るすぎ・暗すぎる場合に調整する
Samples / Frame 1〜16 1 フレームあたりのサンプル数。多いほど高品質だが描画が重くなる

マテリアル設定(Material)

組織境界の見た目(マット感・光沢・クリアコート)を物理ベースマテリアル(PBR)で制御します。 光があたった境界面を Cook-Torrance GGX BRDF でシェーディングします。

スライダー 範囲 説明
Roughness 0〜100 表面の粗さ。0 = 完全な鏡面(ツヤツヤ)、100 = 完全拡散(マット)。骨は 70〜90、皮膚は 20〜40 が目安
Specular 0〜100 非金属素材の基本反射率(F0)の強さ。Roughness が低いほど効果が大きくなる
Clearcoat 0〜100 クリアコート層の強さ。基材の上に薄い透明コートを重ね、皮膚・膜のような濡れ感・光沢を表現する
Clearcoat Roughness 0〜100 クリアコート層の粗さ。0 に近いほど鋭いハイライト。既定値 5 が皮膚・骨として自然
Surface Sensitivity 1〜100 サーフェス検出の感度。不透明度グラディエントがこの値以上の点に BRDF を適用する。推奨: 10〜20

Surface Sensitivity の目安

値が大きい(50〜): ほぼ HG ボリューム散乱のまま → Roughness / Specular の変化が出にくい
値が小さい(10〜20): 組織境界に BRDF が適用される ← 通常はここから始める
値が極小 (1〜5): 内部もBRDF化して不自然になる

推奨プリセット

用途 Roughness Specular Clearcoat Clearcoat Roughness Surface Sensitivity
骨(マット) 75 40 0 5 15
軟部組織 55 50 10 5 12
皮膚(ツヤ感) 30 60 40 5 10

3D 裁断(クリッピング)

3D バウンディングボックスで表示範囲を直方体に切り出し、 ボックス内部のみをレンダリングする機能です。 ボリュームレンダリング (VR) / MIP / Ortho Slices / Cinematic Rendering の すべての表示モードで利用できます。

3D 裁断

使い方

  1. 右パネルの 3D Clipping にある Edit Clip Box チェックボックスを ON にする
  2. キャンバス上にバウンディングボックスが表示される (境界面は半透明、辺は白で描画されます)
  3. ボックスをマウスで操作して、表示したい領域を指定する
  4. ボックスを狭めると、その内部だけがレンダリングされる (最大まで広げると全体表示と同じになります)

マウス操作

操作 動作
面をドラッグ その面を動かして裁断領域をリサイズする
Shift + ドラッグ ボックス全体を平行移動する
ボックスの外をドラッグ 通常どおりカメラを回転する

操作中の面は強調表示(ハイライト)されます。

裁断はチェックを外しても維持されます

Edit Clip Box チェックボックスは、バウンディングボックスの 表示と編集の切り替え のみを行います。 一度設定した裁断領域は、チェックを外しても、 また別の表示モードに切り替えても そのまま適用され続けます

裁断を解除して全体表示に戻すには、Reset Clip Box ボタンを クリックして領域を立方体全体に戻してください。

ボタン / チェックボックス 動作
Edit Clip Box バウンディングボックスの表示・編集の ON / OFF
Reset Clip Box 裁断領域を立方体全体(裁断なし)に戻す

Scene Objects テーブル

ROI グループとメッシュを 一つのテーブルで統合管理 します。 コントロールパネルの Scene Objects セクションに表示されます。

テーブルの列構成

内容 操作
(チェックボックス) 表示 / 非表示 クリックで切り替え
Name オブジェクト名 選択はこの列をクリック
Type ROI または Mesh
■(カラーチップ) 表示色 クリックでカラーピッカーが開く

オブジェクトの選択

テーブルの行をクリックするだけで選択状態になります。 選択したオブジェクトは Generate Mesh from ROIExport Mesh to STLCompute Stats などの操作対象になります。

テーブルへの自動追加

  • ROI: DICOM 読み込み時・ROI 描画時に自動でリストアップされます。
  • Mesh: メッシュファイルを開いたとき・ROI からメッシュ生成したときに追加されます。

形状統計(Stats)

選択したオブジェクトのサーフェス面積・体積・主軸径を計算します。 処理はバックグラウンドスレッドで行われるため、計算中も操作を継続できます。

計算できる統計値

統計項目 単位 説明
Surface Area mm² / cm² 三角形面積の総和(サーフェスモデルベース)
Volume mm³ / mL 符号付き四面体分解(発散定理)による体積
Long Diameter mm PCA 主軸(第1主成分)方向の最大長径
Mid Diameter mm PCA 主軸(第2主成分)方向の中間径
Short Diameter mm PCA 主軸(第3主成分)方向の最小短径

ROI の Stats

ROI タイプを選択して Stats を計算すると、内部で一時的にマーチングキューブスを実行して サーフェスを生成してから計算します。3D メッシュが表示されなくても計算可能です。

使い方

  1. Scene Objects テーブルで計算したい行を選択する
  2. Compute Stats ボタンをクリックする
  3. 計算完了後、テーブル下の Stats 詳細エリアに結果が表示される
=== tumor_mesh ===
Surface Area:   1 234.5 mm²  (12.35 cm²)
Volume:          4 567.8 mm³  (4.57 mL)
Long Diameter:   45.20 mm
Mid  Diameter:   38.10 mm
Short Diameter:  29.60 mm

CSV エクスポート

Export CSV ボタンをクリックすると、テーブル内のすべての Stats を CSV 形式で保存します。

Name,Type,Surface Area (mm2),Volume (mm3),Long Diameter (mm),Mid Diameter (mm),Short Diameter (mm)
Group: 001,ROI,1234.50,4567.80,45.20,38.10,29.60
tumor_mesh,Mesh,2345.60,7890.00,34.50,28.10,21.30

3D 計測

メッシュ表面上に点を打って 距離折れ線長 を計測します。 コントロールパネルの Measurements セクションで操作します。

計測はメッシュ表面上のみ

クリックはメッシュ(サーフェスモデル)がある場所にのみヒットします。 ボリュームのみ表示している場合は計測できません。

計測モード

モード 説明
None 計測なし(デフォルト)。左クリックはカメラ回転に使われる
Distance 2 点間の直線距離を計測する
3D Line 複数点を結んだ折れ線(ポリライン)の合計長を計測する

Distance(2点間距離)の使い方

  1. Distance ラジオボタンを選択する
  2. メッシュ表面の 1 点目をクリックする → 白い点が表示される
  3. 2 点目をクリックする → 黄色のラインと距離ラベルが表示される
  4. 3 点目をクリックすると自動的にリセットして新しい計測が始まる
Distance: 34.25 mm
  Pt1: (12.3, -45.6, 78.9) mm
  Pt2: (38.1, -20.4, 95.3) mm

3D Line(折れ線計測)の使い方

  1. 3D Line ラジオボタンを選択する
  2. メッシュ表面を順番にクリックして点を追加する
  3. 各セグメントの長さと合計長が計測エリアに表示される
Seg.1: 12.34 mm
Seg.2: 8.90 mm
Seg.3: 15.67 mm
Total: 36.91 mm (4 pts)

計測の操作ボタン

ボタン 動作
Clear 計測点をすべて消去する
Undo 最後に打った点を 1 つ取り消す
Redo 取り消した操作をやり直す

計測点は 3D 空間に表示

計測中はキャンバス上に白いドット(点)と黄色のライン、 各セグメント中点の距離ラベルが重畳表示されます。 計測モードを None に切り替えるかウィンドウを閉じると消えます。


メッシュ(サーフェスモデル)

外部メッシュファイルの読み込み

メニュー → FileOpen Mesh (OBJ/STL)... から STL / OBJ 形式のメッシュファイルを読み込めます。 読み込まれたメッシュは Scene Objects テーブルMesh タイプとして追加されます。

ROI からメッシュを生成(マーチングキューブ)

3D 空間に描画した ROI グループからサーフェスメッシュを生成します。

  1. Scene Objects テーブルで生成したい ROI 行を選択する
  2. Generate Mesh from Roi ボタンをクリックする
  3. マーチングキューブスがバックグラウンドで実行される(ボタンが「Generating...」に変わる)
  4. 完了するとメッシュが 3D 表示され、テーブルに Mesh タイプとして追加される

ROI の色が引き継がれます

生成されたメッシュは、元の ROI グループの表示色が自動的に適用されます。

メッシュ表示

メッシュのエクスポート(STL)

  1. Scene Objects テーブルでエクスポートしたい Mesh 行を選択する
  2. Export Mesh to STL... ボタンをクリックする
  3. 保存先とファイル名を指定して保存する(バイナリ STL 形式)

ROI 3D

3D 空間上に ROI(関心領域)を配置します。

球形 ROI (Sphere ROI)

  1. ツールバーの Sphere ROI ツールを選択する
  2. キャンバス上でクリックして中心位置を指定する
  3. ドラッグして半径を設定する

球形 ROI

自由形状 ROI (FreeForm ROI 3D)

ポリゴンを使って 3D 空間上で任意形状の ROI を定義します。


ガントリチルト補正

CT スキャン時のガントリ(テーブル)チルトによる画像の傾きを補正します。

ガントリチルト補正

メニュー → ToolsGantry Tilt Correction から起動します。


座標軸ギズモ

画面の隅に X / Y / Z 軸の方向を示すギズモが表示されます。

座標軸ギズモ

X 軸(左右)
Y 軸(前後)
Z 軸(上下)