Почему графика состоит из треугольников? Разбор

В этом материале разбираемся, как устроен 3D рендер, почему игры состоят из треугольников, что такое полигон.
aka_opex 16 сентября 2022 в 08:25

Все объекты в реальном мире состоят из частиц — молекул и атомов. А в виртуальном 3D-мире из треугольников, то есть полигонов.

Так статуя, созданная на движке Unreal Engine 5, состоит из 33 миллионов полигонов. Выглядит невероятно реалистично и на глаз отличить от реального мира невозможно.

Но. Почему треугольники? Хотя на самом деле не только они. Сегодня разберемся, как устроен 3D-рендер, каким образом единички и нолики превращаются в потрясающие миры, объемная объекты отображаются на плоском экране? Тут куча всего интеренсного.

Хранение

И начнем с чайника. Это один из эталонных объектов в компьютерной графике. Благодаря своей форме он хорошо подходит для тестов разных поверхностей. Чайник — это что-то вроде программы Hello World! среди программистов. Давайте сперва давайте поймем, как трехмерный мир видит компьютер?

В 3D-мире всё состоит из точек. Отличие этих точек от тех, что в 2D, наличие дополнительной координаты Z. То есть чтобы создать точку в 3D мире нужно 3 числа, X, Y и Z, длина, высота и ширина.

К примеру посмотрите на эту картинку. Таблица хранит координаты каждой точки, из которой состоит куб. Каждая строка в таблице хранит одну точку. А вот так выглядит файл с 3D точками. То есть текстовый файл с кучей координат.

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

Посмотрите на детализацию этой статуи, а теперь на то, из чего она состоит… да, треугольники. Эти детали называются полигонами и из них строится всё, что вы видите в 3D играх. Треугольник — это минимальное количество точек, используемых для создания полигона, который может загрузить видеокарта.

Взглянем на ту же картинку, но с новой таблицей. Правая таблица хранит информацию о треугольниках. Вся суть в том, что чтобы нарисовать треугольник, нам всего лишь нужно указать ссылки на 3 точки. Интересно, что треугольники не хранят сами точки, а именно ссылки на местонахождение этих точек в памяти. Это очень важно знать, дабы избежать создания лишних копий. А вот так выглядит хранение треугольников в текстовом файле. Один треугольник = 3 ссылки на точки.

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

Самый простой способ — перемножить сетку 4 на 4 на координаты объекта. Вдаваться в подробности не будем, просто скажем, что перемножив сетку на координаты объекта, можно изменить его положение, вращение, размер и даже систему координат.

Только треугольники?

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

Но, когда 3D-модель (или ассет) создан, все квады превращаются в треугольники, так как точек меньше и математика с ними гораздо проще.

Смотрите, плоские полигоны гораздо проще рендерить, по этому они более предпочтительны. Если мы возьмем квадратный плоский полигон и изменим расположение одной точки, он перестанет быть плоским и выйдет из так называемой полигонной сетки. Из-за этой фичи, нужно проводить дополнительные вычисления, чтобы проверить плоский ли полигон или нет. Треугольники от этого не страдают, так как какую точку не перемести, треугольный полигон останется плоским. Профит.

Нюансы хранения

Также важно упомянуть Level of Detail, или же LOD. Удалённые объекты занимают очень малую часть экрана и их детали рассмотреть невозможно. Философия проста, зачем дальним объектам много полигонов, если их не видно. В кратце LOD сокращает количество полигонов на всём, что находится далеко от камеры и плохо видно.

Рендеринг

Есть одна важная вещь, о которой немногие догадываются: 3д игры на самом деле не трехмерные. Мы смотрим на них через дисплей, который плоский. И имеет только две координаты.

С хранением 3D-штук разобрались, теперь о том как превратить их в 2D изображение, которое мы видим на экране. И делать это желательно 60 раз в секунду.

Перспективная проекция

Ну начнём с того, что всё, что мы видим на экране на самом деле 2D. Определённый цвет пикселей на экране меняющийся в правильной последовательности дает иллюзию трехмерного пространства.

То есть, нам надо трехмерный мир спроецировать в плоскую картинку. Как это делается? Чтобы добиться этой иллюзии, используется техника перспективной проекции.

Эта техника создает плоское изображение 3D объектов, которое отображается на экране так, что результат кажется трехмерным.

