Hardware opengl cinema 4d что это

Обновлено: 05.07.2024

На 2019 год Cinema 4D является самой простой в использовании программой для 3D художников, по крайней мере, так заявлено на сайте разработчиков. Все основные преимущества также присутствуют: удобство в использовании, всеми любимый интуитивный интерфейс, стабильность (все новые функции тестируются перед выходом), интегрированная справка, процедурный рабочий процесс и доступность программы в разных вариантах в зависимости от целей использования.

Обзор программы Cinema 4D

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

Знающие люди пророчат приложению большое будущее. Ведь разработчики не стоят на месте, выпускают все новые фичи и улучшения, а связь с сообществом пользователей обеспечивает обратную связь, что сказывается на качестве работы только в положительном ключе.

Об основных инструментах программы рассказывается в этом видео:

Описание

Обладая всей функциональностью пакетов CINEMA 4D Prime, Visualize и Broadcast, CINEMA 4D Studio включает в себя также прогрессивные инструменты для работы с персонажами, волосами, физический движок и неограниченное число клиентов для рендеринга по сети. Благодаря всему этому CINEMA 4D Studio с легкостью справится с любым порученным проектом.


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

Минимальные системные требования: 64-разрядная версия Windows 7 SP1 или новее с 64-разрядным процессором Intel или AMD с поддержкой SSE3, либо MacOS X 10.11.6 или 10.12.4+ с 64-разрядным процессором Intel на Apple Macintosh. (Как показывает практика, на 32 бита программа тоже идет).

4 ГБ ОЗУ (рекомендуется 8 ГБ или больше), видеокарта с поддержкой OpenGL 4.1 (рекомендуется дискретная видеокарта).

Для рендера GPU нужна видеокарта NVIDIA или AMD для Windows, либо AMD для MacOS, с поддержкой OpenCL 1.2 или новее. Для поддержки металлов требуется MacOS 10.13.2 или выше. Мы рекомендуем минимум 4 ГБ VRAM для рендеринга GPU.

Важно! Наличие USB-порта и регистрация обязательны.

История создания программы

Программа Cinema 4D впервые увидела свет в 1993 году, выпущена была на платформе Amiga сначала для MacOs, а в 1996 году для Windows.

С момента выпуска программа обновляется каждый год. Стабильность и быстрота обусловлены тесной связью с производителями оборудования, такими как Intel и Apple. Это же и гарантирует оптимизацию продукта без особых трудностей.

Функционал и возможности

Основные возможности и функции программы:

Основные достоинства программы

Фото 3

Достоинств у программы немало. Мы рассмотрим лишь основные из них:

В книге рассмотрены структура графического пакета Cinema 4D (версия 9) и приемы работы с ним. Книга богато иллюстрирована примерами. (DVD с записью видеоуроков прилагается только к печатному изданию.)

Модули

Существуют 10 основных модулей программы:

Справка. Помимо отдельных модулей, вы можете приобрести сборки этих модулей в виде отдельных версий программы. Например, пакет Lite -это упрощенная программа для несложных анимаций и использования объектов в After Effects. А BodyPaint 3D создана специально для художников.

Локализация программы

Фото 4

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

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

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

Примерные цены на 2019 год:

  • Cinema 4D Prime обойдется вам в 49 000 рублей. Больше подойдет уже для продвинутых пользователей.
  • Cinema 4D Broadcast будет стоить от 89 000 рублей. Незаменима для художников анимационного дизайна.
  • Cinema 4D Studio влетит в кругленькие 200 000 рублей. Но это лучшее, что могут предложить разработчики на 2019 год.

Остальные цены можно узнать на официальном сайте или у ресселеров и дистрибьюторов.

OpenGL — cпецификация, определяющая платформонезависимый программный интерфейс для написания приложений, использующих двумерную и трёхмерную компьютерную графику. OpenGL не является реализацией, а только описывает те наборы инструкций, которые должны быть реализованы, т.е. является API.

