3d graphics — клиентское решеник для iot 3d графики


Содержание

Сложная графика

TDK-комплект для разработки сложной графики QNX Advanced Graphics представляет собой набор инструментов, позволяющий создавать двумерные и трехмерные графические среды с высоким уровнем масштабируемости, надежности и производительности и на основе индустриальных стандартов. Данный TDK-комплект содержит как средства разработки, так и компоненты среды исполнения:
  • Средства разработки:
    • статические библиотеки для 2D-рисования, управления слоями и видеозахвата;
    • библиотеки 3D-графики (с поддержкой программного интерфейса OpenGL® ES API);
    • примеры кода для разработки 2D- и 3D- графических сред.
  • Компоненты среды исполнения:
    • драйверы графических контроллеров;
    • библиотеки среды исполнения для 3D-графики (с поддержкой программного интерфейса OpenGL® ES API);
    • библиотеки среды исполнения для рендеринга шрифтов и изображений;
    • администратор графического дисплея (io-display).

Графическая среда для разработки сложной графики QNX Advanced Graphics – это не просто ещё одна система многооконных интерфейсов. Она представляет собой новый способ организации графической среды, позволяющий обеспечить максимальный уровень производительности, надежности и масштабируемости.

Возможности и преимущества

  • Сохранение режима реального времени в графических средах. Приоритетность применяется для эффективного выполнения множества 2D- и 3D-программ, которые одновременно запрашивают рендеринг изображений. Режим реального времени сохраняется автоматически, без необходимости применения специального кода или переконфигурирования системы.
  • Обеспечение максимальной производительности программ. 2D- и 3D-программы вызывают функции рисования непосредственно на аппаратном уровне. Графическая программа напрямую управляет ресурсами графического чипа, без необходимости копирования данных. Такое прямое управление обеспечивает наиболее быструю передачу данных между кодом приложения и графическим чипом.
  • Поддержка новейших функциональных возможностей графических контроллеров, в том числе команды аппаратно-ускоряемого 2D- и 3D-рисования, аппаратное копирование битовых массивов (blit) и управление слоями (при наличии аппаратной поддержки). Полный перечень 2D- и 3D-возможностей см. далее.
  • Построение высоко надежных графических сред. Как и любые другие программы в QNX, все графические программы защищены друг от друга и не могут нарушить работу других программ. Программа-администратор графического дисплея автоматически распределяет ресурсы для программ и освобождает ресурсы при завершении приложений. В случае сбоя программы ее ресурсы освобождаются автоматически, без необходимости специального кода.
  • Ускорение процесса разработки. Благодаря возможности разделить графику между различными программами, выполняемыми в защищенной памяти и в режиме реального времени, несколько разработчиков могут беспрепятственно работать одновременно. Программы можно отлаживать по отдельности, что позволяет быстрее обнаруживать ошибки.
  • Широкая масштабируемость. Оконные системы (например, Photon™), могут быть интегрированы с другими 2D- и 3D- программами, что позволяет компаниям-системным интеграторам реализовывать возможности более высокого уровня (например, просмотр веб-страниц, работа с электронной почтой и т.д.) одновременно с выполнением других 2D- и 3D- программ. Такая интеграция может быть выполнена как на одном слое (2D- и 3D-программы), так и на нескольких слоях, часть из которых может управляться оконной системой.
  • Уменьшение необходимых ресурсов системы. Обеспечивается возможность применения минимального набора графических компонентов для реализации системы.
  • Поддержка промышленных стандартов. TDK-комплект «Сложная графика» поддерживает программный интерфейс OpenGL® ES, сертифицированный независимой организацией Khronos Group. Компания QNX Software Systems входит в состав этой организации и способствует развитию и продвижению стандарта OpenGL ES.
  • Интеграция с существующими решениями. В настоящее время существует множество графических решений, начиная от собственных разработок фирм до решений, предлагаемых сторонними компаниями. Если собственное или поставленное третьей стороной графическое решение интегрируется с TDK-комплектом «Сложная графика», то полученное комбинированное решение также обеспечивает режим реального времени и высокую надежность.
  • Графические решения с большим инновационным потенциалом. Благодаря поддержке OpenGL® ES, продукты QNX позволяют реализовывать такие стандарты, как JSR 239 (Java-спецификация для 3D-графики). Поддержка формата EGL, который является графической основой для технологии OpenGL® ES, означает, что технологии будущего (например, OpenVG, OpenML) и связанные с ними спецификации (JSR 226) будут так же легко применимы.

Что можно создавать с помощью TDK-комплекта «Сложная графика»?

  • 2D- навигационная система с использованием альфа-смешивания для отображения меню и предупреждающих сообщений.
  • Использование нескольких графических слоев.
  • 3D-навигационная система на основе OpenGL® ES.
  • Поддержка вращающихся шрифтов.
  • 3D- навигационная система на основе OpenGL® ES.
  • Веб-браузер, встроенный в правую часть экрана для отображения информации, связанной с выбранным объектом.
  • 2D-дисплей монитора с сенсорным экраном и высокоскоростным отображением графиков.
  • Небольшие и быстродействующие примитивы 2D-графики:
    • прямоугольники, линии, многоугольники, графические массивы (blitting);
    • альфа-смешивание, рирпроекция (chroma-key), растровые операции;
    • ускоренный альфа-мепинг;
    • и др.
  • Поддерживаемые форматы:
    • BMP, JPEG, PNG, GIF
    • сглаживание при изменении размеров и масштабировании.
  • Поддерживаемые шрифты:
    • TrueType;
    • Adobe Type 1 и Type 2;
    • векторные шрифты Bitstream (в том числе китайские и японские).
  • Поддерживаемые операции обработки шрифтов:
    • сглаживание;
    • вращение;
    • контуры/обрисовки;
    • кодировка UTF-8;
    • масштабирование шрифтов;
    • хинтинг/кернинг.
  • API для видеозахвата:
    • масштабирование аппаратными средствами (увеличение/уменьшение);
    • системы RGB/YUV.
  • API для управления слоями (при наличии аппаратной поддержки):
    • возможность устанавливать соответствие между поверхностью рисования и слоем;
    • упорядочивание слоев и возможность включения и отключения слоев;
    • альфа-смешивание и рирпроекция между слоями;
    • настройка размера, масштаба окна просмотра источника и приемника; управлением панорамированием.
  • 2D-графические драйверы с аппаратным ускорением:
    • аппаратное ускорение графики, при наличии такой возможности; если это невозможно, применяется программное ускорение;
    • например, для микросхемы Coral P/B/PA, следующие 2D-функции выполняются с аппаратным ускорением:
      • линии, прямоугольники;
      • линии по алгоритму Брезенхама (Bresenham);
      • сглаживание линий и многоугольников;
      • заполненные многоугольники (с отсечением);
      • растровые изображения (с прозрачностью);
      • блитирование, масштабированное блитирование (увеличение и уменьшение);
      • поддержка режима прямого управления шиной PCI (только для Coral P/PA);
      • альфа-смешивание;
      • рирпроекция;
      • 16 операций для работы с растровыми изображениями;
      • поддержка жирных линий;
      • альфа-мэпинг (смешивание);
      • соединения встык и соединения с косой кромкой (с отсечением);
      • толщина линии до 32 пикселей;
      • поддержка прерываний для кадровой синхронизации и заполнения списков отображения;
      • аппаратная поддержка курсора.
  • OpenGL® ES API Common Profile, версия 1.0:
    • API OpenGL® ES – это расширение OpenGL®, разработанное с учётом требований по использованию памяти во встраиваемых системах. Этот программный интерфейс соответствует промышленным стандартам, является открытым и не требует лицензионных выплат. Поддержку данной спецификации выполняет корпорация Khronos (www.khronos.org).
    • Для обеспечения масштабирования поддерживаются дополнительные расширения.
  • Компания QNX предагает идеальную реализацию API OpenGL® ES согласно методологии разработки программного обеспечения типа «clean room«.
  • QNX-реализация OpenGL® ES 1.0 была полностью сертифицирована корпорацией Khronos Group в ноябре 2005 г. (подробные сведения о сертификации можно найти на веб-сайте корпорации Khronos).
  • 3D-графические драйверы с аппаратным ускорением:
    • При возможности используется 3D-графический контроллер с аппаратным ускорением. Если это не возможно, используется программное 3D-ускорение.
    • Например, на чипе Coral P/B/PA, кроме функций аппаратного 2D-ускорения, есть следующие функции аппаратного 3D-ускорения:
      • Z-буферы;
      • 3D-точка, 3D-линия, 3D-треугольник;
      • наложение текстур с билинейной фильтрацией, перспективная коррекция:
        • GL_LINEAR, GL_NEAREST
        • затемнение по методу Гуро;
      • “ножницы” (отсечение);
      • низкоуровневый драйвер имеет прямой доступ к структуре состояний OpenGL ES;
      • сглаживание;
      • альфа-смешивание.


Архитектура TDK-комплекта «Сложная графика»