Подход простой: удаленные объекты кажутся меньше, близкие больше. Работает это так, нам нужно спроецировать каждую точку объекта на экран в перспективе. Далее начинается школьная геометрия. мы видим такой треугольник, а точнее 2. Есть высота дерева в 3д мире — это У. Нам нужно найти значение Ys, что является высотой объекта на экране. Из уроков математики мы знаем, что боковые стороны подобных треугольников пропорциональны друг другу. Из этого мы делаем вывод, что боковая сторона первого треугольника, деленная на расстояние до экрана равна боковой стороне второго треугольника, деленного на расстояние до объекта. После перестановки, мы видим, что финальное значение равно расстоянию до экрана, деленного на расстояние до объекта, умноженного на его высоту. С иксом тоже самое, просто нужно заменить y на x.

Но на этом не всё. Чтобы объект попал на экран нам нужно совершить ещё 2 действия. Для начала перевести полученные координаты в орфографическое пространство, чтобы соответствовать плоскости наших мониторов. После чего их нужно централизовать, переведя в Vulkan’s Canonical view volume. Это уже то, что мы видим на экране.

Обрезка

Если просто забросать 3D-сцену треугольниками, может возникнуть проблема, игра начнет лагать. Благо есть читерские методы, которые позволяют легко ускорить рендер.

Например можно рендерить только те объекты, которые находятся в направлении, куда смотрит игрок. Этот способ называется frustum culling.

Слово Фрустум — это конусовидная призма, форма, которую принимает область видимости камеры.

У этого способа есть старший брат, называется occlusion culling, который работает хитрее: удаляет те объекты, которые перекрывают другие!  То есть те объекты, на которые вы не смотрите — реально не существуют.

Например, можно посмотреть как это реализовано на движке анриал: в специальном режиме видно, что все объект вне зоны видимости просто пропали из сцены.

Ещё одна важная техника в 3D-рендеринге называется clipping или обрезка по нашему. Как следует из названия, всё, что не попало в угол обзора, срезается для лучшей производительности. Clipping отличается тем, что она может обрезать часть объектов.

Кстати, разница clipping’a и ранее упомянутого culling’a в том, что первый метод удаляет полигоны, которые не попали в кадр, в то время как culling удаляет сами объекты на программном уровне.

После этого, значения нужно перемножить снова, но уже на сетку окна приложения. Это нужно например если вы играете в оконном режиме.

Растеризция

Теперь финальная часть, вся графика отображается на вашем экране с помощью процесса рестаризации, который берет все эти сложные линии и формы, полученные после перспективной проекции и приближает их к тому, как должны быть окрашены пиксели. В самом простом варианте растеризации ставится точка в центре пикселя и если объект задет, пиксель окрашивается, если нет, берём пиксель с другого объекта. Но такой способ создает очень рваную и пиксельную картинку. Здесь помогают разные алгоритмы сглаживания, которые делают переходы гораздо мягче и картинка получается более четкой.

GPU

За рендер 3D-объектов отвечает GPU. Да, тот самый графический чип, который позволяет нам играть в игры 4K 120 FPS. В этом ему помогает огромное количество ядер, гораздо больше, чем у центрального процессора. К примеру у RTX 3090 10496 ядер, в то время как у ryzen 7 5800x всего 8.

И тут вы можете спросить, а что нам мешает использовать графический процессор вместо центрального, ведь в нём так много ядер, а значит он мощнее. На самом деле нет. Ядра GPU отличаются от CPU тем, что они гораздо глупее и предназначены для простых, монотонных работ с графикой. CPU же в свою очередь имеет очень умные ядра, которые способны работать над очень сложными задачами быстро и независимо друг от друга. Другими словами если ядра в графическом процессоре это муравьи, которые строят домик, их много, но работа не требует много интеллекта. То ядра в центральном процессоре это учёные, создающие вакцину от коронавируса.

Скорость современных видюх просто поражает. Например вот видео где парень рендерит 312 миллиардов полигонов на RTX 3090 в реальном времени.

Итог

На этом всё. Есть ещё много того, что мы не разобрали, к примеру трассировка лучей или Ray Tracing, Shading и Anti-Aliasing. В общем, это еще несколько интересных тем, которые можно разобрать в будущем…

Epic Games представили Reailty Scan App: приложение для быстрого 3D-сканирования

Epic Games представил очень простое приложение для 3D-сканирования, которое делает свою работу просто при съемке на iPhone.
aka_opex 7 апреля 2022 в 12:56

