Шейдеры ThreeJS в Unity - PullRequest
       80

Шейдеры ThreeJS в Unity

0 голосов
/ 13 декабря 2018

Я работаю над проектом в Unity, который использует AR для размещения продуктов в реальном мире.Эти продукты (геометрия и материалы) загружаются с http-сервера и преобразуются в игровой объект в Unity.

Эти продукты изначально созданы в ThreeJS (не спрашивайте почему) и имеют другую геометрию / структуру материала по сравнению с геометрией / материалами Unity.

Я получилгеометрия работает, но у меня проблемы с материалами.Шейдер ' Standard ' в Unity не содержит всех параметров для создания материала (таких как: альфа-карта, карта окружающей среды, преломление, карта смещения, карта шероховатости, двухсторонняя сторона и т. Д.).

Я просматривал различные плагины / библиотеки в Asset Store / GitHub (например, LUX , Bit2Good , Shader Sandwich или Простой физический шейдер ), но, похоже, что все они также пропускают некоторые параметры.Я подумываю написать шейдер Phong / Physical самостоятельно, но это определенно заняло бы у меня несколько недель.

У вас, ребята, есть какие-нибудь предложения?

1 Ответ

0 голосов
/ 13 декабря 2018

В стандартном шейдере нет альфа-карты - альфа-канал основной текстуры используется в качестве альфа-карты.

Также нет карты окружения - используйте Cube Maps в качестве зондов отражения.

В стандартном шейдере преломления нет - это стандартный шейдер.

Карта смещения в стандартном шейдере называется картой высот.

Карта шероховатости - не стандартная (ближайший, который вы можете получить, инвертированэто и использовать в качестве карты окклюзии).

Двусторонняя - нет.

Вам нужно будет написать собственный шейдер для всего этого.

Совет:

Шаг 1. Найдите шейдер для каждого из этих свойств

Шаг 2. Объедините их, вставив соответствующий код для копирования

...