TDK-комплект для разработки сложной графики представляет собой набор инструментов для создания и внедрения пользовательских интерфейсов приложений. Ядром комплекта является технология Graphics Framework (GF). Эта технология обеспечивает сервисные функции, позволяющие графическому программисту создавать самые разнообразные интерфейсы: от миниатюрных 2D-сред до полнофункциональных 2D- и 3D-сред, в том числе веб-браузеров и почтовых клиентов.

Архитектура платформы Graphics Framework позволяет программам непосредственно взаимодействовать с оборудованием, что обеспечивает более высокую производительность и скорость работы во встраиваемых средах с ограниченными ресурсами. Это достигается благодаря тому, что платформа Graphics Framework обеспечивает прямой доступ к графическим драйверам (т.е. при рендеринге не требуется обмен сообщениями или переключение контекстов), а также применяет аппаратное ускорение. Таким образом, платформа Graphics Framework идеально подходит для встраиваемых сред, где она может служить в качестве базового графического уровня для решения любых задач: от реализации простого полноэкранного пользовательского интерфейса до построения сложной системы управления экранными окнами в графических пользовательских интерфейсах для множества приложений. Кроме того, эта платформа может служить в качестве базового уровня для переноса существующих пользовательских интерфейсов.

Для реализации 3D-графики во встраиваемых системах TDK-комплект «Сложная графика» поддерживает спецификацию API OpenGL® ES 1.0, разработанную специально для встраиваемых приложений. В реализации QNX поддерживается профиль Common profile и уровни интерфейса платформы EGL.

Ниже приводится пример типичного приложения, построенного с помощью TDK-комплекта «Сложная графика» и на основе платформы Graphics Framework. Необходимо отметить, что все компоненты являются необязательными, за исключением графического драйвера (devg) и самого кода приложения (который статично связан только с необходимыми функциями из библиотек TDK-комплекта «Сложная графика»).

Пример архитектуры приложения со сложной графикой

Другие компоненты, используемые в приведенном выше примере, включают следующие функции:

  • ввод данных с помощью клавиатуры или мыши, управляемый администратором ввода данных (поставляется с BSP-пакетом для целевой системы);
  • рендеринг шрифтов, управляемый системой рендеринга шрифтов (например, библиотекой Bitstream Font Fusion, которая поставляется в составе TDK-комплекта «Сложная графика»);
  • поддержка изображений с помощью специальной библиотеки ( поставляется в составе TDK-комплекта»Сложная графика»);
  • поддержка библиотеки OpenGL® ES (поставляется в составе TDK-комплекта «Сложная графика»).

Хотя платформа Graphics Framework предназначена для полноэкранных пользовательских интерфейсов, она может работать одновременно с несколькими потоками, несколькими приложениями и даже, при необходимости, с 2D-приложениями и приложениями на основе OpenGL® ES вместе с графическими приложениями Photon.

Платформа Graphics Framework построена на модели «клиент-сервер», при этом процесс io-display работает в качестве сервера и управляет ресурсами устройства (например, памятью, слоями) и доступом к оборудованию. Клиент (графическое приложение) взаимодействует непосредственно с оборудованием. Клиенты получают блокировки (мутексы в разделяемой памяти) посредством вызова gf_draw_begin(), для того чтобы обеспечить синхронизацию, т.е. предотвратить одновременный доступ нескольких потоков или приложений к одному аппаратному ресурсу. Процесс io-display обеспечивает повышенную надежность при помощи механизма обнаружения аварийного завершения клиента, освобождения ресурсов и освобождения разделяемого мутекса, если он удерживался аварийно завершенным клиентом. Разделяемый мутекс отдается ожидающему потоку с наивысшим приоритетом, чтобы в первую очередь обеспечить прорисовку графики программы с наивысшим приоритетом.

Доступ приложений на основе платформы Graphics Framework ко всему оборудованию регулируется процессом io-display. Кроме того, этот управляющих процесс распределяет всю видеопамять и выполняет завершение приложений (как нормальное, так и аварийное) путем освобождения выделенной памяти и, при необходимости, освобождения заблокированного оборудования. Все это управление может быть “невидимым” для клиентских графических программ, поскольку все взаимодействия обрабатываются внутри библиотеки.

На приведенной ниже диаграмме показано взаимодействие между процессом io-display и тремя следующими программами (клиентами):

  • графическая среда Photon (веб-браузер, почтовая программа и т.д.);
  • специализированный графический пользовательский интерфейс, использующий 2D-библиотеку третьей стороны, которая обращается к библиотеке платформы Graphics Framework TDK-комплекта «Сложная графика»;
  • приложение на основе OpenGL® ES API.

Процесс управления графическим вводом-выводом io-display

Заметим, что все три программы загружаются в разделяемый объект графического драйвера (devg) и напрямую управляют графическим оборудованием. Программы по очереди используют графический драйвер, запрашивая и получая мутекс, управляемый процессом io-display. Порядок исключительного доступа определяется приоритетом запрашивающей программы.

После запуска управляющего процесса io-display приложения могут использовать библиотеку платформы Graphics Framework (libgf) и библиотеки OpenGL® ES для получения графического контекста и вывода графических данных на устройство.

Графические платформы приложений производства третьих сторон или собственной разработки могут легко использоваться в сочетании с TDK-комплектом «Сложная графика». Возможна интеграция с любой из поддерживаемых функций, включая 2D-рисование, 3D-рисование, поддержку изображений и шрифтов. Простые интерфейсные функции позволяют агрегировать операции рисования и в то же время получать высокую производительность и режим реального времени, обеспечиваемый платформой Graphics Framework.

Компоненты графической платформы Graphics Framework

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

Устройства и дисплеи – это логические объекты, представляющие аппаратные компоненты, управляемые платформой Graphics Framework. Устройство – это единица графического оборудования, управляемая процессом io-display посредством соответствующего драйвера devg-*. Для каждого устройства имеется запись в /dev/io-display.

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

Слои представляют собой область памяти, отображаемой на дисплее. Некоторые виды современного графического оборудования поддерживают использование нескольких слоев. В графической платформе Graphics Framework все устройства имеют хотя бы один слой (слой 0). Слои увеличивают гибкость отображения информации на дисплее. Например, вы можете поместить окно с географической картой на фоновом слое, а элементы управления графическим пользовательским интерфейсом пользователя с линейкой прокрутки карты на переднем слое. Таким образом, приложение позволяет прокручивать окно карты плавно без необходимости перерисовки интерфейса, что устраняет мерцание и снижает нагрузку на процессор. Слои полезны во всех случаях, когда нужно вывести текст или графический пользовательский интерфейс поверх какой-либо визуальной информации.

На следующем рисунке показаны взаимосвязи между устройством, дисплеями и слоями.

Иерархия устройств, дисплеев и слоев

Поверхность – это область памяти, в которую библиотека платформы Graphics Framework может выводить графические данные. Если поверхность соединена со слоем (и этот слой является видимым), то вся отображаемая на поверхности информация появляется на дисплее этого слоя. Поверхность должна иметь пиксельный формат, поддерживаемый данным слоем, чтобы выводимые на поверхности объекты отображались корректно. Как правило, одному слою соответствует только одна поверхность. Исключением являются планарные данные, например планарные данные YUV, широко используемые для видеозахвата, для которого требуется три поверхности (одна для каждого видеокомпонента).

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

Контекст представляет собой структуру, которая сохраняет информацию об объекте отображения между вызовами функций отображения (например, ширина пера, цвета переднего и заднего фона, рамка отсечения). Контекст предназначается для поверхности и является аргументом для всех функций рисования. Поверхность может использоваться для 2D-рисования или для 3D-рисования с использованием технологии OpenGL ES. Поверхности могут быть объединены на нескольких слоях до их отображения.

На следующем рисунке показаны взаимосвязи между контекстами, поверхностями и слоями.

Контексты, поверхности и слои

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

Пример системы 2D-навигации

Таким образом, добавление 3D-возможностей так же просто, как и разработка на основе OpenGL® ES, а обновление 2D-программы на 3D-версию или использование программы на основе OpenGL® ES на том же слое, где находится 2D-графика (посредством разделения экрана на сегменты), не представляет никакой сложности.

Кроме того, добавить веб-браузер (например, разработанный с помощью TDK-комплекта TDK-комплекта «Веб-браузер») так же просто, как запустить систему QNX Photon™ на графическом слое.

  • Исполняемые файлы:
    • библиотеки OpenGL ES и 2D-библиотеки для архитектур PPC, X86, SH;
    • управляющий процесс io-display;
    • администраторы для поддержки одновременного выполнения программ 3D, 2D и Photon;
    • библиотека загрузки изображений, поддерживающая различные форматы:
      • JPEG, PNG, BMP, GIF;
    • библиотеки шрифтов:
      • TrueType, Bitmap, Font Fusion (векторные шрифты Bitstream) (образцы шрифтов поставляются в комплекте разработчика QNX Momentics);
    • графический драйвер Fujitsu Coral для Coral B/P/PA (список поддержки графических чипов расширяется);
    • образцы приложений, предварительно скомпилированные для тестирования 2D- и 3D- графики.

  • Документация:
    • руководство по платформе Graphics Framework;
    • руководство по API Font Fusion.
  • Конфигурационные текстовые файлы:
    • конфигурационные файлы для настройки видеоустановок (инициализация графических чипов и т.д.);
    • средства адаптации для различных комбинаций дисплеев (без необходимости изменения исходного кода).
  • Примеры исходных текстов:
    • 2D-образцы: рисование прямоугольника, загрузка и вывод изображения, загрузка и вывод текста и т.д.;
    • управление слоями: включение/выключение слоев, изменение цвета рирпроекции;
    • 3D-образцы: массивы вершин, карты текстур и т.д.;
    • и др.