Epic Games, компания, которая делает игровой движок Unreal Engine и известна своей видеоигрой Fortnite, объявила о выпуске бета-версии нового мобильного приложения, которое превращает фотографии в трехмерные или 3D-сканы.

Как сообщает Endgadget, приложение RealityScan было выпущено компанией Capturing Reality, которую Epic приобрела в прошлом году. Бесплатное приложение для 3D-сканирования, разработанное в сотрудничестве с Quixel, быстро и легко превращает фотографии со смартфона в высокоточные 3D-модели.

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

*»По мере того, как все больше творцов и любителей осваивают 3D-фотограмметрию, мы хотим сделать нашу технологию еще более доступной, чтобы каждый мог привнести сверхдетальные цифровые модели реальных объектов в свои виртуальные проекты», — говорят представители Capturing Reality. «Сегодняшний день знаменует собой новый захватывающий шаг в этом направлении».

Чтобы войти в приложение, пользователи должны иметь учетную запись Epic Games, после чего им будет предложено сделать не менее 20 фотографий определенного объекта (или просто удерживать кнопку захвата, обходя объект). Затем приложение обработает эти изображения и превратит их в полностью отрисованный 3D-объект с помощью серверов RealityCapture.

Пользователи могут экспортировать снимки в Sketchfab — еще одну платформу для создания 3D-активов, приобретенную Epic в 2021 году, — где они могут продать эти модели другим творческим людям или использовать их сами в своих проектах виртуальной реальности (VR), 3D или дополненной реальности (AR). Компания считает, что это приложение будет невероятно полезным для разработчиков игр, которым необходимо разместить в виртуальной среде конкретные и специфически выглядящие объекты, и сэкономит разработчикам и дизайнерам бесчисленные часы программирования.

Epic объявила об ограниченной бета-программе для пользователей iOS наряду с открытием доступа к обновленному движку Unreal Engine 5. На момент публикации бета-программа для RealityScan уже была заполнена, что должно быть показателем того, насколько велик интерес к подобному инструменту. Хотя доступ к бета-версии уже закрыт, хорошая новость заключается в том, что компания ожидает, что приложение будет полностью развернуто для пользователей iPhone позже этой весной, а версия для Android появится к концу года.

Обзор защитной маски Apple (ну или как у них)

Высокотехнологические компания пытаются всячески помочь в борьбе с коронавирусом! Сегодня мы расскажем о новом гаджете Apple — щитке для врачей.
vedensky 18 апреля 2020 в 09:05

Может быть вы слышали о новом гаджете Apple. И я сейчас не про iPhone SE. А про маску, шлем или визор, которые анонсировал Тим Кук в твиттере!

Apple выпустила защитный щит для врачей, занятых в борьбе с пандемией. И сегодня мы такой распакуем. А заодно разберемся, зачем это надо, как еще технологии помогают бороться с COVID-19, и причем здесь маски для ныряния.

Зачем вообще кому-то нужны глупые щитки из пластиковых бутылок? Дело в том, что медицинские системы стран испытывают очень высокую нагрузку. И ни одна страна не была к ней готова. А индивидуальные средства защиты врачей: маски, респираторы, костюмы — просто не существуют в таком количестве, которое нужно.

Dyson CoVent — аппарат ИВЛ, созданный Джеймсом Дайсоном по заказу NHS

Поэтому разные компании и организации помогают как могут, думают о том, как поддержать врачей. Tesla и Dyson работают над ИВЛ — это такой аппарат для искусственного дыхания. А самая дорогая компания в мире Apple выпускает защитные щитки из пластика. Ну каждый помогает, как может.

https://twitter.com/tim_cook/status/1246916489589837824?s=21

Эта штука называется щиток — как я уже говорил.
Чем это отличается от привычной маски (или респиратора), которые сейчас невозможно найти в аптеках? Щиток защищает от брызг.

Маска — от аэрозолей, то есть того, что в воздухе, и его можно вдохнуть. В идеале, конечно же, надо использовать оба средства.

Но крутость щитков еще и в том, что они многоразовые, если регулярно дезинфицировать.

То есть, то что Apple собирается делать таких миллион в неделю, это конечно для компании копейки, но по факту поможет сотням тысяч врачей. Круто.