Каждая версия OpenGL имеет свою спецификацию, мы будем работать начиная с версии 3.3 и до версии 4.6, т.к. все нововведения с версии 3.3 затрагивают мало значимые для нас аспекты. Перед тем как начать писать своё первое OpenGL приложение, рекомендую узнать какие версии поддерживает ваш драйвер(сделать это можно на сайте вендора вашей видеокарты) и обновить драйвер до последней версии.

Устройство OpenGL

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

Например, если мы перед отрисовкой передадим OpenGL команду использовать линии вместо треугольников, то OpenGL все последующие отрисовки будет использовать линии, пока мы не изменим эту опцию, или не поменяем контекст.

Объекты в OpenGL

Библиотеки OpenGL написаны на C и имеют многочисленные API к ним для разных языков, но тем не менее это C библиотеки. Множество конструкций из языка С не транслируются в высокоуровневые языки, поэтому OpenGL был разработан с использованием большого количества абстракций, одной из этих абстракций являются объекты.

Объект в OpenGL — это набор опций, который определяет его состояние. Любой объект в OpenGL можно описать его (id) и набором опций, за который он отвечает. Само собой, у каждого типа объектов свои опции и попытка настроить несуществующие опции у объекта приведёт к ошибке. В этом кроется неудобство использования OpenGL: набор опций описывается C подобной структурой идентификатором которого, зачастую, является число, что не позволяет программисту найти ошибку на этапе компиляции, т.к. ошибочный и правильный код семантически неотличимы.

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

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

Чтобы начать работать с OpenGL нужно познакомиться с несколькими базовыми объектами без которых мы ничего не сможем вывести на экран. На примере этих объектов мы поймём как связывать данные и исполняемые инструкции в OpenGL.

Базовые объекты: Шейдеры и шейдерные программы.=

Shader — это небольшая программа которая выполняется на графическом ускорителе(GPU) на определённом этапе графического конвейера. Если рассматривать шейдеры абстрактно, то можно сказать, что это этапы графического конвейера, которые:

  1. Знают откуда брать данные на обработку.
  2. Знают как обрабатывать входные данные.
  3. Знают куда записать данные для дальнейшей их обработки.

Но как же выглядит графический конвейер? Очень просто, вот так:




Пока в этой схеме нас интересует только главная вертикаль, которая начинается с Vertex Specification и заканчивается на Frame Buffer. Как уже говорилось ранее, каждый шейдер имеет свои входные и выходные параметры, которые отличаются по типу и количеству параметров.
Кратко опишем каждый этап конвейера, чтобы понимать, что он делает:

  1. Вершинный шейдер — нужен для обработки данных 3D координат и всех других входных параметров. Чаще всего в вершинном шейдере производятся вычисление положения вершины относительно экрана, расчёт нормалей (если это необходимо) и формирование входных данных в другие шейдеры.
  2. Шейдер тесселяции и шейдер контроля тесселяции — эти два шейдера отвечают за детализацию примитивов, поступающих из вершинного шейдера и подготавливают данные для обработки в геометрическом шейдере. Сложно описать в двух предложениях на что способны эти два шейдера, но чтобы у читателей было небольшое представление приведу пару изображений с низким и высоким уровнем теселяции:



Шейдеры OpenGL пишутся на специальном С-подобном языке GLSL из которого они компилируются и линкуются в шейдерную программу. Уже на данном этапе кажется, что написание шейдерной программы это крайне трудоёмкое занятие, т.к. нужно определить 5 ступеней графического конвейера и связать их воедино. К большому счастью это не так: в графическом конвейере по умолчанию определены шейдеры тесселяции и геометрии, что позволяет нам определить всего два шейдера — вершинный и фрагментный (иногда его назвают пиксельным шейдером). Лучше всего рассмотреть эти два шейдера на классическом примере:

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

Замечание: Если в фрагментном шейдере не объявить и не проинициализировать out переменную типа vec4, то на экран ничего выводиться не будет.

Базовые объекты: Буферы и Вершинные массивы

Я думаю не стоит объяснять что такое буферные объекты, лучше рассмотрим как создать и заполнить буффер в OpenGL.

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

GL_STATIC_DRAW — данные в буфере изменяться не будут.
GL_DYNAMIC_DRAW — данныe в буфере будут изменяться, но не часто.
GL_STREAM_DRAW — данные в буфере будут изменяться при каждом вызове отрисовки.

