HLSL освещение на основе пикселей текстуры вместо экрана
В HLSL, как я могу рассчитать освещение на основе пикселей текстуры, а не пикселей, составляющих объект?
Другими словами, если у меня отображается текстура 64x64px на экране 1024x768px, я хочу рассчитать освещение, поскольку оно влияет на пространство 64x64px, что приводит к появлению неровных пикселей вместо гладкой линии.
Я исследовал десятки ответов, но я не уверен, как я могу всегда определять, является ли фрагмент частью пикселя, который должен быть полностью освещен или нет. Может быть, это неправильный подход?
Текущая реализация использует диффузную текстуру и карту нормалей. Это приводит к тому, что в выходных данных появляются артефакты (диагональные линии):
Примечание. Причина, по которой он выглядит почти корректно, заключается в карте нормалей, которая заставляет некоторые смежные пиксели иметь нормали, расположенные под углом, достаточным для освещения одних пикселей, а не других.