- Программирование трехмерных (3D) игр для Microsoft Windows. Советы профессионала по трехмерной графике и растеризации
- Компьютер для 3D-моделирования
- Что такое 3D модели?
- Как создаются 3D модели?
- Что такое рендеринг?
- Самые популярные программы для 3D моделирования ТОП 10
- Blender
- SketchUp
- SolidWorks
- AutoCAD
- 3DS Max
- Inventor
- Tinkercad
- ZBrush
- Cinema 4D
- Какой компьютер нужен для 3D моделирования?
- Компьютер для 3D моделирования: требования программ
- Компьютер для 3D моделирования – характеристики
- Какой нужен процессор для рендеринга?
- Какая нужна видеокарта для рендеринга?
- Компьютер для 3D моделирования – оперативная память
- SSD или HDD для 3D моделирования?
- Как выбрать компьютер для 3D моделирования?
- Компьютеры для моделирования
- Профессиональные графические станции
Программирование трехмерных (3D) игр для Microsoft Windows. Советы профессионала по трехмерной графике и растеризации
Tricks of the 3D Game Programming Gurus-Advanced 3D Graphics and Rasterization
Andre LaMothe
|
Данная книга представляет собой продолжение книги Андре Ламота «Программирование игр для Windows. Советы профессионала» и посвящена созданию трехмерных игр. В книге освещены различные аспекты разработки трехмерных игр, однако основное внимание уделяется вопросам программирования трехмерных игр — в частности, вопросам представления трехмерных объектов, их визуализации с учетом свойств материала объектов, освещения, перспективы, а также таким специфическим вопросам трехмерной визуализации, как создание различных визуальных спецэффектов и т.п. В книге также рассматриваются многие сопутствующие вопросы — создание и применение звуковых эффектов и музыкального сопровождения, использование различных форматов файлов и соответствующего инструментария. Книга написана выдающимся специалистом в области программирования игр с многолетним стажем, и полезна как начинающим, так и профессиональным разработчикам игр для Windows. Однако следует учесть, что она рассчитана в первую очередь на опытного специалиста, владеющего языком программирования C или C++, а также имеющего определенную математической подготовку. Хотя данная книга может рассматриваться как отдельное издание, желательно приступать к ней после ознакомления с упомянутой ранее книгой.
формат 70×100/16; 2006, 1 кв.; Вильямс.
Понравилась книга? Порекомендуйте её друзьям и коллегам:
Предисловие 17
Об авторе 18
О техническом редакторе 18
Благодарности 19
Введение 21
Часть I. Введение в программирование трехмерных игр 27
Глава 1. Основы программирования трехмерных игр 29
Глава 2. Краткий курс Windows и DirectX 79
Глава 3. Виртуальный компьютер для программирования трехмерных игр 119
Часть II. Трехмерная математика и преобразования 219
Глава 4. Запутанный мир математики 221
Глава 5. Создание математической библиотеки 309
Глава 6. Введение в трехмерную графику 409
Глава 7. Визуализация трехмерных каркасных объектов 515
Часть III. Основы трехмерной визуализации 627
Глава 8. Основы моделирования освещения и поверхностей тел 629
Глава 9. Интерполяционные методы затенения и аффинное отображение текстур 749
Глава 10. Отсечение в трехмерном пространстве 879
Глава 11. Организация буфера глубины и видимость 957
Часть IV. Секреты трехмерной визуализации 1013
Глава 12. Методы сложного текстурирования 1015
Глава 13. Алгоритмы разбиения пространства и определения видимости 1143
Глава 14. Освещение и тени 1263
Часть V. Анимация, физическое моделирование и оптимизация 1309
Глава 15. Анимация, движение и обнаружение столкновений 1311
Глава 16. Технологии оптимизации 1359
Предметный указатель 1406
Компьютер для 3D-моделирования
Что такое 3D модели?
3D модель – это виртуальный макет объекта. Трехмерные модели бывают разные:
- Для компьютерных игр.
- Дизайн интерьера.
- Архитектурный макет.
- Для 3D принтера.
- Макет детали или рабочего механизма.
- Для фильмов и мультфильмов.
Каждая модель состоит из физического контура и натянутой поверх него текстуры с эффектами. Физический контур – чистая геометрия за 8-9 класс, у всех объектов есть вершины, грани и полигоны. Полигон – плоская фигура с несколькими углами, из таких фигур состоят модели. Из полигонов можно составить форму любого объекта. Текстуры и эффекты – это цвет и светотень, а также к ним относятся эффекты огня, молнии и т.д.
Как создаются 3D модели?
Дизайнер получает эскизы, чертежи, картины маслом, готовую модельку из папье-маше и так далее. Это называется референс. На основе референса делается физическая модель, от необходимой детализации зависит сложность. От простых геометрических фигур до сложных механизмов с сотней деталей и их физическими свойствами. Типов моделирования много:
- Полигональное – все объекты состоят из полигонов. Чем их больше, тем качественнее переданы контуры. Это самый популярный вид, он используется в компьютерных играх и не только.
- Сплайновое – модели состоят из линий (сплайнов). При приближении не теряется качество, в полигональном же будут видны острые углы полигонов.
- NURBS – подвид сплайнового моделирования. Объект строится из кривых (B-сплайны), которые соединятся полигонами.
- Скульптинг – это подвид полигонального моделирования. Из определенной фигуры срезается все лишнее. Похоже на создание скульптуры из глины.
- Промышленное – при создании объектов прописываются физические свойства. Такие модели составляют из форм, а не полигонов.
- Параметрическое – тип моделирования на основе математических данных. Идеально для создания нужной детали механизма.
- Поверхностное – для создания модели соединятся несколько поверхностей, лишнее обрезается, изгибы задаются после склейки.
- Метасферы – тип моделирования аналогичный полигонам. Только вместо плоских фигур используются сферы, которые сливаются при контакте.
После того, как физическая модель сделана, текстуры наложены и прописаны эффекты, сцену нужно отрендерить.
Что такое рендеринг?
Рендеринг объемной модели – это визуализация. В программе есть сцена с прописанными значениями цветов, теней, типа поверхности, размера и форм. Чтобы ее увидеть на экране, программа должна совместить все данные с учетом угла обзора и сделать «фотку». Процесс этих вычислений и называется рендерингом или визуализацией.
Этот процесс очень требовательный к системе. Обычно он выполняется процессором, но есть программы, которые позволяют перебросить вычисления на видеокарту. Из-за майнинговой истерии графические карты очень подорожали, так что такой способ рендеринга хоть и быстрее, но дороже. Он оправдан только в том случае, когда нужно провести очень большие вычисления, но об этом потом.
Самые популярные программы для 3D моделирования ТОП 10
Blender
Это самая популярная программа для работы с 3D. Она обладает огромным набором инструментов. Полностью бесплатна и имеет поддержку русского языка. Единственным недостатком является сложный интерфейс. Ее применение универсально, но большую популярность она обрела у владельцев 3D-принтеров.
SketchUp
Тоже мощный инструмент с большим набором функций, тоже есть русификация. Разрабатывал это чудо великий и могучий Google. Есть бесплатная версия с ограниченными возможностями, что позволяет попробовать свои силы без вложений. Пользуются программой начинающие дизайнеры интерьеров и мебели.
SolidWorks
Универсальная программа, которая получила признание как инструмент для создания технических моделей. Она широко используется в промышленности, на ней можно рисовать механизмы, детали, схемы электрической проводки.
AutoCAD
Это, безусловно, самая популярная программа для промышленного 3D моделирования на территории СНГ. Разрабатывает ее студия Autodesk, она же в ответе за 3DS Max и Maya. AutoСAD – мощный инструмент для промышленного 3D моделирования. Минимум ограничений и максимум возможностей для профессионалов. Из плюсов – огромное русскоязычное сообщество, где можно получить ответы на любые вопросы.
Maya – продукт Autodesk, который предназначен для создания и дополнения фильмов и мультиков. Опять же, огромное русскоязычное сообщество с массой уроков.
3DS Max
Универсальный инструмент от Autodesk. Не заточен под определенные действия, но имеет огромный набор плагинов с которым можно делать все. Чаще всего используется для создания интерьеров, мебели и игровых моделей. Большей базы знаний по 3D моделированию, чем у 3DS Max, не существует на просторах рунета.
Inventor
Еще один продукт Autodesk предназначенный для проектирования механизмов в области машиностроения. Это более узкоспециализированное ПО, чем тот же AutoCAD. А самое главное – программа может моделировать действие объектов. То есть на AutoCAD можно только нарисовать двигатель, а в Inventor еще и запустить его.
Tinkercad
Топовый онлайн-инструмент для создания трехмерных моделей. Из достоинств – ничего не надо скачивать, доступ с любого устройства через Интернет. Чаще всего использую для создания макетов под 3D печать.
ZBrush
Главная особенность – скульптинг. Такой метод получения модели лучше всего подходит для создания моделек людей или существ с похожим биологическим устройством.
Cinema 4D
Разработчики утверждают, что это самая простая программа для 3D моделирования. Набор ее функций намекает, что она заточена под создание фото-реалистичных снимков сцен. Она подходит также для создания трехмерной анимации. Главное достоинство – быстрый перенос сцены в After Effect.
Какой компьютер нужен для 3D моделирования?
В играх разработчики только догоняют современное оборудование, пытаясь сильнее его нагрузить. Моделирование трехмерных объектов бьет по самому больному – по мощности. Даже самым продвинутым игрушкам не снились те мощности, которую может съесть скромный 3DS Max.
К примеру, фильм 2018 года «Мэг: монстр глубин». Для того, чтобы отрендерить акулу и не умереть при этом от старости, Стивен Спилберг собрал рабочую станцию из 2500 процессоров Intel Xeon Scalable, а это больше 100 000 ядер. По крайней мере, так сказано в новости. Хотя, это подсчет довольно приблизительный. Топовый процессор этой линейки имеет 28 физических ядер, 2500*28 = 70 000 ядер. Возможно, они имели в виду потоки, но тогда цифра была бы в два раза больше – 140 000.
Компьютер для 3D моделирования: требования программ
Подбирать железяки будем на основе системных требований разных программ. Приведены рекомендуемые и оптимальные характеристики. Минималки в расчет не берем, зарендерить кубик за неделю можно и на калькуляторе. Указаны требования для последних релизных версий программ на момент написания статьи.
Оперативная память | Процессор | Видеокарта | Место на диске | |
---|---|---|---|---|
Blender | 8 – 16 GB | четырехъядерный, от 2,5 GHz | с поддержкой OpenGL 3.2 и 2 – 4 GB памяти | 500 MB |
SketchUp | 8 GB | от 2 GHz | с поддержкой OpenGL 3.0 и 1 GB памяти | 700 MB |
SolidWorks | 8 – 16 GB | 2-4 ядра, от 2,5 GHz. | NVIDIA Quadro, GeForce, Tesla 2 – 4 GB памяти, архитектура серии от Kepler и выше, для двух видеокарт архитектура от Maxwell | 5 GB |
AutoCAD | от 4 GB | четырехъядерный, от 2,5 – 3 GHz | с поддержкой DX 11 и 1 – 4 GB памяти | 16 GB |
Maya | 8 – 16 GB | двухъядерный, от 2 GHz | с поддержкой DX 11 и 2 GB памяти, рекомендуется NVIDIA Quadro, GeForce, Tesla | 4 GB |
3DS Max | 4 – 8 GB | двухъядерный от 2 GHz | с поддержкой DX 11 и 1-4 GB памяти | 6 GB |
Inventor | 8 – 20 GB | Intel Xeon E3, i7 с частотой 2 – 3 GHz | с поддержкой DX 11, рекомендуется NVIDIA Quadro, GeForce, Tesla. | 40 GB |
Tinkercad | Онлайн сервис, все мощности ложатся на сервер. Нужен только хороший Интернет для доступа. | |||
ZBrush | 8 – 16 GB | 2 – 6 ядер, от 2,5 GHz | с поддержкой OpenGL 3,3 и 1 GB памяти | 100 GB |
Cinema 4D | 4 – 8 GB | двухъядерный, от 2,5 GHz | с поддержкой OpenGL 4,1 и 1 GB памяти (4 GB для рендеринга) | 10 GB |
Компьютер для 3D моделирования – характеристики
На первый взгляд все достаточно демократично. Но требуемая мощность растет в зависимости от тяжести сцены. Создавать серые объемные модели можно на таких сборках, как указаны в системных требованиях. Но, как только вы наложите текстуры, шейдеры и эффекты, нужно будет сделать рендер. Даже на мощном процессоре скромный кухонный интерьер будет визуализироваться от получаса.
Какой нужен процессор для рендеринга?
В таблице ниже указана техническая производительность процессоров в разных программах при рендеринге.
3ds Max Compute | 3ds Max Rendering | Rendering Blender (меньше-лучше) | Solidworks Rendering | |
---|---|---|---|---|
i5-8600K | 5.84 | 8.57 | 75.87 | 5.12 |
i7-8700 | 6.49 | 9.6 | 49.21 | 5.25 |
i7-8700K | 6.62 | 9.78 | 47.64 | 5.26 |
i7-7800X | 5.94 | 8.82 | 53.73 | 4.92 |
i7-7820X | 6.11 | 10.14 | 38.64 | 5.07 |
i9-7900X | 6.02 | 12.4 | 31.35 | 5.53 |
Сухие цифры мало о чем скажут. Чтобы прочувствовать скорость работы компьютера, нужно на нем поработать. Модели бывают разные, скорость обработки дизайна комнаты может быть в несколько раз ниже, чем одиночной модели персонажа для игры. Главное, чтобы ваша работа не задерживалась непомерно долгим рендерингом.
Рабочая станция для 3D моделирования должна быть построена на мощном процессоре. Минимальный рекомендуемый камушек – это 4 ядра по 3 GHz и выше. При таком раскладе вы можете получить готовую картинку из сцены за полчаса – час. Эти показатели очень приблизительны и напрямую зависят от детализации и выбранных эффектов.
Какая нужна видеокарта для рендеринга?
На GPU визуализация происходит намного быстрее. Ведь они заточены под то, чтобы обрабатывать быстро такие модели. К примеру, видеокарта за 400$ быстрее обработает сцену, чем серверный процессор с 22 ядрами за 3500$.
- Память ограничена.
- Цены на карточки сильно выросли из-за майнинг-истерии.
- Высокая скорость обработки.
- Возможность установки нескольких видеокарт без больших трат и танцев с бубном.
Оперативку можно поставить в практически неограниченных количествах, а вот память графической карты не увеличишь. Максимальный размер памяти для нее – 16 GB на данный момент. Работает такая память быстрее, чем оперативная. Но стоимость карточек с памятью больше 8 GB астрономическая. Рендеринг на них невыгоден, лучше купить мощный CPU.
Несколько видеокарт можно использовать вместе даже без SLI режима. Парочка таких карт прекрасно уместится даже в маленький корпус. Достоинства метода еще в том, что можно пользоваться компьютером в штатном режиме, пока видеоадаптеры будут потеть над поставленной задачей.
Количество одновременно установленных видеокарт явно больше, чем CPU. Ведь второй процессор вы не поставите никак, а 6-7 видеокарт через переходники можно подключить к хорошей материнке.
Если вы не собираетесь рендерить на видеокарте, то купить ее все же стоит. Вам необходимы будут несколько экранов. Это сильно ускорит работу и позволит не переключаться между окнами. Для работы в AutoCAD рекомендуют мониторы с 4К разрешением. Таким в идеале должен быть хотя бы основной.
Оптимальным вариантом по стоимости и производительности является NVIDIA GeForce GTX 1070. Стоит она не дорого, имеет на борту 8 GB памяти и прекрасно показывает себя в рендеринге. По скорости карта обходит Intel Xeon с 22 ядрами, а он стоит в 8 раз дороже. Однако она предназначена для игр, ее будет ограничивать драйвер, созданный для совершенно других задач.
Аналогичная по железу профессиональная карточка NVIDIA Quadro P4000 лучше справляется с рендерингом, но она дороже. В играх это чудо техники покажет себя гораздо хуже даже видеокарт среднего сегмента, но в проектировании ей нет равных
NVIDIA GTX 1070 – компромисс для тех, кто хочет «попробовать на вкус» рендер на GPU с минимальными вложениями, и чтобы потом ее можно было использовать для непрофессиональных нужд. А NVIDIA Quadro P4000 – для тех, кто уверен, что хочет рендерить на GPU и желает вложиться в стоящую быструю железяку.
Компьютер для 3D моделирования – оперативная память
Оперативки в таком деле много не бывает. Если вы поставите рендерить сцену, в которой текстуры весят больше, чем объем оперативной памяти, то программа будет использовать файл подкачки. Это место на жестком диске, которое используется системой, когда памяти не хватает. Из-за этого скорость рендеринга сильно понизится, а еще через пару месяцев неустанной работы может сгореть жесткий диск. Для него такие нагрузки чрезмерны.
В зависимости от того, что вы собираетесь моделировать, нужно выбирать объем памяти. Минимальный рекомендуемый объем – 16 GB. А еще лучше – 32. Обязательно DDR4 с максимальными частотами. Это очень повысит скорость работы, если вы собираетесь рендерить на CPU.
Устанавливать память лучше в разные слоты. Например, 4х4 GB будут работать быстрее, чем 2х8 GB. Материнка желательно должна быть с четырьмя слотами под память, чтобы была возможность провести апгрейд.
SSD или HDD для 3D моделирования?
Скорость работы – самый важный параметр. SSD диск обязателен для работы с трехмерным моделированием. Он ускорит в несколько раз работу системы в общем и конкретной программы.
Помните, что SSD диски быстрее ломаются. Циклов «запись-стирание» у них меньше, чем у стандартных HDD. Оперативной памяти должно хватать. Чтобы проверить это, запустите рендеринг емкой сцены в любой программе и следите через «Диспетчер задач» на загрузку оперативки, если она превышает 90% – это звоночек, пора купить еще планочку, а то и две.
Так как модельки и текстуры очень емкие, то для их хранения желательно иметь отдельный HDD. Это стандартная связка для современного ПК: маленький шустрый SSD и емкий надежный HDD.
Если пойти дальше, то в идеале должна быть связка SSD M.2 + SSD + HDD. SSD форм-фактора M.2 подключаются к материнке через PCI-E порт, что обеспечивает скорость передачи данных в 5 раз выше, чем у обычных SSD с SATA 3 интерфейсом. На нем будет программа и система. На втором SSD – рабочее пространство с быстрым доступом. На HDD – сохраненные проекты, бекапы и прочая нужная информация для длительного хранения.
Как выбрать компьютер для 3D моделирования?
Процессор – не ниже Intel Core i7-4770K с 3,5 GHz. Возможность разгона не обязательная, но приятная фишка. Главное – не переусердствовать и следить за температурой.
Память DDR4 с как можно большей частотой. Не меньше 8 GB, но лучше 16 и выше.
Мощная видеокарта как таковая не обязательна, если вы не собираетесь на ней рендерить. От мощности будет зависеть максимальный размер сцены, с которой можно работать. Ведь отображение рабочей зоны – это тоже рендеринг, но в меньшем качестве, а им всегда занимается видеокарта. Потребуется графический адаптер, к которому можно подключить 2 – 3 монитора. Это сильно ускорит работу и сделает ее удобнее.
SSD диск лучше поставить. Без него работать можно, но с ним гораздо быстрее и удобнее. Более того, мощность компьютера не всегда сможет раскрыться на 100% из-за медленного HDD. Лучший вариант – форм-фактор m.2 от Samsung серия PRO, это самые быстрые SSD на рынке, ничего лучше пока нет.
В игровом компьютере важно охладить компоненты, чтобы они не сгорели. Но в большинстве игр нагрузка нестабильная, она не держится на 100% все время, комплектующие успевают отдыхать.
Рендеринг, по сути, тот же майнинг. Он нагружает процессор или видеокарту на 100% по несколько часов. Эта нагрузка не снижается до полного завершения задачи. Иногда это может быть целая ночь, особенно если вы занимаетесь созданием видеоролика.
При таких нагрузках всем компонентам нужно очень хорошее охлаждение. Лучше всего подойдет водяное, оно более стабильное, чем воздушное и не такое шумное. Графическая станция для 3D моделирования производит много тепла, устанавливать ее желательно в проветриваемой комнате или в помещении с кондиционером.
Компьютеры для моделирования
Профессиональные графические станции
Компьютер для 3D моделирования купить стоит каждому, кто серьезно занимается графикой. Это прибыльное занятие, которое окупит вложение в хорошее железо. Быстрый компьютер существенно ускорит работу, вам не придется ждать по несколько часов, чтобы получить готовый эскиз для заказчика.
HYPERPC LUMEN PRO 2 оснащен видеокартой ASUS GeForce RTX 3080 STRIX. Процессор Intel® Core™ i7-11700K(F). Серия этих рабочих станций не только мощная, но и тихая. Все компьютеры для трехмерной графики от HYPERPC обладают сверхтихими системами охлаждения. В корпусе на всех местах стыка есть антивибрационные подкладки. Все вентиляторы от фирмы Be quiet!, их шум на максимальных оборотах не превышает 20 дБ, что по громкости можно сравнить с шелестом осенней листвы под ногами.
Рабочая станция HYPERPC LUMEN PRO 4 – вершина мощности в области 3D моделирования. Бесшумная работа при огромной мощности. Видеокарта NVIDIA Quadro RTX 5000 обладает большим на данный момент запасом памяти, вы сможете рендерить на ней самые тяжелые сцены за короткий промежуток времени. В ней есть 4 порта под мониторы.
Процессор Intel® Core™ i7-11700K(F) можно разогнать до неведомых пределов, полностью разблокированный множитель. Запаса памяти 32GB HyperX Fury DDR4-3200 хватит для рендеринга самых требовательных сцен ближайшие. Комбинация из самого быстрого в мире SSD и емкого HDD ускоряет работу и не ограничивает по емкости.