Я недавно создал шейдеры для чистых и чистых металлов для своей игры, и я очень доволен результатами.
Чистый металл:
наиболее важной особенностью в моих экспериментах было отражение окружения с помощью кубических карт. Я реализовал их в средах рендеринга в текстуру в реальном времени, но статические изображения часто дают хорошие результаты, и их легче размыть. Второй наиболее важной особенностью был эффект Френеля, который делает силуэты объектов лучше. Это, например, дает округлый взгляд на шары. Зеркальное освещение необязательно, так как карта куба может предоставить основные моменты напрямую. Рендеринг HDR также важен для того, чтобы отражения на кубической карте выглядели хорошо.
Матовый металл:
для матовых металлов вы легко получаете хорошие результаты, используя текстуру кисти, что-то вроде этоговместе с анизотропным освещением. Для анизотропного освещения вы можете найти учебные материалы в Интернете, но я реализовал свой собственный, используя blinn-phong в качестве основы, но из полу-вектора я исключил 80% направления касательной. Это означает, что вам нужны тангенс или битангенс в дополнение к нормали в ваших моделях. Отражение окружающей среды сложно для матового металла. Вы можете выполнять выборку из нескольких направлений на карте куба на основе касательных / битангентных направлений, но для получения хороших результатов может потребоваться множество выборок. Это, однако, не обязательно, так как текстура и анизотропное освещение с несколькими источниками света уже выглядят довольно красиво. Конечный результат в моем случае выглядит так: