Шейдеры ThreeJS в Unity
Я работаю над проектом в Unity, который использует AR для размещения продуктов в реальном мире. Эти продукты (геометрия и материалы) загружаются с http-сервера и преобразуются в игровой объект в Unity.
Эти продукты изначально созданы в ThreeJS (не спрашивайте почему) и имеют другую геометрию / структуру материала по сравнению с геометрией / материалами Unity.
У меня работает геометрия, но у меня проблемы с материалами. " Стандартный" шейдер в Unity не содержит всех параметров для создания материала (таких как: альфа-карта, карта окружающей среды, преломление, карта смещения, карта шероховатости, двойная сторона и т. Д.).
Я просматривал различные плагины / библиотеки в Asset Store/GitHub (например, LUX, Bit2Good, Shader Sandwich или Simple Physical Shader), но кажется, что все они также пропускают некоторые параметры. Я подумываю написать шейдер Phong/Physical самостоятельно, но это определенно заняло бы у меня несколько недель.
Ребята, у вас есть предложения?
1 ответ
В стандартном шейдере нет альфа-карты - альфа-канал основной текстуры используется в качестве альфа-карты.
Также нет карты окружения - используйте Cube Maps в качестве зондов отражения.
В стандартном шейдере преломления нет - это стандартный шейдер.
Карта смещения в стандартном шейдере называется картой высот.
Карта шероховатости - не стандартная (самое близкое, что вы можете получить, это инвертировать ее и использовать в качестве карты окклюзии).
Двухсторонний - Нет.
Вам нужно будет написать свой собственный шейдер для всего этого.
Предложение это:
Шаг 1. Найдите шейдер для каждого из этих свойств.
Шаг 2. объединить их, скопировав соответствующий код