Забавно кстати, что Apple привлекла к производству даже дизайнеров упаковки. Интересно — как выглядит упаковка их маски. Наверное, очень дорого.

Кроме крупных компаний в движ вписались и сообщества 3D-печати. Причем, по всему миру.  В России тоже очень большое комьюнити, которое направляет мощности 3D-печати на такие штуки. И именно они прислали мне этот щиток.

Но на самом деле. Для изготовления щитков 3D-печать не нужна. Их вырезают на лазерных аппаратах.

Чем же заняты 3D-мейкеры?

Это интересная история. Когда в Италии резко скакнуло количество заболевших, местные врачи придумали использовать для защиты маски для снорклинга, плавания без глубокого погружения. Причем особенно им приглянулись маски компании Decathlon. Потому что она обеспечивает плотное прилегание, защищает сразу глаза, нос, рот — те места, через которые проникает вирус. Это намного надежней, чем щиток или тканевая маска.

Но есть проблема. Маску надо подключить к медицинскому фильтру. А них свой интерфейс подключения. а у масок декатлон — другой. Тут на помощь и пришли 3D-мейкеры, которые придумали переходники и стали их печатать для врачей.

По сути, эта штука помогает создать своими руками что-то типа медицинского противогаза. Технология такая: надеваешь маску, подключаешь её к фильтру и дышишь очищеным воздухом. Профит.
Кстати Decathlon есть в России и предоставил уже 6 тысяч своих масок бесплатно!

Более того, такие маски используют не только врачи. Их еще иногда ставят пациентам для качественного подключения к тем же аппаратам ИВЛ.

Понятно, что все самопальные несертифицированне средства защиты не идеальны. Есть информация, что такие маски при долгой носке могут вызывать гипоксию (пониженное содержание кислорода). Но это все равно намного лучше, чем ничего.

Другие продукты. Еще делают более нишевые штуки: заколки
и защитные боксы. Они полезны при интубировании.

Прикольно, что себестоимость такого производства около 100 рублей за переходник и 30 рублей за щиток.

Сейчас в проекте участвует более 1000 мейкеров. Причем — это сетевая структура. Врачи оставляют заказы на сайте. И они распределяются по региональным точкам, которые их производят и доставляют в больницы. Бесплатно. В Москве они уже выпустили более 2700 щитков, например.

У этого движения есть свой сайт: makersvscovid.ru.

А если вы врач, то прямо на этом сайте можете сделать заказ. И получить нужное бесплатно.

Это естественно не реклама. Наоборот, я даже сейчас задоначу им на производство.

В основном, мейкеры собирают деньги на закупку материала для 3D-принтеров, который называется филамент.

Благодарим за помощь в создании этого материала 3D-мэйкера и блогера Андрея Гурьева.

Новый Edge показал себя

Браузеру от Microsoft посвятили короткое видео
News Droid 1 февраля 2017 в 07:06

На официальном YouTube-канале вышел ролик, демонстрирующий немногочисленные нововведения. Edge получит возможность сохранения и восстановления наборов вкладок, покупки и чтения электронных книг, а также предварительного просмотра открытых вкладок в виде миниатюр. Ещё добавятся новые расширения, встроенная поддержка 3D-контента и мобильной платежной системы Wallet.

Кроме того, Microsoft обещала оптимизировать JavaScript-движок Chakra, на котором работает браузер.

Анонс обновленного Edge ожидается вместе с Windows 10 Creators Update в апреле.

Zenfone AR дополняет реальности | CES 2017

ASUS анонсировала смартфон, дружелюбный к проектам Daydream и Tango
News Droid 5 января 2017 в 04:42

Главным достоинством смартфона стала поддержка и совмещение дополненной и виртуальной реальностей, которыми занимаются Project Tango и Daydream. Но несмотря на то, что новинка предназначена для профессионалов из области архитектуры, дизайна и шоппинга, она получила достойную начинку и сносный облик.

  • ZenFone AR от ASUS
  • ZenFone AR от ASUS
  • ZenFone AR от ASUS
  • ZenFone AR от ASUS

Фотовозможности сопровождает светодиодная вспышка, оптическая стабилизация, автофокусы TriTech и PixelMaster 3.0. Может записывать 4К-видео.

ZenFone AR от ASUS
Общие характеристики
Габариты
158,67 x 77,7 x 4,6-8,95 мм
Вес
170 грамм