Если в состав конечного продукта включается графическая оболочка Photon, то для каждой среды исполнения требуется лицензия на Photon. TDK-комплект «Веб-браузер» (Web Browser Technology Development Kit) поставляется отдельно.

WebGL — технология 3D графики в интернет

WebGL — технология 3D графики в интернет

Всего лишь несколько лет назад 3D-графика в Интернет была не более чем экспериментом. Сегодня демо-приложения, 3D-презентации, игры и даже средства разработки трёхмерного контента появляются регулярно.

Трёхмерный онлайн-контент — один из основных трендов современного Интернета.

Новый уровень вовлеченности

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

Стандарт WebGL

WebGL — API для работы с 3D-графикой в веб-браузере. WebGL не требует установки плагинов и поддерживается практически всеми современными браузерами как на стационарных, так и на мобильных платформах. Технология WebGL была впервые представлена в 2007 году и продолжает активно развиваться по сей день. Сейчас это стабильное и надёжное решение, индустриальный стандарт для интерактивной 3D-графики в Интернете.

Пиши один раз, запускай везде

WebGL-приложение можно запустить на любой современной системе. Для этого не требуется даже собирать приложение отдельно для каждой платформы.

Использование WebGL радикально упрощает разработку интерактивных веб-приложений. Однажды созданный, ваш проект будет одинаково выглядеть и одинаково хорошо работать везде.

Blend4Web — решение для WebGL

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

С его помощью обычный программист или 3D-художник получает возможность просто и быстро создать полноценное веб-приложение. А команда программистов, веб-дизайнеров и художников — средство для создания веб-приложений любой сложности, даже такого, которое ни в чём не уступит standalone-проектам.

Чтобы узнать о том, как можно использовать Blend4Web для создания WebGL-приложений профессионального уровня, обратитесь к соответствующей странице продукта.

Интерактивное 3D в вебе — как применяют технологию сегодня

ADN Digital Studio поделились мыслями о роли 3D в моушене и веб-дизайне, а также показали самые популярные приемы использования 3D в вебе и постарались понять, почему 3D-технологии все еще редкость в веб-проектах.

Время от времени всех накрывает 3D-волной. Пятнадцать лет назад украшать бизнес-презентацию объемными буквами WordArt с фиолетово-оранжевым градиентом было в порядке вещей. А всего год назад приписывать «3D» ко всему подряд считалось чем-то вроде магического приворота на продажи: 3D-телевизор, 3D-окна или даже вот такое:

Сегодня 3D снова воспринимается так, как и должно, — это инструмент, который служит бизнесу и продажам.

Мы в студии ADN Digital любим, когда хищным задачам бизнеса соответствуют такие же смелые и крутые технологии. Сегодня о 3D в вебе и о том, почему технология на российском рынке веб-продакшена не используется на полную мощность.

3D в моушен-дизайне

Профессия моушен-дизайнера пришла из киноиндустрии, сегодня же это человек, который отвечает за визуальную часть видеоролика: он должен понимать в фотооборудовании, композиции, свете, цветокоррекции, уметь работать с хромакеем, монтировать, заниматься компоузингом и, конечно, 3D. У простых обывателей слова «3D в видеороликах» вызывают в памяти картинки с мультяшными героями или монстрами под ободком унитаза:

Пакет «MUSTHAVE-2020» для digital-агентств и веб-студий

RUWARD анонсировал главный коммерческий пакет MUSTHAVE-2020 для digital-агентств и веб-студий на весь 2020 год.

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

Но на деле все гораздо серьезнее. Например, вы в курсе, что в рекламе автомобилей на общих (да и порой на крупных планах) ездит не реальная машина, а ее модель? 3D часто дешевле, чем съемки настоящего автомобиля. Вспомните все эти сумасшедшие облеты камеры, пустые, как по волшебству, трассы, блестящий без пылинки кузов и салон.

А иногда заменить 3D-съемкой просто технически невозможно, или это будет очень дорого.

Аналогично с крупными планами iPhone или другой техники.

Банка Coca-Cola в рекламном ролике, по которой эротично катятся капельки конденсата, сделана из сетки, материалов и текстур.

Сникерс, который смачно ломается на два куска, льющийся на орех фундука топленый шоколад, ягоды, падающие в йогурт, — все это не реальные съемки.

3D в веб-дизайне

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

В настоящее время существует несколько популярных способов использования 3D на сайтах.

Статичный 3D-рендер как замена дорогостоящим съемкам

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

Эффект частиц

3D в браузере смотрится довольно эффектно, но есть способ сделать его еще круче — использовать партиклы (частицы).

Результат таких экспериментов: от чего-то сомнительно-аморфного…

360-обзор с помощью 3D


Довольно простой в производстве способ: создается 3D-модель объекта, ему задаются текстуры и материалы, настраивается сцена. После чего объект поворачивается на заданный градус и делается его рендер, — так получаются кадры для будущей анимации на сайте. Средствами JS кадры сшиваются — и перед нами объект, который можно вращать в двух направлениях и рассматривать.

Скролл запускает анимацию

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

К слову, так можно показать устройство продукта, что для промо и ecommerce-сайтов — бесценная находка.

Свободное вращение в браузере

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

Полный интерактивный конструктор

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

Пример, сделанный с помощью three.js, показан здесь.

3D для коммерческих проектов: проблемы

Почему в рунете веб-проекты с качественным использованием 3D можно по пальцам пересчитать?

Во-первых, для этого требуется редкое сочетание компетенций. Студия, которая умеет и программировать на WebGL, и рисовать современный дизайн, и делать 3D на хорошем уровне, — это редкость.

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

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

Что такое 3D графика?

Вступление

Вопрос о том, что же является двигателем всей компьютерной индустрии, давно заботит многих пользователей. То ли это фирма Intel, которая, не переставая, выпускает и выпускает новые процессоры. Но кто тогда заставляет их покупать? Может, во всем виноват Microsoft, который непрерывно делает свои окна больше и краше? Да нет, можно ведь довольствоваться старыми версиями программ — тем более спектр их возможностей практически не изменяется. Вывод напрашивается сам собой — во всем виноваты игры. Да, именно игры стремятся все более и более уподобиться реальному миру, создавая его виртуальную копию, хотят все более мощных ресурсов.

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

С выходом таких игр, как F19, Formula 1 и т.п., в которых приходилось уже перерисовывать весь экран, предварительно заготавливая его в памяти, всем нам пришлось обзавестись, по крайней мере, 286 процессором. Но прогресс на этом не остановился. Желание уподобить виртуальный мир в игре реальному миру усилилось, и появился Wolf 3D.

Это, можно сказать, первая 3D-игра, в которой был смоделирован какой-никакой, но все же реалистичный мир. Для его реализации пришлось использовать верхнюю (более 640 Кб) память и загнать программу в защищенный режим. Для полноценной игры пришлось установить процессор 80386. Но и мир Wolf 3D страдал недостатками. Хотя стены и были не просто одноцветными прямоугольниками, но для их закраски использовались текстуры с небольшим разрешением, поэтому поверхности смотрелись прилично лишь на расстоянии. Конечно, можно было пойти по пути наращивания разрешения текстур, вспомним, например, DOOM. Тогда нам пришлось снова перейти на более новый процессор и увеличить количество памяти. Правда, все равно, хотя изображение и улучшилось, но ему были присущи все те же недостатки. Да и плоские объекты и монстры — кому это интересно. Тут то и взошла звезда Quake. В этой игре был применен революционный подход — z-буфер, позволивший придать объемность всем объектам. Однако вся игра все равно работала в невысоком разрешении и не отличалась высокой реалистичностью.

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

Тут то и вылез производитель игровых автоматов 3Dfx, сделавший эту сказку былью с помощью своего графического процессора Voodoo. Человечество сделало еще один шаг в виртуальный мир.

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

Модель

Для изображения трехмерных объектов на экране монитора требуется проведение серии процессов (обычно называемых конвейером) с последующей трансляцией результата в двумерный вид. Первоначально, объект представляется в виде набора точек, или координат, в трехмерном пространстве. Трехмерная система координат определяется тремя осями: горизонтальной, вертикальной и глубины, обычно называемых, соответственно осями x, y и z. Объектом может быть дом, человек, машина, самолет или целый 3D мир и координаты определяют положение вершин (узловых точек), из которых состоит объект, в пространстве. Соединив вершины объекта линиями, мы получим каркасную модель, называемую так из-за того, что видимыми являются только края поверхностей трехмерного тела. Каркасная модель определяет области, составляющие поверхности объекта, которые могут быть заполнены цветом, текстурами и освещаться лучами света.

