tonemap_reinhard — 3D render op

• Datenarten: image2d → image2d

• Aufruf: import fullseye as fs; fs.ledger.tonemap_reinhard(hdr, exposure: 'float' = 1.0, white: 'float | None' = None) -> 'np.ndarray' (die Implementierung direkt: import render_tonemap; render_tonemap.tonemap_reinhard(hdr, exposure: 'float' = 1.0, white: 'float | None' = None) -> 'np.ndarray'; aus dem Register: ops3d.get("tonemap_reinhard"))

Verwendung

Komprimiert HDR mit Reinhard-Tonemapping in [0, 1]-LDR. → float64, in der Form der Eingabe.

Für das mit der Belichtung skalierte x = hdr * exposure:

• white is None … die Grundform x / (1 + x). Bildet [0, ∞) streng monoton steigend auf [0, 1) ab und clippt nie (bewahrt die Tonwertreihenfolge über den gesamten Bereich streng).

• white angegeben … die erweiterte Form x (1 + x/white²) / (1 + x). Bildet white exakt auf 1.0 ab und widmet dem Bereich unterhalb von white viel Umfang (Eingaben über white überschreiten 1 und werden daher auf [0, 1] geclippt).

Farbe (H, W, C) wird pro Kanal unabhängig abgebildet. Anders als naives Clipping min(x, 1) bleibt die Tonwertskala auch im Glanzlichtbereich mit Werten > 1 monoton.

Args:

hdr: HDR-Bild. (H, W) Graustufen or (H, W, C) Farbe, Strahldichte >= 0.

exposure: vor der Abbildung angewendeter Belichtungsfaktor (positiv).

white: optionaler white-point (positiv). None ergibt das Grund-Reinhard (empfohlen; überall monoton).

Returns:

float64-LDR-Bild in [0, 1] (gleiche Form wie die Eingabe).

Raises:

ValueError: leere/nicht endliche/negative Strahldichte, nicht positives exposure/white (fail-closed).

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• blender_interop — Zusammen mit Blender — Form bauen, mit fullseye messen (Fallstricke: Achsen, Einheiten, Referenzdaten)

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• render_beauty — py -3.11 examples_3d/render_beauty.py

• render_tonemap — py -3.11 examples_3d/render_tonemap.py

Typkompatible Folge-Operatoren (nehmen image2d als Eingabe)

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

Gleiche Kategorie (render)

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


*Provenance: render_tonemap.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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