Warning: Undefined property: stdClass::$body in /var/www/www/data/www/droider.ru/wp-content/plugins/droider-widgets/widget-templates/tech.tpl on line 26
Экран
5,7 дюймов, Super AMOLED
2560 х 1440
Камера
Основная
23 Мп от Sony
Для отслеживания движения

Warning: Undefined property: stdClass::$value in /var/www/www/data/www/droider.ru/wp-content/plugins/droider-widgets/widget-templates/tech.tpl on line 74
Для сканирования глубины

Warning: Undefined property: stdClass::$value in /var/www/www/data/www/droider.ru/wp-content/plugins/droider-widgets/widget-templates/tech.tpl on line 74
Фронтальная
8 Мп
Батарея
3300 мАч

Warning: Undefined property: stdClass::$value in /var/www/www/data/www/droider.ru/wp-content/plugins/droider-widgets/widget-templates/tech.tpl on line 93
Софт
Android Nougat
ZenUI 3.0
Железо
Процессор
Snapdragon 821 от Qualcomm
Графический чип
Adreno 530
Прочее
Оперативная память
6 ГБ или 8 ГБ
Встроенная память
От 32 ГБ до 256 ГБ
Карта памяти
microSD до 2 ТБ
2 SIM-карты

Warning: Undefined property: stdClass::$value in /var/www/www/data/www/droider.ru/wp-content/plugins/droider-widgets/widget-templates/tech.tpl on line 150
Дактилоскоп

Warning: Undefined property: stdClass::$value in /var/www/www/data/www/droider.ru/wp-content/plugins/droider-widgets/widget-templates/tech.tpl on line 150

Среди прочих параметров Zenfone AR упомянем систему жидкостного охлаждения, 3,5-мм разъем, порт USB Type-C, NFC, Bluetooth 4.2 и быструю зарядку Quick Charge 3.0.

  • ZenFone AR от ASUS
  • ZenFone AR от ASUS
  • ZenFone AR от ASUS

Релиз ожидается с апреля по июнь. О ценнике остается лишь догадываться.

Источник: ASUS

Лучшие 3D-принтеры по версии сообщества 3D Hubs

Илья Рябов 17 ноября 2016 в 05:43

Шумиха вокруг 3D-печати утихает, однако сами принтеры никуда не исчезли. Регулярно выходят новые модели, чьи владельцы делятся отзывами и чертежами.

Крупное интернет-сообщество 3D Hubs опубликовало список самых удачных 3D-принтеров в 5 категориях. Список создан на основе отзывов 9 тысяч владельцев более 500 моделей принтеров.
(далее…)

Phab 2 и Phab 2 Plus от Lenovo можно купить в России

Илья Рябов 30 октября 2016 в 06:55

На выставке Tech World 2016 в июне компания Lenovo анонсировала линейку Phab 2 с поддержкой технологии Project Tango.

Стало известно о том, что 2 из 3 моделей, если точнее Phab 2 и Phab 2 Plus, начнут продаваться на российском рынке.
(далее…)

Будущий VR-шлем Oculus обойдётся без ПК и смартфона

Илья Рябов 7 октября 2016 в 04:41

На конференции Oculus Connect разработчики рассказали об успехах Oculus VR и амбициозных планах.

Например, желании выпустить новый шлем виртуальной реальности, для работы которого не потребуются ни компьютер, ни смартфон.
(далее…)

Фаблет Galaxy Note 7 от Samsung показался на 3D-рендере

Егор Беляков 23 июня 2016 в 05:18

Летом 2016 года Samsung анонсирует флагманский «планшетофон» Galaxy Note 7. Именно “семь”, а не “шесть”. Похоже, производитель решил переступить через цифру, чтобы уравнять номенклатуру с линейкой Galaxy S.

В сети уже появился качественный 3D-рендер устройства, основанный на предыдущих «утечках».
(далее…)

[Tech World 2016] Смартфоны PHAB 2, 2 Plus и 2 Pro — коммерческий дебют Lenovo в Project Tango

Илья Рябов 10 июня 2016 в 02:24

На конференции Tech World было представлено 3 смартфона из Project Tango вместо одного, как ожидалось инсайдерами и прессой.

Phab 2

Однако PHAB 2, PHAB 2 Plus и PHAB 2 Pro отличаются лишь некоторыми характеристиками и ценой — дизайн, камеры глубины и движений получили все новинки.
(далее…)