Отлчно, теперь в памяти GPU расположенные наши данные, скомпилирована и слинкована шейдерная программа, но остаётся один нюанс: как программа узнает откуда брать входные данные для вершинного шейдера? Данные мы загрузили, но никак не указали откуда шейдерной программе их брать. Эту задачу решает отдельный тип объектов OpenGL — вершинные массивы.


image

Как и с буферами вершинные массивы лучше рассмотреть на примере их конфигурации

Создание вершинных массивов ничем не отличается от создания других OpenGL объектов, самое интересное начинается после строчки: Вершинный массив (VAO) запоминает все привязки и конфигурации проводимые с ним, в том числе и привязывание буферных объектов для выгрузки данных. В данном примере такой объект всего один, но на практике их может быть несколько. После чего производится конфигурация вершинного атрибута с определённым номером:

  1. Номер атрибута, который мы хотим сконфигурировать.
  2. Количество элементов, которые мы хотим взять. (Т.к. входная переменная вершинного шейдера с layout = 0 имеет тип vec3, то мы берём 3 элемента типа float)
  3. Тип элементов.
  4. Нужно ли нормализовывать элеметы, если речь идёт о векторе.
  5. Смещение для следующей вершины (Т.к. у нас последовательно расположены координаты и цвета и каждый имеет тип vec3, то смещаемся на 6 * sizeof(float) = 24 байта).
  6. Последний аргумент показывает какое смещение брать для первой вершины. (для координат этот аргумент равен 0 байт, для цветов 12 байт)

Всё теперь мы готовы отрендерить наше первое изображение

Не забудьте привязать VAO и шейдерную программу перед вызовом отрисовки.

Если вы всё сделали правильно, то вы должны получить вот такой результат:




Результат впечатляет, но откуда в треугольнике градиентная заливка, ведь мы указали всего 3 цвета: красный, синий и зелёный для каждой отдельной вершины? Это магия шейдера растеризации: дело в том, что во фрагментный шейдер попадает не совсем то значение Color которое мы установили в вершинном. Вершин мы передаём всего 3, но фрагментов генерируется намного больше (фрагментов ровно столько же сколько закрашенных пикселей). Поэтому для каждого фрагмента берётся среднее из трёх значений Color в зависимости от того насколько близко он находится к каждой из вершин. Это очень хорошо прослеживается у углов треугольника, где фрагменты принимают то значение цвета, которое мы указали в вершинных данных.

Забегая чуть вперёд скажу, что текстурные координаты передаются точно так же, что позволяет с лёгкостью накладывать текстуры на наши примитивы.

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

В следующей статье мы рассмотрим трансформации, узнаем о unifrom переменных и научимся накладывать текстуры на примитивы.

Графические ускорители NVIDIA GRID K1 и K2

Основная задача графических ускорителей NVIDIA GRID заключается в предоставлении высокой производительности графики в работе с ресурсоемкими приложениями требовательными к графическим вычислениям напрямую в виртуальной среде. Компания NVIDIA предлагает две модели графических процессоров линейки GRID, – K1 и K2. В ряде случаев могут быть использованы графические ускорители линейки NVIDIA Quadro, но решения Quadro не предназначены для установки в сервера и не позволяют обеспечить необходимую для задач виртуализации плотность, а также существует необходимость в большом количестве таких ускорителей.

Рассмотрим основные характеристики решений K1 и K2. Так как графические ускорители линейки GRID должны быть установлены в сервера их корпус, и система охлаждения значительно оптимизированы, обеспечивая хорошее охлаждение графическим чипам и памяти при интенсивной нагрузке. В моделях K1 и K2 лежат графические чипы на основе архитектуры NVIDIA Kepler. Чип GK107 используется в модели K1, а чип GK104 в модели K2. Модель K1 ориентирована на применение в виртуализации рабочих столов и приложений, не требующих высокой производительности от графической подсистемы, но в то же время, когда необходимо развернуть виртуальные машины для множества пользователей, в данной модели используется 4Гб графической памяти на каждый из четырех GPU. В то же время модель K2 ориентирована на более требовательные к графическим вычислениям приложения, такие как пакеты DCC. В данной модели используются более производительные GPU и быстрая память, для каждого из них также выделено по 4Гб графической памяти стандарта GDDR5.