Даже при таком упрощенном объяснении конвейера 3D графики становится ясно, как много требуется вычислений для прорисовки трехмерного объекта на двумерном экране. Можно представить, насколько увеличивается объем требуемых вычислений над системой координат, если объект движется.

Роль API

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

Для приложений общего и развлекательного направления, существуют следующие API:

  • Microsoft Direct3D
  • Criterion Renderware
  • Argonaut BRender
  • Intel 3DR

Компания Apple продвигает свой собственный интерфейс Rave, созданный на основе их собственного API Quickdraw 3D.

Для профессиональных приложений, работающих под управлением WindowsNT доминирует интерфейс OpenGL. Компания Autodesk, крупнейший производитель инженерных приложений, разработала свой собственный API, называемый Heidi.
Свои API разработали и такие компании, как Intergraph — RenderGL, и 3DFX — GLide.

Существование и доступность 3D интерфейсов, поддерживающих множество графических подсистем и приложений, увеличивает потребность в аппаратных ускорителях трехмерной графике, работающих в режиме реального времени. Развлекательные приложения, главный потребитель и заказчик таких ускорителей, но не стоит забывать и о прфессиональных приложениях для обработки 3D графики, работающих под управлением Windows NT, многие из которых переносятся с высокопроизводительных рабочих станций, типа Silicon Graphics, на PC платформу. Интернет приложения сильно выиграют от невероятной маневренности, интуитивности и гибкости, которые обеспечивает применение трехмерного графического интерфейса. Взаимодействие в World Wide Web будет гораздо проще и удобнее, если будет происходить в трехмерном пространстве.

Графический ускоритель

Рынок графических подсистем до появления понятия малтимедиа был относительно прост в развитии. Важной вехой в развитии был стандарт VGA (Video graphics Array), разработанный компанией IBM в 1987 году, благодаря чему производители видеоадаптеров получили возможность использовать более высокое разрешение (640х480) и большую глубину представления цвета на мониторе компьютера. С ростом популярности ОС Windows, появилась острая потребность в аппаратных ускорителях двумерной графики, чтобы разгрузить центральный процессор системы, вынужденный обрабатывать дополнительные события. Отвлечение CPU на обработку графики существенно влияет на общую производительность GUI (Graphical User Interface) — графического интерфеса пользователя, а так как ОС Windows и приложениям для нее требуется как можно больше ресурсов центрального процессора, обработка графики осуществлялась с более низким приоритетом, т.е. делалась очень медленно. Производители добавили в свои продукты функции обработки двумерной графики, такие, как прорисовка окон при открытии и свертовании, аппаратный курсор, постоянно видимый при перемещении указателя, закраска областей на экране при высокой частоте регенерации изображения. Итак, появился процессор, обеспечивающий ускорение VGA (Accelerated VGA — AVGA), также известный, как Windows или GUI ускоритель, который стал обязательным элементом в современных компьютерах.

Внедрение малтимедиа создало новые проблемы, вызванные добавлением таких компонентов, как звук и цифровое видео к набору двумерных графических функций. Сегодня легко заметить, что многие продукты AVGA поддерживают на аппаратном уровне обработку цифрового видео. Следовательно, если на Вашем мониторе видео проигрывается в окне, размером с почтовую марку — пора установить в Вашей машине малтимедиа ускоритель. Малтимедиа ускоритель (multimedia accelerator) обычно имеет встроенные аппаратные функции, позволяющие масштабировать видеоизображение по осям x и y, а также аппаратно преобразовывать цифровой сигнал в аналоговый, для вывода его на монитор в формате RGB. Некоторые малтимедиа акселлераторы могут также иметь встроенные возможности декомпресси цифрового видео.

Разработчики графических подсистем должны исходить из требований, частично диктуемых размерами компьютерного монитора, частично под влиянием GUI, и частично под влиянием графического процессора. Первичный стандарт VGA с разрешением 640х480 пикселов был адекватен 14″ мониторам, наиболее распространенных в то время. Сегодня наиболее предпочтительны мониторы с размером диагонали трубки 17″, благодаря возможности выводить изображения с разрешением 1024х768 и более.

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

Игровые двигатели (Games engines)

Первое правило компьютерных игр — нет никаких правил. Традиционно, разработчики игр больше заинтересованы в крутой графике своих программ, чем следованию рекомендаций технарей. Не взирая на то, что в распоряжении разработчиков имеется множество трехмерных API, например — Direct3D, некоторые программисты идут по пути создания собственного 3D игрового интерфейса или двигателя. Собственные игровые двигатели — один из путей для разработчиков добиться невероятной реалистичности изображения, фактически на пределе возможностей графического программирования.

Нет ничего более желанного для разработчика, чем иметь прямой доступ к аппаратным функциям компонентов системы. Несколько известных разработчиков создали свои собственные игровые двигатели, работающие с оптимальным использованием аппаратных ускорителей графики, которые принесли им известность и деньги. Например, двигатели Interplay для Descent II и id Software для Quake, обеспечивают истинную трехмерность действия, используя наполную аппаратные функции 3D, если они доступны.

Графика без компромисов

Разговоры, ведущиеся уже довольно долгое время, о перспективах применения трехмерной графики в таких областях, как развлечения и бизнес, допредела подогрели интерес потенциальных пользователей, на рынке уже появился новый тип продуктов. Эти новые технологические решения, совмещают в себе великолепную поддержку 2D графики, соответствующую сегодняшним требованиям к Windows акселлераторам, аппаратную поддержку функций 3D графики и проигрывают цифровое видео с требуемой частотой смены кадров.
В принципе, эти продукты можно смело отнести к новому поколению графических подсистем, обеспечивающих графику без компромиссов, занимающих достойное место стандартного оборудования в настольных вычислительных системах.
Среди представителей нового поколения можно назвать, в качестве примера, следующие продукты:

  • процессор Ticket-To-Ride компании Number Nine Visual Technologies
  • серия процессоров ViRGE компании S3 Inc.
  • процессор RIVA128, разработанный совместно компаниями SGS Thomson и nVidia

Технология 3D-графики

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

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

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


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

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

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

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

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

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

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

Но вернемся в наш гоночный автомобиль. Сама дорога уже выглядит реалистично, но проблемы наблюдаются с ее краями! Вспомните, как выглядит линия, проведенная на экране не параллельно его краю. Вот и у нашей дороги появляются «рваные края». И для борьбы с этим недостатком изображения применяется anti-aliasing.

Рваные края Ровные края

Мы подходим к ключевому моменту функционирования всех 3D-алгоритмов. Предположим, что трек, по которому ездит наша гоночная машина, окружен большим количеством разнообразных объектов — строений, деревьев, людей.
Тут перед 3D-процессором встает главная проблема, как определить, какие из объектов находятся в области видимости, и как они освещены. Причем, знать, что видимо в данный момент, недостаточно. Необходимо иметь информацию и о взаимном расположении объектов. Для решения этой задачи применяется метод, называемый z-буферизация. Это самый надежный метод удаления скрытых поверхностей. В так называемом z-буфере хранятся значения глубины всех пикселей (z-координаты). Когда рассчитывается (рендерится) новый пиксел, его глубина сравнивается со значениями, хранимыми в z-буфере, а конкретнее с глубинами уже срендеренных пикселов с теми же координатами x и y. Если новый пиксел имеет значение глубины больше какого-либо значения в z-буфере, новый пиксел не записывается в буфер для отображения, если меньше — то записывается.

Z-буферизация при аппаратной реализации сильно увеличивает производительность. Тем не менее, z-буфер занимает большие объемы памяти: например даже при разрешении 640×480 24-разрядный z-буфер будет занимать около 900 Кб. Эта память должна быть также установлена на 3D-видеокарте.

Разрешающая способность z-буфера — самый главный его атрибут. Она критична для высококачественного отображения сцен с большой глубиной. Чем выше разрешающая способность, тем выше дискретность z-координат и точнее выполняется рендеринг удаленных объектов. Если при рендеринге разрешающей способности не хватает, то может случиться, что два перекрывающихся объекта получат одну и ту же координату z, в результате аппаратура не будет знать какой объект ближе к наблюдателю, что может вызвать искажение изображения.
Для избежания этих эффектов профессиональные платы имеют 32-разрядный z-буфер и оборудуются большими объемами памяти.

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

Реальный мир состоит из прозрачных, полупрозрачных и непрозрачных объектов. Для учета этого обстоятельства, применяется alpha blending — способ передачи информации о прозрачности полупрозрачных объектов. Эффект полупрозрачности создается путем объединения цвета исходного пиксела с пикселом, уже находящимся в буфере.
В результате цвет точки является комбинацией цветов переднего и заднего плана. Обычно, коэффициент alpha имеет нормализованное значение от 0 до 1 для каждого цветного пиксела. Новый пиксел = (alpha)(цвет пиксела А) + (1 — alpha)(цвет пиксела В).

