Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Шесть этапов работы 3D-конвейераСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
Большинство приложений трехмерной графики, в том числе игр, при построении объемных сцен придерживаются определенной последовательности действий, в совокупности составляющей ЗD-конвейер. Итогом работы ЗD-конвейера является отрисовка (рендеринг) результирующего изображения на дисплее компьютера. Группу операции, выполняющих обособленные промежуточные действия, принято называть этапом, или стадией ЗD-конвейера. Описываемая ниже последовательность операций отнюдь не является жестко заданной, а скорее общепринятой в современных графических подсистемах. При конкретной реализации на программном и аппаратном уровнях могут появляться существенные отличия, однако смысловое содержание блоков практически не меняется. Итак, на сегодняшний день процесс визуализации трехмерной сцены на экране компьютера выглядит в общих чертах следующим образом. Низкоуровневые графические API Шейдеры, шейдерные языки Ше́йдер (англ. Shader; схема затемнения, программа построения теней) — это программа для одной из ступеней графического конвейера, используемая втрёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затемнение, смещение поверхности и эффекты пост-обработки. Программируемые шейдеры гибки и эффективны. Сложные с виду поверхности могут быть визуализированы при помощи простых геометрических форм. Например, шейдеры могут быть использованы для рисования поверхности из трёхмерной керамической плитки на абсолютно плоской поверхности. Чтобы понять, что такое шейдер, разберемся для начала, как видео карта рисует примитивы (треугольники, полигоны и др.) На вход поступают данные о каждой вершине примитива. Например, положение вершины в пространстве, нормаль и текстурные координаты. Эти данные называются вершинными атрибутами (vertex attributes). GPU на их основе вычисляет выходные значения: положение вершины в экранных координатах, цвет вершины, рассчитанный в зависимости от освещения и т.д. До выхода видео карт GeForce 3 и Radeon 8500 этот процесс был неуправляемым. Если вас, например, не устраивали те формулы, по которым считается освещение в OpenGL, и вы хотели применить свои, то ничего нельзя было поделать. Приходилось либо довольствоваться тем, что умеет GPU, либо выполнять расчеты для каждой вершины на процессоре, что намного медленнее. Решением этой проблемы стали вертексные программы (в Direct3D они называются вертексные шейдеры). Вертексная программа - это программа, написанная на специальном языке низкого уровня, которая выполняется на GPU и преобразует входные вертексные атрибуты в выходные, которые поступают на вход пиксельного шейдера. Важной особенностью вертексных и пиксельных программ является то, что все инструкции работают с векторами. Например, чтобы посчитать скалярное произведение, надо выполнить всего лишь одну инструкцию, а не 5 (2 сложения и 3 умножения), как на CPU. Благодаря этому можно выполнить массу операций небольшим числом инструкций. Например, умножение матрицы на вектор - всего 4 инструкции. А если инструкций мало, то скорость выполнения такой программы довольно высокая. Шейдерные языки Впервые использованные в системе RenderMan компании Pixar, шейдеры получали всё большее распространение со снижением цен на компьютеры. Основное преимущество от использования шейдеров — их гибкость, упрощающая и удешевляющая цикл разработки программы, и при том повышающая сложность и реалистичность визуализируемых сцен. Шейдерные языки обычно содержат специальные типы данных, такие как матрицы, семплеры, векторы, а также набор встроенных переменных и констант для удобной интеграции со стандартной функциональностью 3D API. Поскольку компьютерная графика имеет множество сфер приложения, для удовлетворения различных потребностей рынка было создано большое количество шейдерных языков. Профессиональный рендеринг Данные шейдерные языки ориентированы на достижение максимального качества визуализации. Описание свойств материалов сделано на максимально абстрактном уровне, для работы не требуется особых навыков программирования или знания аппаратной части. Такие шейдеры обычно создаются художниками с целью обеспечить «правильный вид», подобно наложению текстуры, источников света и другим аспектам их работы. Обработка таких шейдеров обычно представляет собой ресурсоёмкую задачу. Совокупная вычислительная мощность, необходимая для обеспечения их работы, может быть очень велика, так как используется для создания фотореалистичных изображений. Основная часть вычислений при подобной визуализации выполняется большими компьютерными кластерами. Шейдерный язык RenderMan Шейдерный язык RenderMan, описанный в Спецификации интерфейса RenderMan, является фактическим стандартом для профессионального рендеринга. APIRenderMan, разработанный Робом Куком, используется во всех работах студии Pixar. Он также является первым из реализованных шейдерных языков. Шейдерный язык Gelato NVIDIA Gelato представляет собой оригинальную гибридную систему рендеринга изображений и анимации трехмерных сцен и объектов, использующую для расчетов центральные процессоры и аппаратные возможности профессиональных видеокарт серии Quadro FX. Основополагающим принципом, которого неукоснительно придерживаются разработчики, является бескомпромиссное качество финального изображения, не ограниченное ничем, в том числе — современными возможностями видеокарт. Как производственный инструмент, способный создавать конечный продукт высокого качества, Gelato предназначен для профессионального использования в таких областях как кино, телевидение, промышленный дизайн и архитектурные визуализации. Open Shading Language Open Shading Language (OSL) - представляет собой небольшой, но богатый язык для программируемых шейдеров в развитых рендерах и других приложениях, идеально подходит для описывающих материалов, света, перемещения и получения изображения. OSL - был разработан Sony Pictures Imageworks для использования в своем внутреннем рендере и используется для анимационных фильмов и визуальных эффектов. OSL используется в пакете для создания трёхмерной компьютерной графики Blender.
|
||||
Последнее изменение этой страницы: 2016-04-21; просмотров: 1246; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.75.117 (0.009 с.) |