В таблице 1.1 приведены основные технические характеристики GPU NVIDIA GRID K1 и K2.

1x 6-pin PCI Express power connector

Citrix XenServer с NVIDIA GRID Hypervisor

+ XenDesktop с HDX

Windows Server 2012 + RemoteFX

Windows Server 2008 R2 + RemoteFX

VMware ESXi + View с vSGA

Citrix XenServer + XenDesktop с HDX 3D Pro

Citrix XenServer с NVIDIA NVIDIA GRID

Hypervisor + XenDesktop с HDX

Windows Server 2012 + RemoteFX

Windows Server 2008 R2 + RemoteFX

VMware ESXi + View с vSGA

Таблица 1.1. Конфигурация плат NVIDIA GRID K1 и K2.

Если принимать во внимание фактор потребления энергии, то графический ускоритель K1 будет выгоднее по сравнению с более производительным ускорителем K2. При том же на модели K1 можно развернуть больше виртуальных машин и предоставить возможности использования производительной графики большему количеству пользователей. Но для решения более сложных задач (проектирование, 3D анимация, визуализация) все же необходимо прибегнуть к применению производительной модели K2 и разработать надежное питание энергией между всеми элементами системы.

Виртуализация рабочих столов и vGPU

Перед тем как мы перейдем к практическим экспериментам и демонстрации работы технологии в реальных приложениях, необходимо разобраться с теоретическими аспектами виртуализации рабочих столов и GPU, а так же в том, как организован сервер с NVIDIA GRID управляемый решениями Citrix.