Очевидно, что для создания реалистичной картины происходящего на экране необходимо частое обновление его содержимого. При формировании каждого следующего кадра, 3D-акселератор проходит весь путь подсчета заново, поэтому он должен обладать немалым быстродействием. Но в 3D-графике применяются и другие методы придания плавности движению. Ключевой — Double Buffering.
Представьте себе старый трюк аниматоров, рисовавших на уголках стопки бумаги персонаж мультика, со слегка изменяемым положением на каждом следующем листе. Пролистав всю стопку, отгибая уголок, мы увидим плавное движение нашего героя. Практически такой же принцип работы имеет и Double Buffering в 3D анимации, т.е. следующее положение персонажа уже нарисовано, до того, как текущая страница будет пролистана. Без применения двойной буферизации изображение не будет иметь требуемой плавности, т.е. будет прерывистым. Для двойной буферизации требуется наличие двух областей, зарезервированных в буфере кадров трехмерной графической платы; обе области должны соответствовать размеру изображения, выводимого на экран. Метод использует два буфера для получения изображения: один для отображения картинки, другой для рендеринга. В то время как отображается содержимое одного буфера, в другом происходит рендеринг. Когда очередной кадр обработан, буфера переключаются (меняются местами). Таким образом, играющий все время видит отличную картинку.

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

Конвейер рендеринга может быть разделен на 2 стадии: геометрическая обработка и растеризация.

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

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

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

Заключение

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

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

GPU для рабочей станциии для 3D-моделирования, анимирования и т.д.?

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

Скульптинга (Zbrush, blender)
Моделирования / анимирования (maya, blender, modo)
Рендринга в Cycles, Nuke , V-ray, Arnold
очень тяжелых сцен (сразу же вопрос: хватит ли 8 ГБ GPU на рендеры по слоям или вообще лучше композить средах, направленных на CPU, и поддерживающих только CPU-рендер, для того, чтобы отправлять сцену на рендер-ферму, вместо рендера на GPU?) Этот вопрос совсем не понятен для меня, и если можете рассказать поподробнее, буду очень признателен.

Так же, еще одна проблема в выборе GPU: Не можем определиться с брендом GPU.
AMD — выигрывает с OpenCL / Nvidia — с CUDA (и с производительностью viewport`а <2,0>?!)
Вопрос: если выбрать AMD, не имеющую CUDA, будет ли она настолько же продуктивна для Maya и для других программ, в роли рендерера, вьюпорта?
Как я понял, GPU используется в основном только для производительности viewport`а и для некоторых рендереров (Cycles), но не понятно, выполняют ли потоковые процессоры (AMD) роль CUDA и велика ли вообще разница между AMD и Nvidia (проф.-карт типа FirePro / Quadro k) при работе в вышеуказанных рабочих процессах? И в чем минусы и плюсы, если у вас был опыт в этом вопросе ?

Выбор стоит между Titan, Titan Z, GTX 980, FirePro W7100, r295х2
Так же мучает вопрос в целесообразности выбора карты в сторону потребительских карт, вместо профессиональных (firePro — quadro k5000)

Если у кого-то есть опыт, и если вы уже сталкивались со всеми проблемами подобного рода, пожалуйста поделитесь.

Обзор самых популярных 3D редакторов

Для создания компьютерной графики используют множество различных приложений. Условно их можно разделить на следующие группы:

  • Программы для цифрового скульптинга (Pixologic ZBrush, Autodesk Mudbox).
  • Игровые движки (Unreal Engine 4, Unity 5, CryEngine 3).
  • Узкоспециализированные приложения, «заточенные» под конкретные задачи (анимация жидкостей – RealFlow, создание текстур – Mari и пр.).
  • Универсальные 3D редакторы (Cinema 4D, 3Ds Max, Maya, Houidini и т.д.).

Первые три группы разберем в следующих статьях. А сегодня предлагаем обзор универсальных 3D редакторов (Full 3D Suites).

Универсальные 3D редакторы, как правило, содержат все необходимое для CG: инструменты моделирования, анимации и визуализации.

На вопросы: «Какой из пакетов лучший? Что выбрать?» нет правильных ответов. Выбор инструмента зависит от многих факторов: личных предпочтений CG-художника, поставленных целей, финансовых возможностей и т.д.

При выборе приложения мы советуем обратить внимание на следующее:

  • функционал программы;
  • удобство пользования (интуитивный интерфейс и т.д.);
  • доступность, цена.

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

Самые популярные 3D пакеты:

3Ds Max

3Ds Max – «пионер» среди 3D редакторов, очень популярный инструмент, №1 в выборе многих начинающих и продвинутых специалистов. Занимает ведущие позиции в сфере дизайна и архитектурной визуализации. Часто используется в игровой индустрии.

  • моделирование на основе полигонов, сплайнов и NURBS,
  • мощная система частиц,
  • модуль волосы/шерсть,
  • расширенные шейдеры Shader FX,
  • поддержка новых и усовершенствованных механизмов Iray и mental ray.
  • анимация толпы,
  • импорт из Revit и SketchUp,
  • интеграция композитинга.

И многое другое.

Плюсы: огромный функционал, множество плагинов и обучающей информации.

Минусы: не так прост в освоении, «старожилу» требуются серьезные обновления.

Autodesk Maya


Maya – промышленный стандарт 3D графики в кино и телевидении. Maya популярна среди крупных студий и масштабных проектов в рекламе, кино, игровой индустрии. Пакет идеален для создания анимации.

  • полный набор инструментов для NURBS- и полигонального моделирования;
  • мощные средства общей и персонажной анимации;
  • развитая система частиц;
  • технология Maya Fur (создание меха, волос, травы);
  • технология Maya Fluid Effects (моделирование жидкостей, атмосферы);
  • динамика твердых и мягких тел;
  • широкий набор средств создания динамических спецэффектов;
  • UV-текстуры, нормали и цветовое кодирование;
  • многопроцессорный гибкий рендеринг.

Плюсы: огромный функционал и возможности.

Минусы: длительное и сложное обучение, высокие требования к системе, высокая цена.

Cinema 4D

Cinema 4D – один из самых лучших и удобных 3D пакетов на сегодняшний день. Огромный функционал: от моделирования, анимации, эффектов до «лепки» и модуля BodyPaint 3D. У Cinema 4D более понятный и удобный интерфейс нежели у 3Ds Max и Maya. Широко используется в моушен-дизайне, киноиндустрии и рекламе.

Возможности:

  • полигональное и NURBS-моделирование;
  • BodyPaint 3D (модуль для создания разверток UV и текстурных карт);
  • генерация и анимация объектов;
  • персонажная анимация;
  • динамика мягких и твердых тел;
  • модуль для создания реалистичных волос;
  • система частиц Thinking Particles;
  • неплохой встроенный визуализатор.

Плюсы: легкость в освоении, интуитивный интерфейс, отличный функционал, множество обучающих материалов, тесная связь с Adobe After Effects, Houdini и т.д.

Минусы: неотлаженная система перехода между версиями.

Modo

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

  • полигональное и моделирование SDS;
  • современные инструменты анимации;
  • динамика твердых и мягких тел;
  • система рисования;
  • материал Fur (мех) для создания волос, травы и меха;
  • инструменты лепки;
  • быстрая и качественная визуализация.

Плюсы: мощный и понятный инструментарий, высокая производительность.

Минусы: мало информации.

S >

Houdini – мощный профессиональный пакет для работы с 3D графикой, в его основе процедурная, нодовая система. Houdini идеально подходит для создания сложной динамики, симуляции: частиц, жидкости, дыма, огня, имитации природных явлений и т.д. А также это отличный инструмент для создания впечатляющих визуальных эффектов. Основная область применения Houdini – киноиндустрия.

  • полигональное и NURBS-моделирование,
  • анимация (ключевая, процедурная),
  • персонажная анимация,
  • система частиц,
  • динамика твердых и мягких тел, тканей, шерсти/волос, газов и жидкостей,
  • работа с объемным звуком,
  • мощный рендер движок Mantra,
  • встроенный инструмент композитинга.

Плюсы: высококлассные спецэффекты и анимация.

Минусы: мало информации, высокая цена.

Softimage

Softimage (Autodesk Softimage, ранее Softimage/XSI) — программа для 3D анимации и создания визуальных эффектов в game-индустрии, кино и телевидении.

У Softimage была одна из самых лучших систем анимации. Благодаря уникальной системе ICE (Interactive Creative Environment — платформе визуального программирования, основанной на нодах) пакет предлагал широкую функциональность, гибкость, высокую производительность и качество.

  • мощное полигональное, а также процедурное моделирование в среде ICE;
  • физика и динамика частиц и геометрии;
  • нелинейная анимация;
  • инструменты лицевой анимации Autodesk Face Robot;
  • встроенный MentalRay.

В 2008 году компания Autodesk выкупила Softimage у Avid за 35 млн. долларов. В 2015 Autodesk объявила о прекращении продаж лицензий на Softimage и фактически избавилась от одного из самых сильных игроков на рынке. На официальном сайте предлагается перейти на 3Ds Max или Maya.

LightWave

Lightwave 3D — инструмент для 3D анимации и визуальных эффектов от компании NewNek. С давних пор является промышленным стандартом в кино и телевидении.

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

Возможности:

  • интуитивный двойной интерфейс (modeler и layout);
  • мощное полигональное моделирование;
  • развитая система анимации;
  • система частиц;
  • система снаряжения персонажа Genoma 2;
  • усовершенствованный рендеринг;
  • интерактивное динамическое наследование (Interactive Dynamic Parenting);
  • гибкая система Bullet Dynamics;

Плюсы: огромный функционал, удобный двойной интерфейс.

Минусы: не так популярен в нашей стране и странах СНГ, мало информации.

Blender

Единственный в списке бесплатный 3D пакет, который практически не уступает по функционалу платным приложениям. Blender включает в себя средства для 3D моделирования, анимации, а также набор опций для создания игр, визуальных эффектов и скульптинга. Отличная альтернатива «монстрам» 3D анимации. Благодаря поддержке Blender Foundation, программа очень быстро и стабильно развивается.

Возможности:

  • полигональное моделирование, сплайны, NURBS-кривые и поверхности;
  • режим лепки;
  • система частиц;
  • динамика твердых и мягких тел: жидкость, шерсть/волосы и т.д.;
  • скелетная анимация;
  • встроенные механизмы рендеринга и интеграция со сторонними визуализаторами;
  • редактор видео;
  • функции создания игр и приложений (Game Blender).

Плюсы: доступность, открытый код, кроссплатформенность, небольшой размер (около 50 мегабайт), широкий функционал, возможность создания игр.

Минусы: отсутствие документации в базовой поставке.

Итак, если коротко:

  • 3Ds Max – компьютерные игры, интерьеры, визуализация.

  • Maya – анимация, киноиндустрия, телевидение, клипы.
  • Cinema 4D – спецэффекты в кино и телевидении, моушен-дизайн, реклама.
  • Modo – реклама, игры, спецэффекты в кино.
  • Houdini – визуальное программирование, спецэффекты в кино.
  • Softimage – анимация и спецэффекты в кино, телевидении, играх.
  • LightWave – спецэффекты в кино, телевидении.
  • Blender – персонажная анимация, создание игр.

В заключение хочется отметить: 3D редактор – всего лишь инструмент, раскрыть потенциал которого может только сам дизайнер, CG художник. Освоив в полной мере один пакет, изучить другие не составит труда.

Удачи Вам в обучении и работе!

Комментарии: 29

Чтобы оставить комментарий или поделиться своей работой, пожалуйста, авторизуйтесь

Запорожский Иван 16 Марта 2020 — 00:55:39

Здравствуйте!
Хочу снимать влог с анимированым персонажем по типу бурундуков из фильма Элвин бурундуки. Подскажите пожалуйста, в каких программах проще будет реализовать эту задумку? Наверное Blender и Nuke? Я никогда ничем подобным не занимался, хотелось бы сразу заняться изучением самых подходящих программ. Какие техники необходимо изучить? Риггинг, трекинг, композинг, что еще? Заранее благодарю.

Евгений Гончаров 16 Марта 2020 — 08:59:23

Здравствуйте, для персонажки (моделирование, риггинг, анимация) лучше всего подходит Maya, у нас есть курс по ней: https://photoshop-master.org/disc206/ , для композитинга можете выбрать Nuke, либо After Effects, который куда проще в изучении.

kseld 7 Сентября 2020 — 01:15:59

А чем собственно Cinema 4D плоха в gamedevelopment, да и в разработке игр в целом?

jaynifer 30 Июля 2020 — 00:12:45

Подскажите, пожалуйста, через какую программу можно добавить на фото вот такие 3D эффекты? (бэкграунд) http://ver1sa.deviantart.com/art/Fire-Keeper-Eyes-662498854

Евгений Гончаров 30 Июля 2020 — 15:43:28

О каких именно эффектах речь?

pichugina_olga 2 Июля 2020 — 03:39:39

выбрала cinema R18 Studio. Но не знаю , мне там скульптинг не очень нравится ,
пока взяла на тестирование , срок большой )))) Посмотрю , подумаю .

