render_volume_projection — 3D render op

Data kinds: voxelimage2d

Call: import fullseye as fs; fs.ledger.render_volume_projection(vol, azimuth=0.0, elevation=0.0, mode='xray', device='cpu') (to call the implementation directly, import match3d; match3d.render_volume_projection(vol, azimuth=0.0, elevation=0.0, mode='xray', device='cpu'); from the registry, ops3d.get("render_volume_projection"))

GPU: this op has a GPU path (device="cuda")

Usage

Project a voxel volume to 2-D from an arbitrary viewpoint (mode = xray = attenuation integral / mip = maximum). For DRR (X-ray) and world-model observations.

> The detailed description below is the original text — the summary and the headings are translated.

view 方向へ volume を grid_sample で回して軸投影。voxel_to_mips の任意視点版。

回転は `affine_grid(座標順 x=W, y=H, z=D)で volume 中心まわり: azimuth` は H 軸まわり

(W と D を混ぜる)、`elevation は W 軸まわり(H と D を混ぜる)、いずれも度、Rx @ Ry` の順。

回転後の volume を 軸 0(D)方向に潰すので、視線は回転後の D 軸。`mode="mip"` は最大値、

それ以外はすべて総和(`"xray"` は Beer-Lambert の指数ではなく 単純な積算。減衰像にするなら

`exp(−Σ) を呼び手で)。返り値 (H, W)` float32 numpy。

volume 外は 0 で埋まるので、回転で隅が欠けると総和が下がる(立方体に近い volume で、物体を

中心に置く)。`azimuth=elevation=0 の mip は voxel_to_mips()[0]` と同じ向き。

用途: DRR の合成、`ncc_locate 用の 2-D テンプレ生成、match_mip_2d` の任意視点化。

Background guides (the physics and conventions behind this op)

blender_interop — Blender との併用 — 形を作って fullseye で測る(軸・単位・正解データの罠)

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

Runnable examples (verified samples that actually call this op)

ct_hand_radiographpy -3.11 examples_3d/ct_hand_radiograph.py

Ops the type connects to (they accept image2d as input)

fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade

Same category (render)

project_points · render_point_depth · render_shaded · ambient_occlusion · cast_shadow · phong_shade · matcap_shade · supersample_mesh


*Provenance: match3d.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.