Терминология

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

  • CitrixReceiver – Легковесное приложение которое запускается на Windows, Mac, Linux, iOS, Android и Windows Phone устройстве пользователя и соединяется с виртуальной машиной в дата-центре на которой установлен Citrix XenDesktop.
  • CitrixXenDesktop – Продукт виртуализации рабочих столов от Citrix предоставляющий пользователю доступ к удаленному рабочему столу.
  • CitrixXenServer – Коммерческий гипервизор от Citrix который позволяет запускать множество операционных систем на одном серверном узле.
  • ВыделенныйGPU (DedicatedGPU) – решение, где GPU полностью используется виртуальной машиной не распределяясь между другими виртуальными машинами.
  • GPUPass-Through – технология которая связывает виртуальную машину с GPU. Эта технология разработана NVIDIA и известна как NMOS (NVIDIA Multi-OS). Она позволяет каждой операционной системе выполняемой на сервере виртуализации напрямую использовать все возможности физического GPU.
  • Хост (HostMachine) – компьютер на котором установлен гипервизор и запущена одна или несколько виртуальных машин и являющийся хостом. Каждая из виртуальных машин называется гостевой машиной. Гипервизор предоставляет гостевым операционным системам виртуальную операционную платформу и управляет выполнением гостевых операционных систем.
  • Гипервизор (Hypervisor) – технологически гипервизор или менеджер виртуальных машин (VMM) является частью программного обеспечения, прошивка или оборудование которого создают и запускают виртуальные машины.
  • Удаленная рабочая станция (RemoteWorkstation) – единица рабочей станции, которая запускается в дата-центре и перенаправляется через сеть на клиентское устройство. Удаленная рабочая станция может быть доступна как из офиса пользователя, так и может быть доступна со стороны партнерского портала, в путешествии или из дома пользователя.
  • Виртуальная машина (VirtualMachine) – единица операционной системы, которая запускается поверх гипервизора, используя абстрактный образ оборудования реализуемым гипервизором.
  • Виртуализация (Virtualization)– практика абстракции виртуальной машины из физического оборудования, на котором она выполняется. На практике виртуализация используется для запуска виртуальных машин на одном физическом сервере (оборудовании).
    • Инфраструктура виртуальных рабочих столов (VirtualDesktopInfrastructure (VDI)) – практика размещения операционной системы на виртуальной машине в централизованном или удаленном сервере.
    • Виртуализация оборудования (HardwareVirtualization) – создание виртуальной машины, которая действует подобно реальному оборудованию поверх гипервизора или как поднабор оборудования. Программное обеспечение выполняемое на таких виртуальных машинах, работает поверх ресурсов физического оборудования (т.е. операционная система может загружать родные для оборудования драйверы и взаимодействовать с ними напрямую).
    • Аппаратно-виртуализированныйGPU (HardwareVirtualizedGPU) – платы K1 и K2 на основе чипов архитектуры NVIDIA Kepler позволяют множеству пользователей использовать возможности одного GPU и предоставляют каждому пользователю прямой доступ к "железному" GPU. Это увеличивает плотность пользователей, предоставляя им реальную производительность и совместимость.
    • Программная виртуализация (SoftwareVirtualization) – программная виртуализация обеспечивает интерфейс между оборудованием и виртуальной машиной, создавая плотную адаптацию между различными уровнями конфигураций оборудования. На практике программы действуют аналогично аппаратным ресурсам, пропуская команды к гипервизору, который может выполнять их на реальном оборудовании или эмулируемом оборудовании.
    • ВиртуальныйGPUNVIDIAGRID (NVIDIAGRIDvGPU) – ключевая технология, используемая для реализации виртуализации GPU. Это позволяет множеству виртуальных машин взаимодействовать напрямую с GPU. Система GRID Virtual GPU управляет ресурсами GPU которые позволяют множеству пользователей распределять возможности основного оборудования увеличивая плотность и формировать возможности полноценных PC в облаке.

    Как вы можете заметить, ключевые технологии достаточно просты в понимании их назначения. Но как же реализуется инфраструктура сервера виртуальных машин на базе гипервизора Citrix XenServer и NVIDIA GRID? Для демонстрации инфраструктуры в данной статье мы приведем два примера; первый для решения VDI на основе GPU Pass-Through, а второй для VDI на основе vGPU.

    NVIDIA CUDA и vGPU важная особенность

    Если вы планируете использовать приложения, активно использующие GPU для ускорения вычислений, вам стоит обратить внимание на важную особенность. Технология виртуализированных GPU (vGPU) не поддерживает NVIDIA CUDA, OpenCL и Direct Compute. Это технологическая особенность присущая технологии вычислений общего назначения на GPU. Для обхода данной особенности необходимо использовать Dedicated GPU с технологией GPU Pass-Through. Это позволяет напрямую выполнять обращение из виртуальной машины к графическому процессору и "пробрасывать" GPU-accelerated приложения из виртуальной среды на реальное оборудование. При использовании vGPU вам доступны только графические API, такие как OpenGL и DirectX.

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

    Приложение

    Поддержка vGPU

    (OpenGL и DirectX)

    Ограниченные возможности 1

    Редакторы 3D графики и анимации

    Autodesk 3ds Max 2016

    Не доступен NVIDIA PhysX с GPU ускорением

    Autodesk Maya 2016

    Не доступен OpenCL evaluator (Evaluation Manager)

    Не доступна аппаратная тесселяции геометрии в OpenSubdiv

    Не доступен NVIDIA PhysX с GPU ускорением

    Autodesk Mudbox 2016

    Pixologic ZBrush 5

    The Foundry MARI

    Не доступны функции с GPU ускорением (CUDA, OpenCL)

    Side Effects Houdini 14

    Не доступна аппаратная тесселяция геометрии в OpenSubdiv

    Не доступны функции с GPU ускорением в POP Grains Solver

    Не доступны функции с GPU ускорением в Pyro

    Не доступна аппаратная тесселяция геометрии в OpenSubdiv

    Не доступна аппаратная тесселяция геометрии в OpenSubdiv

    Редакторы 2D и векторной графики

    Adobe Photoshop CC

    Не доступны фильтры с GPU ускорением

    Adobe Illustrator CC

    Не доступны инструменты с GPU ускорением

    Редакторы видео и системы пост-продакшн/композитинга

    Adobe Premiere Pro CC

    Adobe Mercury Engine с GPU ускорением

    Переходы и эффекты с GPU ускорением

    Adobe After Effects CC

    Adobe Mercury Engine с GPU ускорением

    Эффекты и фильтры с GPU ускорением

    Ядро визуализации с трассировкой луча (NVIDIA OptiX)

    The Foundry NUKE

    Не доступны функции с GPU ускорением

    Не доступны функции с GPU ускорением

    Системы визуализации

    NVIDIA mental ray

    Не доступны функции GPU AO и GPU GI, NVIDIA iray (CUDA)

    Не доступна версия с GPU ускорением (CUDA)

    В Autodesk 3ds Max также не доступна версия с GPU ускорением

    Chaos Group V-Ray RT

    Не доступна версия с GPU ускорением (CUDA, OpenCL)

    Не доступна версия с GPU ускорением (CUDA, OpenCL)

    Otoy Octane Renderer

    Cebas Moskito Renderer

    PIXAR RenderMan 20

    Да (Visualizer Integrator)

    1 – Отсутствие прямой поддержки CUDA и OpenCL из-за ограничения технологии vGPU.

    Таблица 1.2. Поддержка vGPU со стороны приложений и ограниченные возможности

    Также хочется заметить, что на текущий момент гипервизор от Citrix и реализация управляющего драйвера NVIDIA GRID для Citrix XenServer не позволяют "пробрасывать" несколько GPU в одну виртуальную машину. Поэтому вы можете использовать только NVIDIA GRID в режиме GPU Pass-Through или исключить обработку OpenGL и DirectX на аппаратном уровне, а такой GPU как NVIDIA Tesla можно "пробросить" в виртуальную среду для вычислений CUDA-приложений.
    Если же у вас используются не требовательные к графической подсистеме приложения или приложения, обладающие программным драйвером визуализации виртуального пространства, например Autodesk 3ds Max с драйвером Nitrous (Software), трюк с "пробросом" NVIDIA Tesla может сработать. Тогда вы получаете возможность выполнения вычислений на GPU с помощью NVIDIA CUDA, OpenCL и Direct Compute, а трехмерная сцена или модель, будут обрабатываться силами центрального процессора.

    Инфраструктура виртуальных рабочих столов (VDI) с Dedicated GPU

    Данная концепция носит имя Виртуальные удаленные рабочие станции (Virtual Remote Workstations) или VDI with Dedicated GPU. В данную концепцию входит предоставление неограниченных в функциях виртуальных рабочих мест с высокой производительностью свойственной персональным высокопроизводительным рабочим станциям применяемых инженерами или художниками для работы с комплексными моделями и большими массивами данных.

    Общая схема реализации элементов VDI с Dedicated GPU.

    В виртуальных рабочих станциях каждый из установленных в NVIDIA GRID K1 и K2 графических чипов целиком выделяется под виртуальную машину. Операционная система в виртуальной среде видит графический ускоритель и задействует его аналогично тому, как это реализовано в персональной рабочей станции. Такой подход позволяет использовать ключевые возможности современных графических ускорителей от NVIDIA и поддерживает не только API OpenGL или DirectX, но также позволяет выполнять вычисления общего назначения на GPU с помощью NVIDIA CUDA, OpenCL и Direct Compute. При этом выделенная под каждый из GPU память будет доступна в максимальном объеме (4 Гб на GPU).
    Если планируется использовать такие приложения как Autodesk Maya 2016, Autodesk 3ds Max 2016 с NVIDIA iray renderer и V-Ray RT GPU, а так же приложения для вычислений физических моделей, поддерживающие вычисления на GPU, данный тип виртуальных рабочих столов будет наиболее подходящим.
    Но у данного типа есть одно существенное ограничение. Оно заключается в том, что мы не можем использовать множество виртуальных машин и распределять каждый из GPU на плате GRID под несколько виртуальных машин. Это обусловлено описанной выше важной особенностью, – поддержкой технологии NVIDIA CUDA и других API для вычислений общего назначения на GPU.

    Инфраструктура виртуальных рабочих столов (VDI) с vGPU

    Вторая концепция ориентирована на развертывание нескольких виртуальных машин на каждом из GPU. Она позволяет профессиональным пользователям использовать ресурсоемкие графические приложения, требовательные к графической подсистеме (OpenGL, DirectX) без значительного снижения производительности и качества визуализации изображения и виртуального пространства. Это актуально в таких областях как проектирование в CAD и моделирование или анимация в DCC приложениях несколькими пользователями.

    Общая схема реализации элементов VDI с vGPU.

    На рисунке выше приведена общая диаграмма для четырех виртуальных машин выполняемых на сервере с NVIDIA GRID K2, где каждый из GPU работает с двумя виртуальными машинами. За управление распределением ресурсов GPU отвечает специальная система управления NVIDIA GRID установленная на Citrix XenServer.
    Как уже было сказано выше, у данной концепции есть одно существенное ограничение. Оно заключается в том, что нельзя использовать CUDA приложения. Например, такие решения для визуализации как NVIDIA iray и V-Ray RT будут доступны только в режиме работы на центральном процессоре (CPU).
    Эту особенность можно обойти следующим образом: вывести все вычисления на GPU в отдельный узел. Это может быть отдельный сервер с GPU линейки NVIDIA Tesla или это может быть комплексное решение в виде NVIDIA Quadro VCA. Это специальное серверное решение, которое обеспечивает высокую производительность в таких инструментах визуализации, как NVIDIA iray и V-Ray RT GPU или других решениях использующих NVIDIA CUDA. При соответствующей конфигурации прикладного программного обеспечения можно вынести вычисления из виртуальной среды на отдельные узлы и снизить нагрузку на сервер виртуализации.

    Сколько виртуальных машин и пользователей поддерживаются NVIDIA GRID?

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

    Таблица 1.3. Количество виртуальных машин и пользователей для VDI with vGPU и VDI with Dedicated GPU.

    Каждый из физических GPU способен работать одновременно с 8 виртуальными машинами. Но при развертывании необходимо отталкиваться от выполняемых задач. Например, если вы хотите использовать все возможности графических ускорителей, не только обработку графических API, но и вычисления, то тогда вам будет доступно только по одному GPU на каждую виртуальную машину.
    Также имеется зависимость объемов памяти от выбранного типа vGPU и количества пользователей. При настройке Citrix XenServer вам будут доступны заранее подготовленные модели vGPU с фиксированным объемом памяти (таблица 1.4).

    Плата

    Кол-во физических GPU

    Типы виртуальных GPU

    Кол-во vGPU на физ. GPU

    Cinema 4D – простой и мощный инструмент для создания 3D графики, редактирования эффектов и моделирования. «Голая» синема имеет ограниченный функционал и соответственно требования к железу минимальные. Но базовый функционал программы расширяется новыми плагинами, которые постоянно обновляются. И добавив к сборке несколько плагинов для работы с «тяжелыми» объектами, вы сможете серьезно озадачить даже мощную рабочую станцию. Например, одна из наиболее сложных структур – волосы. Создавать реалистичные прически или волосяной покров позволяет модуль HAIR, и для рендеринга таких объектов придется обзавестись серьезным железом.

    Системные требования

    Для работы базовой версии без плагинов нам потребуется:

    • ОС: 10 64 Bit;
    • Процессор: 64 Bit с поддержкой SSE3;
    • Оперативная память: минимум 4 Gb, рекомендовано 8 Gb;
    • Видеокарта: 4 Gb для GPU рендера и поддержка OpenGL 4.1;

    Разработчики частенько указывают требования очень заниженными, и на первый взгляд под эти системные требования подходят буквально все железяки, выпущенные за последние 5 лет. Исключение – количество памяти на видеокарте, в ходу все еще активно используются модели с памятью меньше 4 Gb.

    Выбираем компьютер для Cinema 4D для разных задач

    Рассмотрим три варианта видов деятельности и поможем каждому специалисту подобрать машину для воплощения его проектов.

    • Художник – работает с двухмерной анимацией и несложными трехмерными моделями. Рендерит в качестве FullHD, минимальные или средние настройки качества, в т.ч. и сглаживание;
    • Дизайнер – работает с трехмерными моделями среднего и высокого объема, активно использует эффекты. Рендерит в FullHD с максимальными настройками качества и лучшим доступным сглаживанием;
    • Режиссер – работает с объемными исходниками и экстремально большими сценами. Пользуется сложными эффектами и рендерит в лучшем разрешении 2К, 4К. Высокие требования к качеству готового результата и скорости рендера.

    Видеокарта

    При рендере видеокарта занимается визуализацией трехмерных моделей, а процессор обсчитывает физику анимации. Для дизайнера гораздо важнее именно карточка, так как просчеты физической модели минимальны. Но при сложных анимированных трехмерных сценах может потребоваться серьезное участие камушка. Обычно эта парочка выбирается под стать друг-другу, отталкиваться стоит от видеокарты и выбирать под нее процессор.

    Художник. Для работы с двухмерной графикой и не очень большими объектами в 3D мощный компьютер не нужен. Видеокарту лучше всего покупать последних серий. NVIDIA GeForce RTX 2060 – базовая модель, у нее неплохие показатели производительности, 6 Gb памяти на борту и есть возможность просчитывать падение лучей света по технологии NVIDIA RTX. Эта функция обычно используется для получения фотореалистичных изображений и видео, но даже при работе с небольшими сценами может пригодиться.

    Дизайнер. Тут выбор карточек достаточно большой, и ориентироваться стоит на объем видеопамяти. Определитесь, с какими сценами вам придется работать в будущем. Для разных задач могут подойти оптимальная RTX 2070 (8Gb), флагманская RTX 2080 Ti (11 Gb) или полупрофессиональная Titan RTX (24 Gb). Выбор ограничивается только вашими финансами и запросами.

    Режиссер. Если нужно создавать фотореалистичные сцены с большим количеством «тяжелых» эффектов и рендерить с максимальными настройками качества в больших разрешениях, то стоит обратить внимание на карточки NVIDIA Quadro из профессиональной серии, созданной для дизайнеров и инженеров. Карточки имеют поддержку большого количества технологий, которых просто нет в игровых решениях. Например, Quadro позволит вам установить уровень сглаживания 64х, когда универсальные и игровые карты поддерживают только 16х и иногда 32х.

    Процессор

    • GeForce RTX 2060 – i5 9-го поколения;
    • GeForce RTX 2070 – i5 10-го поколения и i7 9-10-го поколений;
    • GeForce RTX 2080 – i7 10-го поколения и i9;
    • Titan RTX и Quadro – i9 10-поколения.

    Присутствует определенный запас по мощности, но он позволит вам апгрейдить компьютер через 3-4 года без замены основных комплектующих, например, если оперативной памяти будет мало.

    Оперативная память

    Опять же зависит от объема ваших проектов. Самый минимум – 8 Gb, в 2020 меньше ставить нельзя. Оптимально считается 32 Gb для рабочих компьютеров, но для работы с графикой может хватить 16 Gb. Экстремально большие сцены могут потребовать большего запаса оперативной памяти, и если вы собираете рабочую станцию на NVIDIA Quadro, то объем памяти в 64 Gb точно будет не лишним. А еще лучше поставить сразу 128 Gb. Тогда уж точно любой проект сможет отрендериться без проблем в любом качестве.

    Накопитель

    В любом современном компьютере лучше использовать тандем из двух накопителей SSD и HDD. На быстрый SSD ставится система и программы, а HDD используется как хранилище файлов. Чтобы Cinema 4D работала быстрее, закиньте и все рабочие файлы проекта на SSD. Для этого там должно быть много места, 512 Gb – оптимальный вариант, хотя и 1 Tb лишним не будет.

    РЕШЕНИЯ ОТ HYPERPC

    SILENT

    Серия бесшумных компьютеров от HYPERPC создана так, чтобы гул вентиляторов не нарушал творческую атмосферу вашего рабочего места.

    Базовая модель HYPERPC SILENT 500 работает с видеокартой ASUS GeForce RTX 2060 SUPER Strix, которая имеет 6 Gb видеопамяти на борту и способна справится с любыми двухмерными и средними трехмерными проектами.

    Читайте также: