Следующая версия
|
Предыдущая версия
|
3d-движок [2021/03/15 12:24] 127.0.0.1 внешнее изменение |
3d-движок [2025/03/28 17:48] (текущий) admin |
Компонент приложения, отвечающий за рендеринг и вывод на экран трехмерных моделей. Как правило, подразумевается вывод в реальном времени, синхронизированный с моделируемыми процессами и пользовательским вводом. 3D-движок - ключевой компонент трехмерных игр, приложений виртуальной реальности, пакетов 3D-моделирования, CAD-программ, различных симуляторов и пр. Синонимы: рендер, визуализатор, графический движок. | Компонент приложения, отвечающий за рендеринг и вывод на экран трехмерных моделей. Как правило, подразумевается вывод в реальном времени, синхронизированный с моделируемыми процессами и пользовательским вводом. 3D-движок - ключевой компонент трехмерных игр, приложений виртуальной реальности, пакетов 3D-моделирования, CAD-программ, различных симуляторов и пр. Синонимы: рендер, визуализатор, графический движок. |
| |
Чаще всего игровые 3D-движки используют аппаратное ускорение графики и основаны на системном графическом API, таком как [[DirectX]] или [[OpenGL]]. До появления видеоускорителей в играх использовались полностью программные визуализаторы - например, на основе [[рейкастинг|рейкастинга]] или программной растеризации. | Чаще всего игровые 3D-движки используют аппаратное ускорение графики и основаны на системном графическом API, таком как [[DirectX]], [[OpenGL]], [[Vulkan]] или [[Metal]]. До появления видеоускорителей в играх использовались полностью программные визуализаторы - например, на основе [[рейкастинг|рейкастинга]] или программной растеризации. |
| |
Понятие "3D-движок" часто употребляют в значении "игровой движок", но это некорректно. Игровой движок - это комплекс технологий, включающий визуализатор, звуковую подсистему, систему ввода, обмен данными по сети, функции управления сценами и игровыми объектами. 3D-движок - лишь часть игрового движка, хотя и наиболее важная. К тому же 3D-движки используются не только в играх. | Понятие "3D-движок" часто употребляют в значении "игровой движок", но это некорректно. Игровой движок - это комплекс технологий, включающий визуализатор, звуковую подсистему, систему ввода, обмен данными по сети, функции управления игровыми ресурсами, сценами и игровыми объектами. 3D-движок - лишь часть игрового движка, хотя и наиболее важная. К тому же 3D-движки используются не только в играх. |
| |
Также некорректно называть 3D-движками графические API - они предоставляют базовые прямые функции рендеринга, но не включают средств управления ресурсами и не содержат эвристических оптимизаций, необходимых для отрисовки сложных сцен. При помощи графического API нельзя вывести на экран модель без написания [[бойлерплейт_код|бойлерплейт-кода]] и [[модели данных]], а это во многих случаях нетривиальная задача. Функциями 3D-движка как раз и являются сокрытие сложности графического API (абстракция) и предоставление готовой модели данных, а также реализация тех или иных [[графические_техники|графических техник]] и распространенных оптимизаций. 3D-движок служит высокоуровневым слоем абстракции между графическим API и логикой приложения. | Также некорректно называть 3D-движками графические API - они предоставляют базовые низкоуровневые функции рендеринга, но не включают средств управления ресурсами и не содержат эвристических оптимизаций, необходимых для отрисовки сложных сцен. При помощи графического API нельзя вывести на экран модель без написания [[бойлерплейт_код|бойлерплейт-кода]] и [[модели данных]], а это во многих случаях нетривиальная задача. Функциями 3D-движка как раз и являются скрытие сложности графического API (абстракция) и предоставление готовой модели данных, а также реализация тех или иных [[графические_техники|графических техник]] и распространенных оптимизаций. 3D-движок служит высокоуровневым слоем абстракции между графическим API и логикой приложения. |
| |
===== Примеры ===== | ===== Примеры ===== |