На форуме OMPF обсуждалась некоторая дискуссия. Ключ заключается в том, чтобы хранить информацию о нормальной поверхности с каждым вокселем - даже для высокого разрешения вокселя. Вы делаете затенение с сохраненным нормальным, а не с нормальным квадратиком, который является вокселем. Даже тогда, это не хорошо для поверхностей, которые почти выровнены по оси, где у вас есть много плоской поверхности со случайным шагом. Шаги практически невозможно спрятать на гладких поверхностях. Кроме того, для чрезвычайно неровных поверхностей у вас будут проблемы, когда одного «нормального вокселя» недостаточно для просмотра с разных сторон.