Files
godot-website/collections/_release_4_5/entry-systems-rendering-bent-normal-maps-support.md
Adam Scott 5387797774 Godot 4.5 release page
Huge thanks to JohnVeness, AThousandShips, and Meorge for their
great help rewording my broken English.
2025-09-15 16:03:40 -04:00

3.6 KiB
Raw Permalink Blame History

type, section, subsection, rank, importance, anchor, title, blockquote, text, contributors, read_more, media_position, carousel
type section subsection rank importance anchor title blockquote text contributors read_more media_position carousel
entry systems rendering 1 2 bent-normal-maps-support Bent normal maps support Introducing the normalbender In rendering jargon, a normal is a 3D vector which is perpendicular to a surface. A normal map is a texture where each pixel of it represents a normal—using the red, green, and blue intensity as the vector axis values. Normal maps are often used on models to add surface details without having to make the meshes super detailed. If the normal map describes a bump, the lighting system will make it look like there is one, even if the underlying polygon is flat. Bent normal maps are similar, as they are textures representing 3D vectors each pointing at something. The normals are considered "bent" because instead of being perpendicular to the surface, they actually point towards the direction of least occlusion—i.e. the direction with the least amount of stuff blocking the incoming light. For example, if a theoretical bent normal map was created from the insides of a cave, each vector would point towards the opening. What does it mean? Why should we care about the direction of least occlusion? This information is extremely valuable to the renderer. It is used to further enhance specular occlusion (darken areas that shouldnt be receiving a lot of reflections) and indirect lighting (provide more accurate reflections).
name github
Capry LunaCapra
https://github.com/godotengine/godot/pull/89988 left
comparison elements
true
image_alt image_src image_src_2x image_label image_comparison_alt image_comparison_src image_comparison_src_2x image_comparison_label content_creator
Scene without bent normals of a coffee machine on an industrial drawer with cups and coffee cans around. /storage/releases/4.5/images/godot_bent-normals-1_disabled.webp /storage/releases/4.5/images/godot_bent-normals-1_disabled_2x.webp Without Scene with bent normals of a coffee machine on an industrial drawer with cups and coffee cans around. /storage/releases/4.5/images/godot_bent-normals-1_enabled.webp /storage/releases/4.5/images/godot_bent-normals-1_enabled_2x.webp With [@LunaCapra](https://github.com/LunaCapra)
image_alt image_src image_src_2x image_label image_comparison_alt image_comparison_src image_comparison_src_2x image_comparison_label content_creator
Scene without bent normals of a vintage couch. /storage/releases/4.5/images/godot_bent-normals-2_disabled.webp /storage/releases/4.5/images/godot_bent-normals-2_disabled_2x.webp Without Scene with bent normals of a vintage couch. /storage/releases/4.5/images/godot_bent-normals-2_enabled.webp /storage/releases/4.5/images/godot_bent-normals-2_enabled_2x.webp With [@LunaCapra](https://github.com/LunaCapra)
image_alt image_src image_src_2x image_label image_comparison_alt image_comparison_src image_comparison_src_2x image_comparison_label content_creator
Scene without bent normals of a table with medieval metallic cups on top. /storage/releases/4.5/images/godot_bent-normals-3_disabled.webp /storage/releases/4.5/images/godot_bent-normals-3_disabled_2x.webp Without Scene with bent normals of a table with medieval metallic cups on top. /storage/releases/4.5/images/godot_bent-normals-3_enabled.webp /storage/releases/4.5/images/godot_bent-normals-3_enabled_2x.webp With [@LunaCapra](https://github.com/LunaCapra)