ayashkin2014 4 Января 2020 — 15:54:25

Я выбираю Blender потому что моделировать и роботать бесплатно и не нужно платить за лицензию .

ayashkin2014 4 Января 2020 — 15:48:09

Не чего личного, ребят, простоя планирую создать мультсериал на YouTube

sanellom 10 Сентября 2015 — 09:03:21

Главное в освоении любого пакета — наличие ОООчень много свободного времени.

abdirazakov_askar 2 Сентября 2015 — 08:18:18

Что можете советовать начинающим как я?
у 3D Max и C4D почти многие функции одинаковые?
Не могу выбрать между этими)

Евгений Гончаров 2 Сентября 2015 — 11:46:02

Советую Cinema 4D, проще и удобнее

Edgar Davids 28 Августа 2015 — 13:06:33

неважно в чем,главное—-результат)))

VideoSmile 31 Августа 2015 — 19:16:20

max_vnuk 23 Августа 2015 — 13:49:37

Blender – персонажная анимация, создание игр И СПЕЦЭФФЕКТЫ В ФИЛЬМАХ! А ЕЩЁ ТРЕКИНГ. И документация и подробности http://www.blender.org. Вы вообще где информацию брали?

Гульнара Абдуллина 23 Августа 2015 — 19:40:32

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

max_vnuk 24 Августа 2015 — 10:31:05

В статье и половины возможностей Блендера не указана. Например трекинг. Для фильмов Блендер тоже использовался. И графика там получалась гораздо лучше чем три дэ эс максе.

24 Августа 2015 — 11:20:27

А ещё в статье не указано, что в C4D есть трекинг! А ещё скульптинг! А ещё текстурирование! А ещё.
Детский сад какой-то.
Кому надо сам прочитает, что есть в блендере. Прочитает и забудет.

max_vnuk 24 Августа 2015 — 12:02:40

В синеме нет трекинга. По крайней мере в r12


24 Августа 2015 — 12:07:10

Откуда в вашей деревне электричество.

max_vnuk 24 Августа 2015 — 20:27:48

r12 версии синимы хватает.

midlweb 20 Августа 2015 — 20:09:24

Когда ожидать ваш новый курс?! Вроде уже давно прошли озвученные вами сроки, очень хочется купить))

VideoSmile 20 Августа 2015 — 21:38:34

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

wicry 20 Августа 2015 — 19:21:49

Ребят, извините, что не по теме, но скажите уже наконец, что там с курсом «Супер Моушн»?!

И ещё вопрос. Cinema 4D ведь также неплохо подходит и для сождания игр? Я, конечно, понимаю, что «спецэффекты в кино и телевидении, моушен-дизайн, реклама» — это основное направление этого 3D пакета, но будет ли удобно, именно УДОБНО, создавать модельки для игрового движка именно в синеме, или же всё таки стоит рассмотреть другой 3D пакет??
P.S.: Спрашиваю, потому что знаю только синему и сейчас изучаю Unreal Engine 4.

VideoSmile 20 Августа 2015 — 21:39:34

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

Мы знаем людей, которые прекрасно создают игровые модели в C4D. Насколько это удобно, сказать сложно.

wicry 22 Августа 2015 — 18:34:19

Вы хоть анонсируйте курс. А то когда о нём нет никаких новостей становится, как минимум, печально. Я думаю, меня многие поддержат в этом)))

VideoSmile 22 Августа 2015 — 23:14:34

Хорошо Ближе к выходу будет большой анонс с точной датой релиза.

Владимир Мелещнко 20 Августа 2015 — 18:51:30

Гудини и для моушн дизайна неплохо годится.
ИМХО.

VideoSmile 20 Августа 2015 — 21:39:47

Nurbek 22 Июля 2020 — 12:23:15

Еще уроки из рубрики «Статьи»

Мини-курс «Фишки и лайфхаки Adobe Illustrator»

В этой серии уроков мы познакомим вас с самыми крутыми фишками и лайфхаками программы Adobe Illustrator! При помощи них вы откроете для себя новые возможности программы и научитесь работать

Мини-курс «World Machine для новичков»

В этой серии уроков вы познакомитесь с программой World Machine и научитесь создавать при помощи неё собственные миры.

Конфигурации ПК для работы с видео и графикой (01/10/19)

Приветствую участников сообщества Videosmile! Меня зовут Старков Даниил и я уже некоторое время занимаюсь подбором комплектующих для ПК, которые предназначены для работы с видео.

Курс «Супер Photoshop»

Друзья, рады вам сообщить, что курс «Супер Photoshop» стал доступен для заказа.

Мини-курс «Руководство по выживанию на фрилансе»

