Недавно разработчики Facebook анонсировали поддержку 3D-постов. То есть теперь любой пользователь может легко загрузить низкополигональную модель в нужном формате (об этом ниже), снабдить её текстом и показывать своим друзьям и знакомым.

Вот как это примерно выглядит (ссылка):

Понятное дело, в большинстве случаев, данная возможность будет использоваться для рекламы, презентаций товаров и других коммерческих целей. Думаю, маркетинговые отделы всех крупных компаний уже взяли на вооружение данную технологию и активно экспериментируют с созданием мощных 3D-сцен. Однако, им явно не понравится список ограничений, которые выкатили разработчики:
Тем не менее, это уже не плохо, особенно если учесть, что для рендеринга материалов можно использовать модель PBR.
Когда мощность графических процессоров выросла до достаточных величин, программисты решили чаще использовать физические законы при расчёте освещения трёхмерных объектов в реальном времени. Одна из моделей такого освещения предполагает симуляцию поверхности с помощью трёх величин: диффузное отражение/преломление, металличность и шероховатость. Чтобы не вдаваться в долгие объяснения, приведу текстуры, показывающие как воспроизводится приведённая выше модель.
Карта диффузного отражения/преломления. Она определяет, как будет рассеиваться свет в толще материала. По сути она определяет цвет модели (узнаёте чайник?):

Карта металличности. В местах, где материал ведёт себя как диэлектрик, значение маталличности минимальное, где металл — максимальное:

Карта шероховатости, тут всё тоже довольно просто: у гладкой поверхности значение минимальное, у шероховатой — максимальное:

Зачем я всё это привел? Суть в том, что это всё что требуется для корректного описания материала! Сами карты готовятся в 3D редакторе и экспортируются в glTF в один клик. Всё остальное сделают алгоритмы, которые будут учитывать их для расчёта физически корректного освещения модели.
Хорошая новость, трёхмерный движок не понадобится. Разработчики Facebook уже развернули последнюю версию движка Three.js на своих мощностях, от вас потребуется только модель. Плохая новость — большинство трёхмерных редакторов не поддерживает экспорт в glTF.
Тем не менее, на официальной странице стандарта glTF можно найти два десятка решений, которые могут быть с переменным успехом использованы для приготовления моделей. Их можно условно разделить на две категории: конвертеры (из OBJ, FBX, COLLADA и проч.) и плагины для пакетов моделирования/движков, пока есть только Blender, 3ds Max и Unity.
В общем ищите сами. Для вышеупомянутого чайника использовались следующие инструменты: моделировали в 3ds Max, текстуры для материала запекались в Substance Painter, финальный экспорт в glTF был произведён плагином Verge3D.

Вот как это примерно выглядит (ссылка):

Понятное дело, в большинстве случаев, данная возможность будет использоваться для рекламы, презентаций товаров и других коммерческих целей. Думаю, маркетинговые отделы всех крупных компаний уже взяли на вооружение данную технологию и активно экспериментируют с созданием мощных 3D-сцен. Однако, им явно не понравится список ограничений, которые выкатили разработчики:
- поддерживается формат glTF 2.0 и только он;
- максимальный размер модели со всеми текстурами 3 МБ;
- размеры всех текстур должны быть степенью двойки, то есть 1024x512 пройдет, а любимые многими размеры 1000x1000, 2000x2000 уже нет;
- источники освещения, камеру, фон и многие другие вещи настроить не получится.
Тем не менее, это уже не плохо, особенно если учесть, что для рендеринга материалов можно использовать модель PBR.
PBR-рендеринг
Когда мощность графических процессоров выросла до достаточных величин, программисты решили чаще использовать физические законы при расчёте освещения трёхмерных объектов в реальном времени. Одна из моделей такого освещения предполагает симуляцию поверхности с помощью трёх величин: диффузное отражение/преломление, металличность и шероховатость. Чтобы не вдаваться в долгие объяснения, приведу текстуры, показывающие как воспроизводится приведённая выше модель.
Карта диффузного отражения/преломления. Она определяет, как будет рассеиваться свет в толще материала. По сути она определяет цвет модели (узнаёте чайник?):

Карта металличности. В местах, где материал ведёт себя как диэлектрик, значение маталличности минимальное, где металл — максимальное:

Карта шероховатости, тут всё тоже довольно просто: у гладкой поверхности значение минимальное, у шероховатой — максимальное:

Зачем я всё это привел? Суть в том, что это всё что требуется для корректного описания материала! Сами карты готовятся в 3D редакторе и экспортируются в glTF в один клик. Всё остальное сделают алгоритмы, которые будут учитывать их для расчёта физически корректного освещения модели.
В чем делать
Хорошая новость, трёхмерный движок не понадобится. Разработчики Facebook уже развернули последнюю версию движка Three.js на своих мощностях, от вас потребуется только модель. Плохая новость — большинство трёхмерных редакторов не поддерживает экспорт в glTF.
Тем не менее, на официальной странице стандарта glTF можно найти два десятка решений, которые могут быть с переменным успехом использованы для приготовления моделей. Их можно условно разделить на две категории: конвертеры (из OBJ, FBX, COLLADA и проч.) и плагины для пакетов моделирования/движков, пока есть только Blender, 3ds Max и Unity.
В общем ищите сами. Для вышеупомянутого чайника использовались следующие инструменты: моделировали в 3ds Max, текстуры для материала запекались в Substance Painter, финальный экспорт в glTF был произведён плагином Verge3D.