архитектурный визуализация

Глава 2 - API трехмерной графики netlib.narod.ru< Назад | Оглавление | Далее > API трехмерной графики Итак, мы увидели, как видеокарта выполняет визуализацию, но большой фрагмент головоломки все еще отсутствует. Нам необходима возможность сообщить аппаратуре, какую геометрию мы хотим визуализировать архитектурный визуализация как. Мы нуждаемся в программном интерфейсе, который позволяет взаимодействовать с оборудованием. У первой потребительской видеокарты с аппаратным ускорением трехмерной графики, 3Dfx, был собственный API называвшийся Glide. Он позволял взаимодействовать непосредственно с аппаратурой архитектурный визуализация визуализировать вашу геометрию. Однако API, являющийся собственностью производителя оборудования имеет один большой недостаток. Когда другие компании также выпустили собственные видеокарты с аппаратным ускорением трехмерной графики, разработчикам стало практически невозможно писать приложения, которые бы одинаково работали на всех видеокартах. Требовался более стандартизованный архитектурный визуализация не привязанный к конкретной аппаратуре API для трехмерной визуализации. Ответом на эту потребность стали драйвера OpenGL архитектурный визуализация Microsoft Direct3D. OpenGL Разработку OpenGL начала Silicon Graphics, Inc (SGI) в конце 1980 годов. Целью разработки было создание многоцелевого, независимого от платформы API для трехмерной графики. Версия 1.0 OpenGL API вышла в 1990 году. С 1992 года развитием OpenGL управляет ARB (Наблюдательный совет архитектуры OpenGL). В наблюдательный совет входят представители ведущих производителей видеокарт архитектурный визуализация лидеров индустрии, таких как NVIDIA, ATI Technologies, IBM, Intel, SGI архитектурный визуализация многих других. Задачей ARB является усовершенствование стандарта архитектурный визуализация поддержка спецификаций OpenGL, чтобы они соответствовали текущим архитектурный визуализация будущим потребностям индустрии. Текущая версия OpenGL имеет номер 1.5. Отсюда видно, что OpenGL меняется не часто. Однако ARB упорно трудится над новой версией спецификаций, которая будет использовать все преимущества новых технологий. Изначально OpenGL разрабатывался для высокопроизводительных графических станций, архитектурный визуализация до недавнего времени это мешало его полноценному использованию на потребительских видеокартах. С появлением таких нововведений как мультитекстурирование, вершинные архитектурный визуализация пиксельные шейдеры, спецификации API отстали от жизни. Поэтому многие производители видеокарт создавали расширения стандарта, соответствующие их требованиям архитектурный визуализация последним инновациям. Однако за несколько прошедших лет среди производителей оборудования почти не было согласия по вопросу о расширениях что привело к появлению многих запатентованных расширений, которые могли работать только с определенным оборудованием. ARB упорно работает над новыми спецификациями, чтобы обеспечить более согласованный набор возможностей архитектурный визуализация лучшее взаимодействие между производителями, гарантирующее большую совместимость с будущими расширениями. OpenGL предлагает набор из нескольких сотен функций, предоставляющих простой доступ к большинству возможностей, поддерживаемых видеокартой. Внутри OpenGL действует как простой конечный автомат. С помощью API вы можете устанавливать значения различных параметров, управляя таким образом состоянием автомата, в том числе такими вещами, как цвет, освещение, смешивание архитектурный визуализация т.д. Используя тот же самый API, вы можете передавать аппаратуре данные о геометрии архитектурный визуализация команды визуализации, которые будут учитывать состояния внутреннего автомата OpenGL. В центре OpenGL лежит конвейер визуализации; независимо от того, программно он реализован или аппаратно, базируется он на тех принципах, которые обсуждались ранее в этой главе. В целом идея проста, архитектурный визуализация большинство усилий за рамками OpenGL направлены на гарантию поддержки текущего архитектурный визуализация будущего оборудования, архитектурный визуализация также на обеспечение кросс-платформенной среды разработки. DirectX архитектурный визуализация Direct3D После выхода Windows 95 большая часть игр по-прежнему разрабатывалась для DOS. Microsoft решила, что разработчикам игр пришла пора переезжать с устаревшей DOS на более современную платформу Windows, чтобы увеличить ее популярность. Однако Windows не была хорошей игровой платформой, поскольку ее внутренний графический API имел слишком много уровней абстракции, предназначался для разработки пользовательских интерфейсов и, по этим причинам, работал очень медленно! Тогда Microsoft решила создать API для разработчиков игр, который позволял бы более прямой доступ к аппаратуре архитектурный визуализация обеспечивал приемлемую скорость работы игр под Windows. Вместо того чтобы с нуля разрабатывать собственный API, Microsoft обратила внимание на перспективный API трехмерной графики, разработанный компанией RenderMorphics. Это был небольшой проект компании, который она демонстрировала на выставках. Microsoft решила использовать этот API архитектурный визуализация включила его в свою разработку, известную в то время под названием Game SDK. В конечном итоге Game SDK был переименован в DirectX 1.0. Но в то время этот API не получил широкого признания, поскольку был медленным, плохо структурированным архитектурный визуализация содержал много ошибок. К чести Microsoft следует отметить, что она не забросила эту идею через несколько лет, когда выяснилось, что она работает не так, как планировалось. Работы продолжались с учетом предложений архитектурный визуализация отзывов разработчиков. В 1998 году появилась первая действительно жизнеспособная версия SDK под названием DirectX 3.0. С этого момента API обрел законченную форму архитектурный визуализация стал распространяться среди разработчиков. За прошедшие годы Microsoft выпустила версии 5, 6, 7, 8 и, наконец, последнюю на сегодняшний день, версию 9.0. Каждая новая версия работала лучше архитектурный визуализация предлагала новые возможности, требуемые сообществом разработчиков. Большим шагом в эволюции DirectX стала версия 8.0, где впервые была включена поддержка ныне широко известной архитектуры вершинных архитектурный визуализация пиксельных шейдеров. Структура Direct3D, да архитектурный визуализация DirectX в целом, значительно отличалась от OpenGL. Однако с течением времени, DirectX постепенно становится все более похож на OpenGL. Не углубляясь в детали, я лишь упомяну, что DirectX основан на модели COM-объектов. Это означает, что вы создаете указатели на классы архитектурный визуализация используете их, вместо простого вызова функций, который не позволяет ясно видеть взаимосвязи. Таким образом, DirectX лучше структурирован, чем OpenGL. Что лучше? Продолжительные дебаты архитектурный визуализация масштабные сражения разворачиваются по вопросу о том, какой API лучше: Direct3D или OpenGL. С одной стороны, Direct3D архитектурный визуализация DirectX работают только на платформе Windows, что не оставляет выбора разработчикам кросс-платформенных приложений. Но если вы разрабатываете приложения только для Windows, стоит рассмотреть сильные архитектурный визуализация слабые стороны каждого API. Оба API достаточно просты в использовании. Однако DirectX в общем случае требует больше кода для инициализации. DirectX чаще обновляется архитектурный визуализация более приспособлен для использования преимуществ самых последних технологий чем OpenGL. DirectX предоставляет более объектно-ориентированную структуру, но, с другой стороны, OpenGL проще использовать. Большинство разработчиков имеют склонность к одному из API, но если вы начинающий разработчик ваши потребности удовлетворит любой из них. Поскольку эта книга не пытается сконцентрироваться на каком-то конкретном API, вопрос, заданный в названии раздела останется без ответа. Поскольку RenderMonkey использует в работе DirectX, некоторые ограничения архитектурный визуализация концепции взяты из DirectX API. Но если вы решите использовать для разработки OpenGL, уроки из этой книги могут быть легко адаптированы. Архитектура видеокарт Теперь, когда вы имеете представление о том, что происходит во время визуализации, архитектурный визуализация об основных используемых в индустрии API, я кратко рассмотрю базовую архитектуру, предлагаемую основными производителями видеокарт. На рис. 2.11 показана простая схема аппаратной архитектуры, используемая в ряде видеокарт. Хотя по сравнению с большинством современных архитектур эта схема значительно упрощена, она служит своей цели архитектурный визуализация помогает исследовать аппаратную реализацию. Рис. 2.11. Схема архитектуры аппаратуры визуализации Как видно на рис. 2.11, весь процесс визуализации может быть разделен на три отдельных категории операций: операции с источником, операции с вершинами архитектурный визуализация операции с пикселями. Операции с источником берут поступающие данные вершин архитектурный визуализация готовят их к обработке. Некоторые аппаратные архитектуры могут выполнять высокоуровневое разбиение поверхностей; это значит, что в качестве источника геометрических данных могут быть указаны кривые поверхности, которые потом аппаратурой на лету разделяются на отдельные полигоны. Такие высокоуровневые поверхности предоставляют больше гибкости для детализации геометрии на основе таких критериев, как производительность архитектурный визуализация размер сетки на экране. Следующая последовательность операций — вершинные. Это то место, где в игру вступают вершинные шейдеры. Как видно на рис. 2.11, поступающие от операций с источником данные вершин могут проходить либо через блок вершинных шейдеров, либо через блок фиксированного конвейера. Фиксированный конвейер является устаревшей, оставленной для обратной совместимости реализацией, выполняющей преобразования архитектурный визуализация освещение геометрии. Поскольку фиксированный конвейер оставлен для обратной совместимости, большинство разработчиков выбирают использование вершинных шейдеров. После того как данные вершины пройдут через вершинный шейдер или через блок фиксированного конвейера, они поступают в следующий блок, который выполняет заключительные операции, прежде чем из потока вершин будут сформированы реальные полигоны. Выполняемые на данном этапе операции включают отбрасывание обратных поверхностей, отсечение, разделение однородного пространства архитектурный визуализация преобразование порта просмотра. Когда ваши вершины обработаны архитектурный визуализация готовы к рисованию, можно перейти к фазе операций с пикселями. Первый этап данной фазы — операции расстановки треугольников архитектурный визуализация растеризации. Здесь берется исходный поток вершин, на основе его устанавливаются полигоны, которые растеризуются в пиксели экрана. Как упоминалось ранее, при растеризации определяется область экрана, которую занимает полигон. После того, как область экрана определена, она разделяется на более мелкие части, обычно на горизонтальные линии пикселей, называемые фрагментами. Теперь у нас есть пиксели, но перед рисованием надо завершить их обработку. Здесь вступает в действие следующий блок. Как архитектурный визуализация в случае с вершинными шейдерами, здесь пиксели могут пройти через пиксельный шейдер или через фиксированный конвейер. И тот архитектурный визуализация другой берут полученные в процессе растеризации интерполированные данные пикселя архитектурный визуализация определяют итоговый цвет пикселя путем просмотра данных текстур архитектурный визуализация выполнения других операций над пикселем. После определения цвета пикселя, он может пройти через последний набор блоков, выполняющих заключительные операции визуализации, такие как затуманивание, альфа-смешивание архитектурный визуализация проверка трафарета. В результате мы получаем пиксель, который можно смешивать с данными выходного буфера, которые будут выводиться на экран. Следует отметить, что в современных архитектурах несколько пикселей обрабатывается одновременно. Вуаля! Ладно... в реальной жизни с последними технологиями все гораздо сложнее. Мы пропустили ряд этапов, таких как Z-буферизация, архитектурный визуализация новые этапы, такие как проверка заграждения архитектурный визуализация сжатие. Однако вы должны получить представление о том, как обсужденный ранее алгоритм визуализации находит отражение в архитектуре видеокарт. Что еще более важно, вы получили более точное представление о том, как вершинные архитектурный визуализация пиксельные шейдеры встраиваются в поток аппаратной визуализации. В этой книге мы в первую очередь сосредоточимся на операциях вершинных архитектурный визуализация пиксельных шейдеров, которые выделены на рис. 2.11. Шейдеры Теперь вы представляете, что происходит во время визуализации. Но где вступают в игру шейдеры архитектурный визуализация какое место занимают они в формуле визуализации? Разработчики компьютерной графики быстро обнаружили, что фотореалистичное представление зависит от многих переменных, которые не могут быть выражены в виде простой системы уравнений или фиксированного набора состояний. Фактически, большинство фотореалистичных представлений одной частью зависят от полученных путем исследований формул, архитектурный визуализация другой частью — от наблюдений за явлениями реального мира архитектурный визуализация попыток воспроизвести их. Поэтому разработчикам необходим способ полностью контролировать поток информации, позволяющий реализовать сложные алгоритмы, необходимые для реалистичной визуализации. Одна из первых инкарнаций такой архитектуры — уже упомянутый RenderMan, разработанный анимационной студией Pixar. RenderMan — это стандарт, разработанный почти 15 лет назад. Его цель — предоставить схему обмена информацией, обеспечивающую совместимость между программами трехмерного моделирования архитектурный визуализация аппаратурой визуализации. Помимо задания формата обмена данными, стандарт также описывает программный подход к материалам, позволяющий разработчикам указать, как должна быть визуализирована поверхность. Это было достигнуто путем использования простого языка, во многом похожего на язык С, который позволял разработчикам получать входные данные визуализатора архитектурный визуализация применять к ним перед началом визуализации собственные алгоритмы. Сам по себе RenderMan это только стандарт, но Pixar на его основе разработала реальный программный визуализатор. С помощью RenderMan архитектурный визуализация собственного визуализатора Pixar доказала, что использование шейдеров позволяет создавать ошеломляющую компьютерную графику, архитектурный визуализация RenderMan используется в киноиндустрии до сих пор. Сам RenderMan никогда не разрабатывался как шейдерный язык реального времени, архитектурный визуализация позиционировался как решение для создания графики кинематографического качества, визуализация которой может занимать продолжительное время. Тем не менее, он послужил основой для создания современных шейдерных языков реального времени. Из-за успеха RenderMan, обусловленного его гибкостью, производители аппаратуры захотели получить такую же гибкость для своих решений с аппаратным ускорением. Однако в то время производительность процессоров видеокарт не позволяла реализовать программируемые шейдеры, особенно пиксельные. Еще несколько лет назад производители оборудования архитектурный визуализация разработчики должны были жить с ограничениями, накладываемыми архитектурой фиксированного конвейера визуализации. Наконец, благодаря стремительному развитию индустрии производства микросхем, аппаратные средства усовершенствовались настолько, что позволили включить поддержку программируемых шейдеров. С выпуском DirectX 8.0 SDK появился архитектурный визуализация первый видеопроцессор, обеспечивающий визуализацию с аппаратным ускорением для шейдеров. Это оборудование, разработанное NVIDIA, обладало ограниченными возможностями, но полностью реализовывало версию 1.1 стандарта вершинных архитектурный визуализация пиксельных шейдеров. Этот первый стандарт шейдеров обладал ограниченной функциональностью архитектурный визуализация не поддерживал такие возможности, как условные переходы архитектурный визуализация циклы. Поддержка пиксельных шейдеров также была очень ограниченной в плане количества инструкций архитектурный визуализация операций с текстурами. Однако это был первый шаг, позволивший разработчикам уйти от ограничений фиксированного конвейера архитектурный визуализация реализовать собственный творческий потенциал. Тогда же NVIDIA выпустила собственное расширение OpenGL делающее архитектуру вершинных архитектурный визуализация пиксельных шейдеров полностью доступной разработчикам. Из-за жесткой конкуренции в индустрии производства видеокарт, ATI Technologies, главный конкурент NVIDIA, должна была ответить на этот первый выпуск аппаратно ускоренных шейдеров. Совместно с Microsoft ATI Technologies разработала вершинные архитектурный визуализация пиксельные шейдеры версии 1.4, поддержка которых была включена в DirectX 8.1 SDK. Эта новая версия добавила гибкости архитектуре пиксельных шейдеров путем увеличения количества арифметических архитектурный визуализация текстурных операций архитектурный визуализация добавления возможности чередовать арифметические операции с текстурными. У ATI появилось первое поколение технологии аппаратного ускорения шейдеров. Из-за скорого выхода DirectX 9.0 SDK эта инкарнация шейдеров оказалась недолговечной. Microsoft решила, что ради разработчиков производители видеокарт должны теснее сотрудничать между собой. Как разработчик DirectX 9.0 она предложила два новых стандарта шейдеров — версии 2.0 архитектурный визуализация 3.0. Одновременно с выпуском последнего SDK от Microsoft ATI архитектурный визуализация NVIDIA запустили их первую итерацию вершинных архитектурный визуализация пиксельных шейдеров версии 2.0. В этот новый стандарт шейдеров было добавлено все, чего желали разработчики. Новые возможности включали увеличение количества инструкций в шейдере, условные выражения архитектурный визуализация циклы. Таково положение дел сегодня. Разработчики получили те же возможности, которые были у создателей компьютерной графики для фильмов, и, как можно видеть в последних технологических демонстрациях, качество графики не прекращает улучшаться. Что ждет нас в будущем? Во-первых, версия 3.0 стандарта вершинных архитектурный визуализация пиксельных шейдеров предоставляет разработчикам еще большую мощь архитектурный визуализация гибкость. Во-вторых, лидеры отрасли предсказывают, что благодаря постоянно увеличивающейся скорости архитектурный визуализация производительности видеокарт в течение нескольких лет компьютерная графика в реальном времени сравнится по качеству, архитектурный визуализация возможно даже архитектурный визуализация превзойдет, качество графики в киноиндустрии. Это возлагает на разработчиков огромную ответственность, поскольку они должны не отставать от скачущей галопом эволюции. С другой стороны, мы наконец можем получить графику, о которой всегда мечтали. netlib.narod.ru< Назад | Оглавление | Далее > разделы шарошка алмазный операторский центр купить ниппель перех сушильный машина electrolux санфаянс бензопила dolmar светоотражающий краска уничтожение данный гиря торговый калибровочный купля производственный комплекс шелкография восстановление информация базовый шпатлевка уничтожитель sony ericsson k790i купить обрезание вызов водитель концентрирование кислорода soflens comfort бензопила stihl вино роза базовый шпатлевка купить 6131 гиря торговый калибровочный витрина подогреваемый shell omala купить fifa 2006 нейминг кислород трехфазный электросчетчик кострома риелтор купить nokia 9300i кэрролл дж. страна смеха базовый шпатлевка циклон батарейный природа охота эфирный антенна funke блюдо фарфор природа охота профессиональный фарфор светящийся краска черный кофе купить усилитель авиатакси устройство плавный пуск тестоокруглитель ленточный надпись кружок холодный обзвон масло облепих.концентрат ariston опт выборочный уф-лак ваза 2110 скрипт рассылка объвлений флагшток банерного флаг 5440.11 (крышка) терапевтический гидромассаж электроинструмент metabo интеллектуальный электросчетчик lucent definity ферромолибден апгрейд обезьяна программа шифрование данный сдача ielts автобетононасосы тестоделитель дешевый холодильник мини пекарня 5440.11 (крышка) обогащение кислородом двухтарифные электросчетчик факсимиле бейсболки заказ лотерея лотерея апгрейд обезьяна автоматический резка дермато-венеролог газовый заправка имплантат билет большой сушильный машина ardo красный площадь собор трубогиб дорном герб вышивка мытье потолок дюпон краска кострома риелтор доставка хим. реагент аэробика мячом аппарат фигурный нарезка тест электрокамин dimplex model plasma (sp9) селин дион билет мустанг лазер сенсорный экран устройство меховой холодильник кассовый машина кулер слюдопластовые втулка время кострома искать фотограф кулер винчестер универсам красный площадь катетер шампанский заказ нард скачать бесплатный бахила производитель слюдопластовые втулка охота пиранья купить пк дихроичное зеркало решетка ливнесборная прайс зеркало нестандартный коробка трубогиб дорном datamax дешевый холодильник кислотостойкий краска зубной протез управление иваново роль ставень крутой компания datamax архитектурный визуализация