В этом мини-курсе вы найдёте ответы на все самые популярные вопросы, которые волнуют любого фрилансера. Особое внимание будет уделено следующим темам:

Мини-курс «Композитинг в Nuke»

В этом мини-курсе вы познакомитесь с программой Nuke, которая является лучшей программой для композитинга. Именно эту программу используют все ведущие студии при создании кинофильмов.

20 бесплатных программ для 3D-моделирования

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

Выбор оптимального программного обеспечения для моделирования часто бывает трудным, так как непросто найти программу, в которой был бы весь необходимый функционал. FreelanceToday предлагает вашему вниманию 20 бесплатных программ для 3D-моделирования.

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

Доступно для: Windows, | OS X | Linux

Daz Studio – это мощное и при этом совершенно бесплатное программное обеспечение для трехмерного моделирования. Нельзя сказать, что это легкий для освоения инструмент – новичкам придется долго изучать возможности программы. Создатели программы позаботились о пользовательском опыте, но удобство Daz Studio удастся оценить далеко не сразу. Одной из фишек программы является создание 3D-изображений с GPU ускорением во время рендеринга, что дает возможность создавать очень реалистичные модели. Также в Daz Studio имеется поддержка создания сцен и функционал для анимации моделей.

Доступно для: Windows, | OS X

Бесплатное программное обеспечение для 3D-моделирования Open SCAD создано для серьезного проектирования (промдизайн, интерьеры, архитектура). Художественные аспекты создателей программы интересовали в гораздо меньшей степени. В отличие от других программ подобного плана, Open SCAD не является интерактивным инструментом – это 3D-компилятор, который отображает детали проекта в трехмерном виде.

Доступно для: Windows, | OS X | Linux

Программа AutoDesk 123D – это большой набор различных инструментов для CAD и 3D-моделирования. С помощью программы можно проектировать, создавать и визуализировать практически любые 3D-модели. AutoDesk также поддерживает технологию 3D-печати. Основной сайт AutoDesk 123D имеет несколько сателлитов, где можно найти множество интересных бесплатных 3D-моделей, с которыми можно поэкспериментировать или просто использовать их в личных целях.

Доступно для: Windows, | OS X | IOS |

Meshmixer 3.0 позволяет проектировать и визуализировать 3D-конструкции путем объединения двух или нескольких моделей всего за несколько простых шагов. В программе для этого имеется удобная функция «cut and paste», то есть можно вырезать из модели нужные части и вставлять их в другую модель. Программа даже поддерживает лепку – пользователь может создавать виртуальную скульптуру, формируя и уточняя поверхность точно так же, как если бы он лепил модель из глины. И все это в режиме реального времени! Программа поддерживает 3D-печать, готовые модели полностью оптимизированы для отправки в принтер.

Доступно для: Windows, | OS X


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

Доступно для: Windows

Бесплатная программа 3D Crafter предназначена для 3D-моделирования в режиме реального времени и создания анимаций. Основная фишка данного редактора – интуитивно понятный подход «drag-and-drop». Сложные модели могут быть построены с помощью простых форм, программа поддерживает скульптурное моделирование и 3D-печать. Это один из самых удобных инструментов для создания анимации.

Доступно для: Windows

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

Доступно для: Windows

Бесплатное программное обеспечение LeoCAD – это система автоматизированного проектирования виртуальных моделей LEGO. Есть версии для Windows, Mac OS и Linux. Программа может стать хорошей альтернативой Lego Digital Designer (LDD), так как имеет простой интерфейс, поддерживает ключевые кадры и работает в режиме анимации. Именно поддержка анимации выделяет LeoCAD на фоне других программ подобного плана.

Доступно для: Windows, | OS X | Linux

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

Доступно для: Windows, | OS X

Netfabb – это не только программа для просмотра интерактивных трехмерных сцен, с его помощью можно анализировать, редактировать и изменять 3D-модели. Программа поддерживает 3D-печать и является самым легким и простым инструментом с точки зрения установки и использования.

Доступно для: Windows, | OS X | Linux

Бесплатная программа NaroCad – это полноценная и расширяемая система автоматического проектирования, основанная на технологии OpenCascade, и работающая на платформах Windows и Linux. В программе имеется весь необходимый функционал, имеется поддержка основных и усовершенствованных операций трехмерного моделирования. Функции программы могут быть расширены с помощью плагинов и программного интерфейса.

Доступно для: Windows, | Linux

LEGO Digital Designer позволяет строить трехмерные модели с использованием виртуальных кирпичиков (блоков) конструктора LEGO. Результат можно экспортировать в различные форматы и продолжить работу в других 3D-редакторах.

Доступно для: Windows, | OS X

Бесплатную программу ZCAD можно использовать для создания 2D и 3D- чертежей. Редактор поддерживает различные платформы и обеспечивает большие углы обзора. Наличие множества удобных инструментов, позволяет решить большинство проблем, связанных с моделированием трехмерных объектов. Пользовательский интерфейс программы простой и понятный, что существенно облегчает процесс рисования. Готовый проект можно сохранить в формате AutoCAD и других популярных 3D-форматах.

Доступно для: Windows, | Linux

Бесплатная версия Houdini FX, Houdini Apprentice, пригодится студентам, художникам и любителям, создающим некоммерческие проекты трехмерных моделей. Программа обладает несколько урезанным, но вместе с тем достаточно широким функционалом и тщательно продуманным пользовательским интерфейсом. К недостаткам бесплатной версии можно отнести водяной знак, который отображается на 3D-визуализации.

Доступно для: Windows, | OS X | Linux

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

Доступно для: Windows

FreeCAD – это параметрический 3D-моделлер, разработанный для создания реальных объектов любого размера. Пользователь может легко изменить дизайн, используя историю модели и изменяя отдельные параметры. Программа мультиплатформенная, умеет считывать и записывать различные форматы файлов. FreeCAD позволяет создавать собственные модули и затем использовать их в дальнейшей работе.

Доступно для: Windows, | OS X | Linux

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

Доступно для: Windows, | Linux

Программу MeshMagic можно использовать для 3D-рендеринга файлов, а также для создания двухмерных объектов или их конвертации в 3D. Программное обеспечение имеет интуитивно понятный интерфейс и может использоваться для решения самых разных задач. В настоящее время Mesh Magic поддерживает только Windows. Результат сохраняется в популярном формате STL, который можно открыть и редактировать в большинстве онлайн и оффлайн инструментов для 3D-моделирования.

Доступно для: Windows

Open Cascade – это комплект разработчика программного обеспечения, предназначенный для создания приложений, связанных с 3D-CAD. Он включает в себя специальные, разработанный сообществом C++ библиотеки классов, которые можно использовать для моделирования, визуализации и обмена данных, а также для быстрой разработки приложений.

Доступно для: Windows, | OS X | Linux

Виртуализация рабочих станций с использованием платформы NV >

Индустрия проектирования, дизайна и визуализации интенсивно выходит в облака. Сейчас ни кого не удивить словосочетанием «посчитаем и сохраним в облаке», а для многих студий это может дать большие возможности в экономии средств и развертывании IT-инфраструктуры и привлечения работников с внешней стороны (аутсорсинг).
Одним из серьезных препятствий применения виртуализации в дизайне предыдущих лет являлся вывод в облака высокопроизводительных рабочих станций используемых для проектирования в пакетах CAD и DCC. В первую очередь это было обусловлено отсутствием соответствующего оборудования, особенно графических процессоров (GPU) которые так необходимы в работе с ресурсоемкими CAD и DCC приложениями. В 2012 году компания NVIDIA выпустила первые продукты линейки GRID ориентированные на применение в виртуальных средах и предназначенные для виртуализации рабочих станций. К NVIDIA подключились такие известные компании разработчики платформ и инструментов виртуализации, как Citrix, VMware, Microsoft и за три года представили рынку комплексные решения для виртуализации с поддержкой GPU и Виртуализированных GPU (vGPU). Затем к новому направлению стали присоединяться разработчики прикладных приложений, такие как Autodesk, Adobe и другие. Стали разрабатываться новые модели лицензирования по подписке и выполняться оптимизация приложений и лицензий под применение в виртуальных средах.
В представленной вашему вниманию статье рассматриваются основные принципы виртуальных рабочих станций и технологии виртуализации, какие возможности получают пользователи при использовании виртуализации с поддержкой полноценных вычислений на GPU. Как ведут себя профессиональные графические приложения, и какие возможности графических подсистем поддерживаются при работе на виртуальной рабочей станции.
Материал подготовлен при поддержке наших старых друзей, — компании FORSITE, любезно предоставившей тестовую платформу с несколькими виртуальными машинами в различных конфигурациях, а также всю необходимую информацию по виртуализации рабочих станций с поддержкой полноценного ускорения графики.

Графические ускорители 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.

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 графики и анимации

Трехмерная графика в современном мире

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

Разглядывая рекламный щит с изображением интерьера комнаты или рекламный ролик о мороженном, наблюдая за кадрами остросюжетного фильма, мы и не догадываемся, что за всем этим стоит кропотливая работа мастера 3d графики.

