Many thanks to them! For comparison, see here: http://kishalmi.servus.at/3D/bumpcode/ Based on algorithm in: Mikkelsen M. S.: Simulation of Wrinkled Surfaces Revisited. http://jbit.net/~sparky/sfgrad_bump/mm_sfgrad_bump.pdf This fixes bugs: #24591: Artefacts/strange normal mapping when anti-aliasing is on #24735: Error at the Normal function. #24962: Normals are not calculated correctly if anti-aliasing is off #25103: Weird artefacts in Normal This will break render compatibility a bit, but fixing this bugs would have also done that, so in this case it should be acceptable. Patch committed with these modifications: * Bump method Old/3-Tap/5-Tap option in UI, 3-Tap is default * Only compute normal perturbation vectors when needed * Fix some middle of block variable definitions for MSVC