Графический движок (англ. graphics engine; иногда «рендерер» или «визуализатор») — промежуточное программное обеспечение (англ. middleware), программный движок, основной задачей которого является визуализация (рендеринг) двухмерной или трёхмерной компьютерной графики. Может существовать как отдельный продукт или в составе игрового движка. Может использоваться для визуализации отдельных изображений или компьютерного видео. Графические движки, использующееся в программах по работе с компьютерной графикой (таких, как 3ds Max, Maya, Cinema 4D, Zbrush, Blender), обычно называются «рендерерами», «отрисовщиками» или «визуализаторами». Само название «графический движок» используется, как правило, в компьютерных играх.
Основное и важнейшее отличие «игровых» графических движков от неигровых состоит в том, что первые должны обязательно работать в режиме реального времени, тогда как вторые могут тратить по несколько десятков часов на вывод одного изображения. Вторым существенным отличием является то, что начиная приблизительно с 1995-1997 года, графические движки производят визуализацию с помощью графических процессоров, которые установлены на отдельных платах — видеокартах. Программные графические движки используют только центральные процессоры.
На этапе становления компьютерных игр графический движок являлся главнейшей частью игрового движка. Собственно, примерно 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
Графические движки с GPU-ускорением и трассировкой лучей Начиная с 2009 года, в связи с развитием графических процессоров, а именно в связи с увеличением их многофункциональности и гибкости, начали разрабатываться и выходить графические движки реального времени, которые используют мощности GPU для расчётов. Как правило, такие движки реализуют освещение через метод трассировки лучей, а геометрия иногда представлена вокселями, а не полигонами. Данные движки предназначаются для работы как в компьютерных играх, так и в других интерактивных и не интерактивных приложениях, включая научные расчёты.
OptiX — графический движок реального времени, разработанный nVidia, использующий CUDA, работающий исключительно на графических процессорах производства nVidia и предназначенный для разнообразных вычислений, исследований и моделирований. «OptiX» является гибридным движком — основным является использование трассировки лучей, но присутствует и растеризация. Octane Render — графический движок реального времени, разработанный компанией Refractive Software LTD, использующий CUDA и работающий на всех графических процессорах nVidia, начиная с 8Х00. Использует трассировку лучей. id Tech 6 — графический движок, входящий в состав игрового движка id Tech 6, будет использовать трассировку лучей и воксели.
Основное и важнейшее отличие «игровых» графических движков от неигровых состоит в том, что первые должны обязательно работать в режиме реального времени, тогда как вторые могут тратить по несколько десятков часов на вывод одного изображения. Вторым существенным отличием является то, что начиная приблизительно с 1995-1997 года, графические движки производят визуализацию с помощью графических процессоров, которые установлены на отдельных платах — видеокартах. Программные графические движки используют только центральные процессоры.
Как правило, графические движки не распространяются отдельно от игровых. Единственного графического движка без дополнительных компонентов и инструментария недостаточно для создания игры, поэтому разработчики движков продают лишь игровые движки с полным набором инструментов и компонентов. Однако это правило не относится к свободному программному обеспечению. Энтузиасты создают свободные графические движки и свободно их распространяют. Впоследствии разработчики игр могут объединить свободный графический движок с физическим, звуковым и другими компонентами и создать на основе их полноценный игровой движок.
К самым известным свободным графическим движкам относятся:
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, будет использовать трассировку лучей и воксели.