14

Поговорим о наните: часть первая⁠⁠

Мне было примерно лет 14 когда батя Димона (не ядерного, а моего соседа) вычитал в едва зарождающемся интернете о том что 3D Studio от компании discreet в новой версии 3D Studio MAX получает GUI (Graphica User Interface) под винду. Мы не задумываясь рванули в магаз к Робсону (не тому, у нас в холодильнике свой был) и купили пиратский диск с 3д максом, если не ошибаюсь R3 версии.

В общем я плотно так подсел на 3д графику и занимался всякой разной свойственной пиздюкам фигнёй, делал свои машины для ГТА 3, пытался смоделить и запихать мехов из Battletech в Operation flashpoint и прочей безумной деятельностью. Ну и конечно рендерингом чайников, куда без него.

Когда я говорю что начал пилить игру на UE5 по своей книжке и упоминаю что буду использовать нанит, мне говорят что я ебанутый высказывают свои сомнения в целесообразности использования этой технологии. Я задолбался объяснять всем мой выбор по десять раз, поэтому просто запилю статью. Прежде чем мы будем разбираться в том чем Nanite лучше чем LOD (Level of Detail) наверное нужно разобраться что такое вообще в принципе 3д модель и из чего она состоит.

Здравствуйте, что вы знаете о самой прогрессивной технологии нашей о наните? (секта онанитов)

Здравствуйте, что вы знаете о самой прогрессивной технологии нашей о наните? (секта онанитов)

Классическая 3D-модель состоит из точек (vertex), соединённых между собой рёбрами (edge), которые образуют грани (face). Если грань состоит из трёх вершин — это треугольник (triangle), если из четырёх — четырёхугольник (quad), ну и так далее: можно делать полигоны с любым количеством вершин — n-gon. Но лучше всё таки модели из четырёхугольников, там и сглаживание хорошо ложится и меньше шансов на косяки при обработке поверхности рендер движком.

Это 3д модель лоуполи кирпича, на стоки не примут, ахаха, шучу

Это 3д модель лоуполи кирпича, на стоки не примут, ахаха, шучу

Ну и перейдём у немного более детальной модели, вот, например, к этой:

Вкусный был хлебушек, эх...

Вкусный был хлебушек, эх...

Кстати я этот хлебушек потом закину в магаз от Epic который называется <!--noindex--><a href="https://pikabu.ru/story/pogovorim_o_nanite_chast_pervaya_14360313?u=http%3A%2F%2FFAB.com&t=FAB.com&h=aaf77fab55eb4ab2c2d2e1531b59347fc88d8c65" title="http://FAB.com" target="_blank" rel="nofollow noopener">FAB.com</a><!--/noindex-->, вдруг кто-то его в свою игрульку или кинцо или архвиз захочет запихнуть.

Кстати я этот хлебушек потом закину в магаз от Epic который называется FAB.com, вдруг кто-то его в свою игрульку или кинцо или архвиз захочет запихнуть.

Вот так выглядит его 3д модель. Как мы можем заметить здесь немного больше точек и граней, но в принципе от того прямоугольника он ничем не отличается. Просто немного сложнее.

36 200 точек, 72 414 полигонов, это он без текстур с видимой сеткой, чтобы вы вспомнили фильм Газонокосильщик и ночью вам приснился кошмар как в детстве. Ну это для олдов рождённых много лет назад.

36 200 точек, 72 414 полигонов, это он без текстур с видимой сеткой, чтобы вы вспомнили фильм Газонокосильщик и ночью вам приснился кошмар как в детстве. Ну это для олдов рождённых много лет назад.

Поверх этого безобразия накладывается текстура, это такая фотка которая как бы облепляет 3д модель. Она называется альбедо/диффузная текстура. Альбедо - это отражение чистого цвета без бликов.

Это хлебушек с альбедо

Это хлебушек с альбедо

А это сама непосредственно текстура альбедо

