Eye Dome Lighting

目次

Eye Dome Lighting#

Eye‐Dome Lighting (EDL) は,科学的可視化画像における奥行き知覚を改善するために設計された非フォトリアリスティック,画像ベースシェーディングテクニックです.詳しくは this blog post をご覧ください.

import pyvista as pv
from pyvista import examples

点群#

単純な点群のプロットでは,奥行きを感じることが難しい場合があります.例えば,このライダー点群:

point_cloud = examples.download_lidar()
point_cloud
HeaderData Arrays
PolyDataInformation
N Cells3392091
N Points3392091
N Strips0
X Bounds4.809e+05, 4.811e+05
Y Bounds4.400e+06, 4.400e+06
Z Bounds1.754e+03, 1.787e+03
N Arrays1
NameFieldTypeN CompMinMax
ElevationPointsfloat6411.754e+031.787e+03


そして,この点群をそのままプロットしてみましょう.

# Plot a typical point cloud with no EDL
p = pv.Plotter()
p.add_mesh(point_cloud, color="tan", point_size=5)
p.show()
c edl

pyvista.Renderer.enable_eye_dome_lighting() を使ってレンダラでアイドーム照明を有効にすることで,深度マッピングを改善することができます.

以下に,その点群を自分でアイドームライティングでプロットしてみてください.

p = pv.Plotter()
p.add_mesh(point_cloud, color="tan", point_size=5)
p.enable_eye_dome_lighting()  # Turn on eye dome lighting here
p.show()
c edl

アイドーム照明モードは,スカラー配列のプロットも扱うことができます.上記のブロックを, add_mesh のコールで color の代わりに scalars 配列を指定して試してみてください.

p = pv.Plotter()
p.add_mesh(point_cloud, scalars="Elevation", point_size=5)
p.enable_eye_dome_lighting()  # Turn on eye dome lighting here
p.show()
c edl
Open In Colab

Total running time of the script: (0 minutes 34.138 seconds)

Sphinx-Galleryによるギャラリー