Трехмерная графика это

3D графика (трехмерная графика) — это особый вид компьютерной графики – комплекс методов и инструментов, применяемых для создания изображений 3д-объектов (трехмерных объектов).

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

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

Применение трехмерной графики

3d технологии графики и технологии 3d печати проникли во многие сферы человеческой деятельности, и приносят колоссальную прибыль.

Трехмерные изображения ежедневно бомбардируют нас на телевидении, в кино, при работе с компьютером и в 3D играх, с рекламных щитов, наглядно представляя всю силу и достижения 3д-графики.

Достижения современного 3д графики используются в следующих отраслях

  1. Кинематограф и мультипликация – создание трехмерных персонажей и реалистичных спецэффектов.Создание компьютерных игр – разработка 3d-персонажей, виртуальной реальности окружения, 3д-объектов для игр.
  2. Реклама – возможности 3d графики позволяют выгодно представить товар рынку, при помощи трехмерной графики можно создать иллюзию кристально-белоснежной рубашки или аппетитного фруктового мороженного с шоколадной стружкой и т.д. При этом в реального рекламируемый товар может иметь немало недостатков, которые легко скрываются за красивыми и качественными изображениями.
  3. Дизайн интерьеров – проектирование и разработка дизайна интерьера также не обходятся сегодня без трехмерной графики. 3d технологии дают возможность создать реалистичные 3д-макеты мебели (дивана, кресла, стула, комода и т.д.), точно повторяя геометрию объекта и создавая имитацию материала. При помощи трехмерной графики можно создать ролик, демонстрирующий все этажи проектируемого здания, который возможно еще даже не начал строиться.

Этапы создания трехмерного изображения

Для того чтобы получить 3д-изображение объекта необходимо выполнить следующие шаги

  1. Моделирование – построение математической 3д-модели общей сцены и ее объектов.
  2. Текстурирование включает наложение текстур на созданные модели, настройка материалов и придание моделям реалистичности.
  3. Настройка освещения.
  4. Создание анимации (движущихся объектов).
  5. Рендеринг – процесс создания изображения объекта по предварительно созданной модели.
  6. Композитинг или компоновка – постобработка полученного изображения.

Моделирование – создание виртуального пространства и объектов внутри него, включает создание различных геометрий, материалов, источников света, виртуальных камер, дополнительных спецэффектов.

Наиболее распространенными программными продуктами для 3d моделирования являются: Autodesk 3D max, Pixologic Zbrush, Blender.

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

Освещение — создание, установка направления и настройка источников освещения в созданной сцене. Графические 3д-редакторы, как правило, используют следующие виды источников света: spot light (расходящиеся лучи), omni light (всенаправленный свет), directional light (параллельные лучи) и др. Некоторые редакторы дают возможность создания источника объемного свечения (Sphere light).

Анимация – создание движущихся объектов, а точнее имитации движения модели. Современные 3д-редакторы содержат множество инструментов для создания инструментов, существуют и специализированные программные продукты для создания анимации с инструментами для построение трехмерных моделей.

Рендеринг – преобразование трехмерной модели предмета в «плоское» изображение. Существует несколько типов технологии рендеринга, каждая из которых имеет свои плюсы и минусы: сканлайн, z-буфер, трассировка лучей, глобальное освещение.

Заказать услуги 3d моделирования и создание высококачественной трехмерной графики вы можете у компании KLONA – профессионала в области 3d технологий.

3D-графика в облаках

NVIDIA GRID K1 NVIDIA GRID K2
Чип 4 × GK107 2 × GK104
Частота ядра 850 MHz 745 MHz
Частота памяти 891 MHz 2.5 GHz
Ядра NVIDIA CUDA 768 (192 на GPU) 3072 (1536 на GPU)
Объем памяти 16 GB (4 GB на GPU) 8 GB (4 GB на GPU)
Шина памяти 128-bit DDR3 256-bit GDDR5
Конфигурация памяти 32 блока по 256M × 16 DDR3
Коннекторы дисплеев Нет Нет
Питание 1x 6-pin PCI Express коннектор 1x 8-pin PCI Express power connector 1

1x 6-pin PCI Express power connector

Общая мощность платы 130 W 225 W
Сергей Ковылов (слева) и Сергей Халяпин считают, что виртуализация 3D-графики пригодится многим пользователям

Сейчас уже никого не удивишь виртуализированным десктопом. Но виртуализированная рабочая станция с полноценной 3D-графикой — такого еще не было. Компании Nvidia и Citrix решили заполнить этот пробел, представив совместное решение, которое включает новую графическую карту Nvidia VGX K2 и системы виртуализации Citrix XenServer и XenDesktop с поддержкой протокола HDX 3D Pro.

Рассказывая о графическом компоненте этого решения, Сергей Ковылов, системный архитектор профессиональных решений Nvidia, подчеркнул, что с выпуском карты VGX компания вышла в новый сегмент — облачный. А идея заключается в том, чтобы позволить нескольким пользователям работать с одним графическим чипом, т. е. разделить графические ресурсы одного GPU между несколькими виртуальными машинами. “С любого устройства независимо от той ОС, которая на нем установлена, можно будет получить доступ к любым Windows-приложениям, — объяснил Сергей Ковылов. — В результате даже пользователи смарфонов и планшетов смогут работать с тяжелыми графическими приложениями, такими как САПР или PLM”.

По мнению Nvidia, такой функционал пригодится проектным и дизайнерским компаниям для организации удаленных рабочих станций, так как он позволяет защитить интеллектуальную собственность. Ведь вся ценная информация будет храниться централизованно на сервере, а пользователь сможет работать только с картинкой. “Но для этого нужно, чтобы с переходом на виртуальные рабочие станции процесс проектирования не ухудшался. Поэтому требуется аппаратная поддержка API, а не перехват обращений к графической карте, замедляющих работу”, — сказал Сергей Ковылов.

Эти требования были учтены при создании видеокарты VGX K2, изначально ориентированной на виртуализацию графических рабочих станций. В ней установлены два графических чипа с архитектурой Kepler, у которых суммарное число ядер CUDA равно 3072. Карта потребляет 225 Вт. Ключевой технологией, благодаря которой стала возможна аппаратная виртуализация графического процессора, является гипервизор Nvidia VGX, позволяющий виртуальной машине напрямую взаимодействовать с GPU.

Гипервизор применяется также и в карте VGX K1, основанной на четырёх чипах начального уровня (общее количество ядер CUDA равно 768) и предназначенной для виртуализации десктопов с менее высокими требованиями к производительности графики.

Выпуск обеих видеокарт намечен на начало 2013-го. “Но они будут продаваться не отдельно, а только в составе серверов Cisco, Dell, IBM, HP и Supermicro, которые обеспечат все необходимые условия для совместимости с другими компонентами и охлаждения. Кроме того, карты будут комплектоваться программным стеком, включающим системы Citrix XenServer и XenDesktop”, — сказал Сергей Ковылов.

Дело в том, что для виртуализации карт требуется специальное ПО. Помимо продуктов Citrix платы совместимы со средствами виртуализации десктопов Microsoft и VMware, но эти решения обеспечивают лишь режим удаленного дисплея, а система Citrix XenDesktop 5.6 Feature Pack 1 в сочетании с платой VGX K2 позволит организовать виртуальную графическую станцию. Правда, сейчас реализован режим “один пользователь — один GPU”, т. е. к одной карте VGX K2 можно подключить две графические рабочие станции, но в первой половине 2013-го с появлением новой версии XenDesktop с кодовым названием Excalibur появится возможность программно разделить графические ресурсы карты между несколькими пользователями.

По словам Сергея Халяпина, руководителя системных инженеров Citrix Systems в России и СНГ, ключевым моментом с точки зрения Citrix является протокол HDX — фактически наследник известного прокола ICA, дополненный мультимедийными возможностями. “Несколько лет назад Citrix расширила HDX, представив технологию HDX 3D Pro, которая позволяет использовать часть графических ядер CUDA в составе карты Nvidia, чтобы сжимать поток данных, идущий от клиентской машины к графическому устройству. Ведь при работе с профессиональной графикой начинаются сложности: экраны большие, картинка меняется часто, и в результате графический поток в локальной сети достигает 60—100 Мбит/с, что затрудняет работу через WAN-канал, — объяснил Сергей Халяпин. — Применение HDX 3D Pro позволяет сократить требования к пропускной способности сети. С выходом XenDesktop 5.6 Feature Pack 1 минимум составляет 1 Мбит/с на одного пользователя с одним монитором”.

Сейчас технология HDX 3D Pro оптимизирована для платформ Windows и Linux, а в следующей версии Excalibur появится поддержка мобильных платформ и Mac OS. Кроме того, в этой версии реализована возможность использования CUDA-ядер для математических вычислений и поддержка API, которая позволит гипервизору разделять ресурсы графического ускорителя, чтобы каждая виртуальная рабочая станция была обеспечена виртуализированной 3D-картой.

Цукерберг рекомендует:  Обучение - Скромный архитектор
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих