Комментарии 8
Спасибо за п.4 Попробую.
По п.6 смущает что нормаль умножается попиксельно. Нельзя ли в пиксельный шейдер передавать уже помноженную нормаль?
До растерезации не известно, на какую сторону треугольника смотрим.
Не поясните почему? Вроде бы направление взгляда камеры известно, нормали вершин тоже. Если скалярное произведение этих векторов положительно, нормаль треугольника надо перевернуть. Ну или из матрицы можно эту информацию вытащить.
Чаще всего нормаль, записанная в вертексы треугольника, не будет перпендикулярна плоскости треугольника (из-за софт эджей, настроенных художником). SV_IsFrontFace же не зависит от нормали и оперирует порядком объявления вершин и работает для всего треугольника.
Геометрические шейдеры вроде как признаны устаревшими и не рекомендуются к использованию даже самими производителями видеокарт.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Маленькие трюки DirectX и HLSL