Программирование в CG
main-bg-img

JCenterS

ЭКОСИСТЕМА
КОМПЬЮТЕРНОЙ АНИМАЦИИ

#
main-bg-contur
  • Автор: jcenters_admin
  • 9 октября, 2022

Программирование компьютерной графики: задачи, виды, инструменты

В этом материале узнаем, как связаны программирование и компьютерная графика. Разберем, что такое графический конвейер, шейдеры и скрипты, а также выясним, нужно ли CG-
специалисту учиться писать код.

Программирование графики вне редакторов

Adobe Photoshop, Blender и другие редакторы написаны программистами. То же самое с игровыми движками Unity и Unreal. За каждым действием художника или моделлера скрываются строки кода. Разбираться в нем CG-специалисту необязательно. Это трудно совместить с совершенствованием основных навыков, к тому же редко имеет практический смысл. Однако базовая грамотность в этой сфере не помешает.

Итак, создавать двухмерную или трехмерную графику в редакторах необязательно. Программист может сформировать изображение, написав код. Сделать это можно с помощью разных языков программирования: Python, C#, JavaScript и других. Для работы с графикой подключают библиотеку. Это набор подпрограмм, функций или, проще говоря, инструментов для решения конкретных задач. Если представить, что язык — это дрель, то библиотека — сверло.

С помощью кода специалист задает параметры изображения. Например, две точки координат и цвет линии, проводимой между ними. Или нескольких точек и нескольких линий для создания геометрической фигуры.

3D-объекты, созданные с помощью Python

Создать трехмерное изображение сложнее. Это делается через так называемый графический конвейер — набор средств и процессов, визуализирующих 3D-картинку на экране. Вводятся координаты вершин, между ними выстраиваются линии, и образуются примитивы. Обычно это треугольники, формирующие меш (или полигональную сетку). На полигоны накладываются текстуры, применяются эффекты. Конечно, это упрощенное описание работы конвейера.

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

Графика Minecraft с шейдерами, созданными фанатами
Графика Minecraft с шейдерами, созданными фанатами

Виды шейдеров:

А) Вершинные

Программист задает параметры вершин и нормалей. Вершинные шейдеры часто используют при анимации растительности, персонажей, жидкостей.

Б) Геометрические

Такие шейдеры способны обрабатывать не только вершины, но и примитивы. Применяются при создании силуэтов, частиц.

В) Пиксельные

Работают с растровыми изображениями — например накладывают текстуры и обрабатывают данные их пикселей (цвет, глубина и другие). Используются для создания эффектов: лучей, размытия, освещения.

Шейдеры пишут на C-подобных языках: GLSL, HLSL, Cg. Как правило, они уже встроены в игровые движки.

Программирование в редакторах

Работая в редакторах и движках, специалисты решают рутинные задачи. Многие можно автоматизировать, написав скрипт. Скрипт (сценарий) — последовательность команд для выполнения определенной операции. По сути это мини-программа.

Скрипты позволяют:

1. Автоматизировать и оптимизировать стандартные (рутинные) операции.

2. Внедрять в программу новые инструменты.

3. Создавать плагины и утилиты.

Примеры скриптов для 3ds Max
Примеры скриптов для 3ds Max

Если вы художник или другой CG-специалист, не нужно учиться скриптингу прямо сейчас. В Сети есть множество обучающих материалов, а также готовые пакеты и отдельные скрипты. В том числе бесплатные. Немного о скриптинге в конкретных программах:

Adobe Photoshop

Adobe Photoshop

Photoshop не нуждается в представлении. Это рабочий инструмент миллионов специалистов, так что существование огромного количества сценариев для него логично. Есть маленькие для узких задач (создание закругленных углов) или более сложные (масштабирование, слои и так далее). Языки для скриптинга в программе: JavaScript, AppleScript (в Mac OS).

Adobe Illustrator

Adobe Illustrator

Программа для работы с векторной графикой, популярная среди дизайнеров. Скрипты для AI можно создавать с помощью языков JavaScript, Apple Script и Microsoft Visual Basic. Их очень много для самых разных задач: от работы с цветом до масштабирования объектов и устранения ошибок.

Autodesk 3ds Max

Autodesk 3ds Max

В 3ds Max встроен MAX Script. Это многофункциональный скриптовый язык, близкий к Basic и Lisp. Он рассчитан на обычного пользователя-неспециалиста. Есть скрипты на любой вкус: для работы со слоями, моделями персонажей, риггинга.

Autodesk Maya

Autodesk Maya

Свой скриптовый язык есть и у Maya. Это Maya Embedded Language или MEL. Можно использовать и Python. Специалист найдет скрипты для анимации, рендеринга, VFX, создания массовых сцен.

Blender

Blender

Популярный редактор Blender написан на C, C++ и Python. С помощью последнего можно генерировать меши объектов; автоматизировать запекание текстур, рандомизацию и другие процессы.

Unity

Unity

Unity и Unreal — два самых популярных движка среди разработчиков игр. Об их различиях написано многое, но, в целом, Unity чаще используют небольшие независимые команды. В плане графических возможностей движок несколько уступает Unreal.

В Unity скрипты пишут на C#. Плюсы языка: доступность, хорошая документированность и гибкость. Можно задавать сценарии для анимации, Также в движке есть визуальный скриптинг — создание сценариев без написания кода. Вместо них используются специальные блоки (узлы). Руководства и видеоуроки можно найти на официальном сайте Unity.

CG-художник и программирование

Если вы специалист по CG, который хочет применять в своей работе кодинг, учить целые языки программирования не нужно. Достаточно освоить необходимые вам инструменты. Сложные задачи оставьте программистам, если вы работаете в команде или найдите альтернативные способы их решения.

Вам также может быть интересно

Роль скульптинга в моделировании

Продолжаем тему скульптинга. В этом материале мы рассмотрим его место в пайплайне создания трехмерных объектов, а также выделим этапы самого скульптинга.

Обучение

2022-10-09 14:33:11

Скульптинг: преимущества, инструменты, обучение

Один из способов работы с трехмерным объектом — скульптинг. С его помощью можно делать красивые и реалистичные модели: от персонажей до природных объектов. Узнаем, чем этот метод отличается от полигонального моделирования, и как начать осваивать его с нуля.

Обучение

2022-10-09 14:16:24

Книги по компьютерной графике: зачем читать и как выбрать

Несмотря на то, что CG-специалистам доступны YouTube-каналы, онлайн-курсы и множество материалов в Сети, профильная литература не теряют своей актуальности. В этом материале мы расскажем, какие виды книг по компьютерной графике существуют и порекомендуем несколько полезных изданий.

Обучение

2022-10-09 14:18:00

3D-скульптинг в Zbrush: инструменты и возможности

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

Обучение

2022-10-09 14:18:59