normal_map_decode — GFX2D light op

• Data kinds: rgb → normalmap

• Call: import fullseye as fs; fs.ledger.normal_map_decode(rgb) (implementation को सीधे call करना हो तो import gfx2d; gfx2d.normal_map_decode(rgb), registry से लेना हो तो opsgfx2d.get("normal_map_decode"))

उपयोग

[0, 1] में tangent-space normal map rgb से unit vector (H, W, 3)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

The usual encoding n = 2c - 1 followed by normalisation. The result is the normalmap sort the rest of the library already speaks, so a decoded map can go straight into the 3-D normals family.

Raises ValueError: a pixel whose decoded vector has zero length (the encoded colour was exactly mid-grey), because normalising it would silently invent a direction.

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• gfx2d_scene — py -3.11 examples/gfx2d_scene.py

वे अगले ops जिनसे type जुड़ता है (normalmap को input के रूप में लेते हैं)

normal_map_shade

इसी category के (light)

radial_light · light_mask · normal_map_shade · shadow_cast_2d


*Provenance: gfx2d.py — GFX2D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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