А это сама непосредственно текстура альбедо

Помимо альбедо в 3д графике есть множество различных карт (их часто называют текстурами, но этот термин всё же как корректнее относить именно к карте альбедо/диффуз) с кучей разной информации о модели, но остановимся на самых важных.

Одна из важнейших карт - это отвечающие за шершавость/глянцевость карты roughness/specular. Там светлее/темнее показывает где будет глянцевая поверхность, а где матовая.

Вот хлебушек с картой шершавости, она конечно выкручена в хлам, для наглядности

Вот хлебушек с картой шершавости, она конечно выкручена в хлам, для наглядности

Вот этот же хлебушек без этой карты

Вот этот же хлебушек без этой карты

Это гипертрофированная карта шершавости, для наглядности

Это гипертрофированная карта шершавости, для наглядности

Карты микрорельефа, это бамп (bump) и карта нормалей (normal). Бамп - это чёрно-белая карта которая показывает где выпуклость, а где впуклость, на основе этих данных рендер движок понимает где нарисовать тени или блики, а нормал - это цветная RGB-карта, в которой вместо высоты записывается направление нормали поверхности. Особо важно подчеркнуть что это псевдорельеф, на самом деле модель не меняет формы, на ней только рисуется фейковые блики и тени.

Это микрорельеф через карту нормалей, геометрия не поменялась, но появились тени как будто там есть рельеф

Это микрорельеф через карту нормалей, геометрия не поменялась, но появились тени как будто там есть рельеф

Вот как выглядит карта нормалей

Вот как выглядит карта нормалей

Карты реального рельефа - это heightmap чёрно-белая карта, как и бамп, только тут для большего количества данных могут использоваться PNG-16, Tiff или EXR карты. Тут всё похоже на карты микрорельефа, но отличается тем что геометрия реально меняется. Более светлые участки карты выдавливают поверхность вверх, тёмные продавливают вниз, а серые участки карты - ничего никуда не продавливают и ноют что раньше было лучше. Причём тут есть два разных варианта. Первый вариант - это изменение геометрии в соответствии с сеткой, чем плотнее сетка, тем больше будет деталей, что мягко говоря неудобно, так как сетка способная отобразить даже самые мелкие детали - это капец как дорого (жрёт ресурсы). Второй вариант - это тесселяция (увеличение плотности сетки) на лету самим рендером в процессе подготовки к рендерингу. И третий вариант - это какое-то колдунство, всем известный с древних времён VRayPattern, который берёт трёхмерную модель и как бы оборачивает ею другую 3д модель, и при этом не жрёт память, я хз как это правильно объяснить, если вам будет интересно попробую уговорить Андрея (Карба) Козлова, может он расскажет подробнее для отдельной статьи, он первым разработал эту технологию для Vray, потом работая в Otoy запилил тот самый крутой дисплейсмент в рендере Octane, а сейчас разработал свой собственный рендер движок FStorm, который постепенно становится одним из лидеров GPU рендеринга. GPU - это, если что, рендеринг не на процессоре, а на видеокартах.

Вот как хлебушек выглядит когда мы применили карту высот (она немного преувеличена для наглядности)

Вот как хлебушек выглядит когда мы применили карту высот (она немного преувеличена для наглядности)

Вот карта высот, самая главная, не считая альбедо

Вот карта высот, самая главная, не считая альбедо

Вот мы и разобрались с тем что такое 3д, с вас сто тыщ за мой курс, я теперь инфоцыган.
Кстати покупайте мою новую книгу которую я написал под псевдонимом Бред Рэйберри
Думают ли инфотонни про инфоцыган.

Шучу, подписывайтесь, подкакивайтесь, чтобы не пропустить продолжение.

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

5
Автор поста оценил этот комментарий

Так, ебта! Что такое 3D мы и без тебя знали! А наниты?! Ты про них обещал рассказать

раскрыть ветку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества