Графические движки, graphics engines, рендереры, визуализаторы — подпрограммное обеспечение (middleware), программные движки, основной задачей которых является визуализация (рендеринг, отрисовывание) двухмерной или трёхмерной компьютерной графики. Они могут существовать в виде отдельных продуктов или в составе игрового движка. Могут использоваться для визуализации отдельных изображений или компьютерного видео. Графические движки, использующееся в программах по работе с компьютерной графикой (таких, как 3dStudio-Max, Maya, Cinema-4D, Zbrush, Blender), обычно называются “рендерерами”, “отрисовщиками” или “визуализаторами”. Само название “графический движок” используется, как правило, в компьютерных играх.
Основное и важнейшее отличие “игровых” графических движков от программных рендереров состоит в том, что первые должны обязательно работать в режиме реального времени, тогда как вторые могут тратить по несколько десятков часов на вывод одного изображения. Вторым существенным отличием является то, что начиная приблизительно с 1996 года, графические движки производят рендеринг с помощью графических процессоров (англ. GPU), которые установлены на отдельных платах — видеокартах. Программные рендереры используют только центральные процессоры (англ. CPU).
Скриншот из бенчмарка “Fresnel Reflections and Refractions” (рус. Дифракция Френеля) из пакета “OGRE Demos pack”. В данном тесте демонстрируется работа движка с водой, отражениями и преломлениями в водной среде. Опции рендеринга изображения: оригинальное разрешение 1600x1200 пикселей, OpenGL-рендерер, 16-кратное полноэкранное сглаживание (FSAA), 32-битный цвет. В кадре присутствует 23653 треугольника.
На этапе становления компьютерных игр графический движок являлся главнейшей частью игрового движка. Собственно, примерно 90-95 % игрового движка составлял именно графический движок (остальную часть занимали такие незначительные подсистемы, как “система ввода” и некоторые другие). Однако с середины 90-х годов вследствие стремительного развития компьютерных игр разработчики игр начали добавлять в свои продукты и другие подсистемы, такие как звуковой движок, работа с сетью. В современных компьютерных играх графический движок — один из многих компонентов игрового движка (хотя и самый главный), куда входят физический движок, звуковой движок, система анимации (скелетная и лицевая анимация), система по работе с сетью, игровой искусственный интеллект.
Как правило, графические движки не распространяются отдельно от игровых. Единственного графического движка без дополнительных компонентов и инструментария недостаточно для создания игры, поэтому разработчики движков продают лишь игровые движки с полным набором инструментов и компонентов. Однако это правило не относится к свободному программному обеспечению. Энтузиасты создают свободные графические движки и свободно их распространяют. Впоследствии разработчики игр могут объединить свободный графический движок с физическим, звуковым и другими компонентами и создать на основе их полноценный игровой движок.
К самым известным свободным графическим движкам относятся:
OGRE
— объектно-ориентированный графический движок, написанный на C++. Движок является многофункциональным, так как с его помощью можно создавать игры разных жанров и другие приложения, не связанные с играми. Поддерживается рендеринг как через Direct3D9, так и через OpenGL. Движок имеет довольно большое сообщество поддержки, обширную документацию и обучающие примеры на многих языках, включая русский.Irrlicht
— графический движок, использующий возможности OpenGL и DirectX, написанный на C++.GLScene
— OpenGL-ориентированный графический движок для Delphi.PhyreEngine — также довольно известным и распространённый проприетарный, но бесплатный для использования графический движок, разработанный Sony Computer Entertainment для использования преимущественно в игровой приставке Sony PlayStation 3.
Большинство популярных программ по работе с трёхмерной графикой имеет минимум один встроенный рендерер. Однако часто имеется возможность подключить внешний рендерер в качестве плагина. К самым известным рендерерам, которые могут использоваться как плагины в множестве программ, относятся:
RenderMan
mental ray
V-Ray
Brazil R/S
Maxwell Render
Indigo Renderer
YafRay
POV-Ray
Начиная с 2009 года, в связи с развитием графических процессоров, а именно в связи с увеличением их многофункциональности и гибкости, начали разрабатываться и выходить графические движки реального времени, которые используют мощности GPU для расчётов. Как правило, такие движки реализуют освещение через метод трассировки лучей, а геометрия иногда представлена вокселями, а не полигонами. Данные движки предназначаются для работы как в компьютерных играх, так и в других интерактивных и неинтерактивных приложениях, включая научные расчёты.
OptiX
— графический движок реального времени, разработанный nVidia, использующий CUDA, работающий исключительно на графических процессорах производства nVidia и предназначенный для разнообразных вычислений, исследований и моделирований. “OptiX” является гибридным рендерером — основным является использование трассировки лучей, но присутствует и растеризация.Octane Render
— графический движок реального времени, разработанный компанией Refractive Software LTD, использующий CUDA и работающий на всех графических процессорах nVidia, начиная с 8Х00. Использует трассировку лучей.id Tech 6
— графический движок, входящий в состав игрового движка id Tech 6, будет использовать трассировку лучей и воксели.