Реферат по предмету "Разное"


30 31 аппаратная & Open gl

30 - 31 АППАРАТНАЯ & Open GL1Современные видеоадаптеры Давайте вернёмся на год-полтора назад. Если вы в то время увлекались 3D, то вспомните, что основными темами обсуждения были мультитекстурирование, альфа смешение да трилинейная фильтрация. Крутыми считались карты, которые могли поддерживать все эти возможности. А теперь найдите хоть один современный акселератор, который не поддерживает эти функции. Да даже не надо вспоминать современные карты, та эра закончилась с появлением Voodoo2, Riva128 (NV3), I740 и других чипов тех времён. Что муссируется в прессе сейчас? Большие текстуры, сжатие текстур, рельефное текстурирование, да изредка экзотические виды фильтрации.Что реально нового мы увидели у новых поколений акселераторов? Все эти чипы "нового поколения", статьи о которых мы видим уже в кошмарах, всего лишь произведены с использованием более тонких технологий и имеют немного большие тактовые частоты. Можете не согласиться, но я считаю что nVIdia TNT2 это практически 0.25 вариант TNT, с небольшими "модными"доработками вроде AGP4x да поддержкой большего количества памяти, о чем уже устал говорить. Фанаты Voodoo3 - не думайте что я на вашей стороне, ведь 3dfx Voodoo3 в той же самой ситуации, как я уже говорил, это тот же Banshee с дополнительным текстурным процессором о чем ясно гласил плакат на стенде Comdex еще в ноябре 1998 года, потом они эту схемку уже нигде не демонстрировали. Конечно обе эти архитектуры сегодня имеют наибольшую производительность, но ни одна не использовала каких либо серьёзных нововведений. Что нового?Вот например ^ S3 и 3DLabs активно продвигают свои форматы сжатия текстур, уменьшающие требования к количеству памяти, необходимому для создания красивых и детализированных сцен. Формат от S3, именуемый S3 Texture Compression (S3TC) использует собственный (теперь интергированный в D3D) формат для сжатия больших текстур со степенью до 6:1. Из-за более эффективной системы работы игры вроде Unreal Tournament теоретически будут идти быстрее при использовании качественных сжатых текстур, нежели менее качественных но не сжатых, по крайней мере считается, что сегодня так должно быть на Savage3D/Savage4. Чем эта технология подкупает, так это невероятным количеством деталей, которые могут быть созданы при её использовании. Теперь полноцветные фотореалистичные текстуры запросто могут быть использованы вместо стандартных обычных текстур, то есть их использование практически бесплатно. 3DLabs тоже создал интереснейшую систему, используемую сейчас процессором Permedia3 Create! Метод 3DLabs, позволяет работать с сотнями мегабайт текстур в одной сцене и называется Virtual Textures. VT позволяет чипу Permedia 3 Create! использовать локальную память как кэш для текстур, хранящихся в оперативной памяти. Вместо закачки всего массива данных за раз, VT позволяет загружать только необходимый кусок текстуры. Аппаратная часть бьёт текстуры на маленькие кусочки и в момент вызова текстуры Permedia3 анализирует какую её часть мы видим (то есть что не отсечено другим обьектом), и загружает только действительно необходимое. Кроме сжатия текстур недавно появилась новая технология рельефного текстурирования. Я говорю новая, так как сама технология уже стара, и даже была ранее аппаратно реализована, но теперь принцип её работы немного изменили и стало гораздо легче ею пользоваться. Ввела новую систему знаменитая Matrox, карты которой до недавнего времени считались наиболее качественными в 2D ( Сегодня карта TNT2 имеет гораздо более качественную 2D часть. Хотя как всегда всё зависит от производителя, так ASUS например замыливает всё уже при 1024, то же касается карт LeadTek, а вот качество карт Creative, причём не только TNT2 но и TNT1 гораздо выше.) Новый процессор G400 поддерживает аппаратную акселерацию рельефного текстурирования с использованием шаблонов окружения. Бытует мнение, что супер компьютеры например от SGI хороши для чего угодно. Это не совсем так, но приводить аргументы сейчас не стоит, поскольку не стоит раздувать статью до размеров хорошей книги. А ведь компании - производители рабочих станций типа SGI, Sun, HP да и некоторые другие, выше интересов 3dfx и nVidia, они играют на другом рынке, набирают свой собственный опыт и имеют огромный оборот и исследовательский бюджет. Так же хорошо известно, что то, о чём только мечтают инженеры 3dfx и nVidia, супер мощные и сверх дорогие 3D подсистемы от SGI уже давно могут делать, и именно поэтому можно делать какие-то прогнозы на будущее, то есть пытаться понять, что может быть встроено в следующих поколениях акселераторов для персональных компьютерах. Можно было бы использовать те же технологии, что и в рабочих станциях, но требуемые решения должны стать существенно дешевле, технологичней и востребованней, чтобы их можно было действительно ставить в персоналки. Не будем сильно волноваться и без лишнего шума посмотрим на возможные варианты развития 3D рынка. 1.1Текстуры Например, насколько больше текстур нам скоро придётся использовать? Прежде всего попытаюсь дать краткое описание. Для того, чтобы картинка в игре была красивой нужны эффекты, что создаётся использованием нескольких технологий. Самая известная из них - наложение текстур. Если обьяснять на пальцах, что это такое, то можно сказать, что наложение текстур происходит после превращения математической формулы в примитивную модель. После этого акселератор накладываем текстуру для реалистичности. Затем придётся использовать ещё несколько технологий, последовательно добиваясь дополнительного качества, ну например мультитекстурирование. Простой пример где это нужно - карта освещения, которая придаёт разным пикселам разный уровень яркости, в сущности позволяя создать эффекты затенённых или наоборот освещённых пространств. Добавьте к этому шаблоны рельефности, шаблоны окружения, эффекты бликов и отражения, плюс некоторые дополнительные возможности, и сегодняшних "двух текстур за проход" уже явно недостаточно. Когда вы используете одновременно карту освещения и текстуру, то для использования всего лишь пары других шаблонов, да даже просто применения трилинейной фильтрации уже нужен дополнительный проход акселератора. Технология, описанная выше называется мультитекстурированием. Один проход тратится на наложение текстуры, другой на наложение шаблона освещения, ещё один для детализации текстуры, потом ещё на прозрачность и т.д. И финальная сцена не будет показана до тех пор, пока все не будет закончено. И это же повторяется для следующего кадра, и для следующего за ним, и так далее. Многочисленные проходы по одной сцене кажутся наиболее быстрым и наиболее эффективным решением. На самом деле это может приводить к непредсказуемым скоростям отрисовки, особенно в высокодетализированных сценах появляющихся и исчезающих из поля зрения каждые несколько секунд. Некоторые сложные сцены в современных играх могут требовать до 6 проходов за такт, чтобы не быть голословным, напомню что простое небо в Unreal требует уже 4 прохода. Понятно какой это наносит удар по производительности. Давайте теперь попытаемся найти узкое место у акселераторов. Одна из причин, больно ударивших по 3dfx с выходом Voodoo3 - нужда в большей детализации текстур следующего поколения игр. Cкорость акселераторов будет только возрастать, но попытайтесь понять, что разницу между подобными друг другу продуктами скоро уже не измерить в "лошадиных силах".. Один из распространённых мифов, в особенности распускаемый сейчас 3dfx (правда неявно) - текстурные процессоры, способные обрабатывать операции мультитекстурирования на гораздо более высоком уровне чем сегодня. В то время, как сегодня 3D чипы умеют накладывать максимум 2 текстуры за проход, следующие поколения будут вероятно накладывать 4, 6 или даже 8 текстур за то же время. Это не только сработает на программах, которые сегодня требуют 2 и более проходов на кадр, но так же позволит использовать некоторые дополнительные возможности "бесплатно". Если вы не поняли, что это значит, то приведу в пример мультитекстурирование Voodoo2, которое позволяет иметь "бесплатную" трилинейную фильтрацию. Наложение 4-8 текстур за такт может сделать то же самое с картами окружения, отражениями, более детализированными фильтрами освещения и тененаложения, ну и всё в том же духе. Ещё одна выгода мультитекстурирования - оно не является узким местом геометрической обработки. Это значит что в зависимости от ситуации, дополнительные проходы могут очень сильно снизить производительность даже невероятно мощного геометрического ядра. Сами не раз читали, что одна из самых распространнённых фраз при описании 3D производительности - "ограниченность мощью процессора". Это описывает ситуацию, когда 3D процессор ожидает выходящих из центрального процессора обработанных данных. В большинстве случаев, сегодня, центральный процессор отвечает за критические 3D задачи по трансформации треугольников и рассчёту их освещённости, и зачастую, именно это и является сдерживающим и узким местом сегодняшних сверх скоростных карт TNT2 и Voodoo3. Центральный процессор просто не может достаточно быстро понять и обработать и передать необходимые количества полигонов 3D акселератору для конечной обработки и вывода на экран. 1.2Сопроцессоры Точной математике, которой сейчас занимается центральный процессор, сегодня на рынке персональных компьютеров замены нет, и чем выше скорость процессора, тем выше будет ваша 3D производительность. Intel Pentium Pro и Pentium II обеспечили огромный скачок производительности по сравнению с классическим Pentium, а ныне вышедший AMD K7 содержит полностью конвейезированный математический сопроцессор, который похоже показывает приличный прирост скорости над лучшим чипом Intel. Ещё один путь повышения производительности 3D игр и приложений - использование SIMD инструкций технологии 3DNow! от AMD и SSE расширения Intel. SIMD сильно ускоряет работу с матрицами за счёт параллельного исполнения нескольких операций. К сожалению это означает, что драйверы карты и каждое конкретное приложение должно быть запрограммировано на использование набора этих инструкций. Но, может быть, будет умнее встроить многое из этого в 3D акселератор? Именно это и должно произойти с некоторыми картами следующего поколения. Давно уже встроенная в акселераторы профессиональных рабочих станций схема выделенной обработки трансформаций и освещения освободит процессор от "хозяйственных" забот и потенциально может обеспечить значительный прирост производительности. У геометрической акселерации есть ещё одно преимущество (или недостаток?) - это практически полное отсутствие разницы в скорости на ПК низкого и высокого уровня. Это значит что теоретически, если взять P2-266 и P3-500, да запустить на них Quake2 или Unreal под таким акселератором получим практически идентичный результат. Вообще-то ситуация похожа скорее на ночной кошмар Intel, так как процессоры становятся не так важны в плане 3D производительности. Завтрашние игры сожрут и не подавятся все эти освободившиеся миллионы операций в секунду, например для эмуляции более реалистичной физики или для обработки вне-графических обьектов, таких как AI или что там ещё может быть... Центральный процессор будет имеет слишком много свободных ресурсов, и вы увидите некоторые потрясающие вещи, которые сейчас нельзя реализовать за счёт узких рамок выделенных ресурсов, не занятых для получения быстрого 3D. Вот и настало время геометрической акселерации. Есть такое правило - если ваша система может работать с quake-образной игрой как с выделенным сервером (не обрабатывая графику) и с одним клиентом, подключенным на полной скорости, то вы сможете получить полную выгоду от чипа, акселерирующего геометрию. Это просто - процессор не будет заниматься какой либо работой связанной с 3D, что было бы невозможным без аппаратной обработки геометрии. Какие преимущества это даст? Известна статистика, что Quake III Arena тратит около 75% времени ожидая данных от OpenGL драйвера (трансформация и освещения). Если убрать узкое место, то можно будет получить четырёхкратный выигрыш производительности, но конечно всё будет зависеть от вашей видео карты. Есть некоторые ограничения, например количество источников освещения. Когда вы представляете аппаратную акселерацию, то это понятие ускользает от внимания. Да и видим ли мы на самом деле те 50 миллионов полигонов в секунду движка трансформации? А если подумать, то совершенно непонятно, чья 3D карта сможет поддерживать 4, 8 или 16 независимых акселерированных источников света, да и будет ли цифра такой, или она будет больше или меньше? К тому же фанов 3DS MAX изначально будет волновать вопрос, какой тип освещения будет акселерироваться? Я говорю про фанов 3DS только потому, что остальные могут не понимать, чем эти источники отличаются. Так всё же, будет акселерироваться только точечный источник или ещё и направленный свет? Вопросы набираются и набираются... Также существенным является то, как это затронет 3D игры. Если лучше всего продаваемая карта сможет акселерировать всего 4 источника света, не многие разработчики решаться перейти этот порог, из боязни получить серьёзный удар по производительности. Как всегда ситуация такова - игры управляют индустрией, а железо создаёт игры. Самый серьёзный аргумент против геометрической акселерации (а это уже поймёт каждый) является её немасштабируемость. Когда вы модифицируете свою систему устанавливая новый процессор, ваш акселератор, не поддерживающий геометрическую обработку, начинает работать ещё быстрее, в то время, как акселерирующие рассчёт геометрии карты продолжают работать с той же производительностью. Хорошая реализация геометрической акселерации должна показывать результаты в 2 раза более высокие чем можно добиться при работе с плавающей запятой на нынешнем Pentium III 500. Существует и менее консервативное мнение, что это может дать 4x кратный прирост производительности, но надо ещё посмотреть, будет ли оставшаяся часть графического конвейера способна поспевать за этой лавиной данных. И вот тут то появляется эта проблема, когда смена P3-500 на P3-667 не даст практически никакого прироста производительности. Не подумайте что это плохо, это ужасно для Intel, но отнюдь не для пользователя. Апгрейд процессора дорогая процедура, даже без учета смены памяти и материнской платы. И в то время как "стандартный" акселератор будет масштабироваться вместе со сменой центрального процессора, скорее всего к моменту, когда вам будет недоставать производительности появится новое поколение карт с ещё более навороченной геометрической акселерацией. А что же с текстурированием? Единственное, чего не увеличит геометрическая акселерация, так это скорость заполнения (fillrate). Быстрый геометрический акселератор работающий всего с 2x мультитекстурированием всё равно не будет иметь никаких преимуществ в многопроходной обработке. Насколько сильно при этом будет замедляться работа зависит от конкретной 3D архитектуры, очевидно, что комбинация массивного мультитекстурирования и геометрической акселерации была бы идеальной. Итак, что же дальше? Поскольку большинство производителей молчит в тряпочку, сегодня только увеличение колличества и скорости процессоров может привести к увеличению производительности. Большинство 3D операций не сильно зависят от специальных наборов инструкций, что было продемонстрировано Metabyte с их технологией PGC, и скорость может быть существенно увеличена даже на картах, не рассчитанных на параллельную обработку. Не стоит удивляться, если завтрашние карты будут созданы с несколькими текстурными, растеризирующими или геометрическими процессорами. С распределением нагрузки на несколько процессоров 3D акселераторы смогут брать на себя пропорционально большую нагрузку. Два текстурных процессора каждый из которых обрабатывает 4 текстуры за проход, смогут вместе обрабатывать уже 8 текстур, что позволит использовать вместе множество дополнительных эффектов. Два геометрических процессора смогут обрабатывать в два раза более сложные сцены не испытывая серьёзных проблем. 1.3Охлаждение А теперь давайте посчитаем транзисторы. В 3D акселераторах важнейшим параметром является частота чипа. Мы видим ядра, работающие на частотах от 175 до 200Mhz, да ещё и без особых наворотов с охлаждением. Следующее поколение должно ещё увеличить предел частоты до 250Mhz по минимальным подсчётам. 3D акселераторы уже содержат примерно то же количество транзисторов, что и центральные процессоры и производятся по той же 0.25 микронной технологии. Следующее поколение будет производиться по 0.22 или 0.18 технологии (Savage 2000). И тут станет совсем жарко. Вспомним, что ещё год назад 3D карты продавались даже без радиаторов, не говоря уже о вентиляторах. Теперь, с появлением 10 миллионов транзисторов в TNT2 и Voodoo3 (практически столько же, как и в Pentium III) карта не может жить хотя бы без радиатора. Скорости продолжают увеличиваться, важность хорошего радиатора становится всё очевиднее. К несчастью для акселераторов, места между AGP и PCI слотом на материнской плате мало, и обеспечить эффективное охлаждения, не залезая на соседний слот довольно трудно. С появлением более высокочастотных чипов эта проблема может становиться всё важнее. Со временем метод подключения графической карты персонального компьютера должен подвергнуться серьёзной переработке, так как вопрос приемлемого охлаждения серьезно встанет поперек горла. 1.4Память AGP 4х это хорошо, а что с локальной памятью? Даже самая быстрая AGP технология и рядом не стояла с текстурированием из локальной памяти, базированной на 5ns SD/SGRAM. Следующее поколение карт будет иметь около 64Мб текстурной памяти на борту. Как всегда, цена карты напрямую зависит от количества памяти. И чем больше её будет на акселераторе, тем выше будет его цена. Многие High-End акселераторы решают эту проблему сегментацией памяти, так для Z-buffer используется сверх быстрые VRAM и 3DRAM, а обычная текстурная память набирается из обычного DRAM. 3D акселераторы, фокусирующиеся на играх часто имеют соотношение скорости текстурирования к скорости генерации треугольников в пользу текстурирования, это позволяет сегодня использовать не слишком сложные 3D модели с качественными текстурами, что даёт оптимальный баланс производительности. В акселераторах следующего поколения, имеющих более 32Мб памяти, вполне может случится что хорошим решением станет разделение памяти например на буфер кадра, буфер глубины и буфер текстур. Это поможет удержать цены на приемлемом уровне. Есть ещё одна технология, с которой пора прощаться - синхронизарованная работа с памятью. Сегодня есть карты 183/183 или 175/200, но с появлением 300Mhz чипов будет сложно сохранить такую тенденцию. Так же важна доступность оперативной памяти. В новейших изделиях сейчас устанавливается 5ns память и индустрия 3D акселераторов настолько динамично развивается, что технологии изготовления памяти находятся просто под прессингом, дабы была возможность обеспечивать необходимые параметры микросхем. Карты с 350-400Mhz 3D чипами мы увидим комплектующимися 64-96Mb 200-250Mhz памяти. Есть и вероятность использования в акселераторах памяти следующего поколения - например RAMBUS или DDR SDRAM. RAMBUS уже использовался компанией Cirrus Logic в серии Laguna. Это были времена Virge и RageII. Да и в Nintendo64 стоит именно этот тип памяти. ^ 1.5Что будет через пару лет Cтановится модной тема воксельной акселерации. Воксели - это такие штуки, которые вы могли вообще никогда и не видеть в работе. Если коротко - это обьёмные пиксели, то есть трёхмерные точки. Их отличает алгоритм рендеринга. Большинство сегодняшних акселераторов (и некоторых ожидаемых) могут акселерировать только полигоны, воксели же вообще никак не нуждаются в полигонах, и работают примерно как эффекты частиц в Quake-образных играх. Первой эту технологию использовала NovaLogic в своём "симуляторе" вертолёта Comanche для создания реалистичного ландшафта. Так же эту технологию использовали Delta Force и недавно вышедший Outcast, а если покопаться в памяти, так ещё всплывут совершенно чумовой Armored Fist 1 и 2, да несколько других, менее знаменитых. ^ Но реально это полигоны. Все эти технологии отображения 3D пространства сейчас всё равно остаются полигональными, в основном потому что все 3D акселераторы работают с полигонами. В играх может использоваться огромное количество полигонов, это может быть не заметно, но это всё равно полигоны Акселерация сплайнов может сильно изменить качество детализации, так как описание обьектов сплайнами позволит создавать гораздо более реалистичные модели, которые будут хорошо смотреться при любом увеличении. Не обошлось и без проблем, для отображения некоторых сложных поверхностей невозможно использовать кривые. То есть кривые подходят для изображения простенькой арки, но вот создать с их использованием модель человека - сложно. ^ 2Графический стандарт OpenGL OpenGL - это нечто среднее между языком описания данных, и библиотекой функций для работы с графикой. Он разрабатывался в Silicon Graphics как профессиональный стандарт на трехмерную визуализацию. При этом изначально были поставлены такие требования, как переносимость, открытость и скоростьВсе основные возможности трехмерной графики представлены в быстром и удобном для программиста API. Интерфейс, повторяю, стандартный, что упрощает перенос программного продукта на другие, более мощные, или же, напротив, более дешевые, платформы. На сегодня OpenGL представляет собой общепризнанный стандарт, реализованный для всех классов компьютеров от ПК до суперкомпьютеров. . По качеству изображения OpenGL намного опережает своего ближайшего конкурента - DirectX, а версии OpenGL выпускаются не только для PC, но и почти для всех рабочих станций: HP, Dec, Silicon Graphics, Sun. Выход же за пределы Intel-архитектуры главного конкурента - DirectX/Direct3D - пока весьма сомнителен.Для разработчика, OpenGL - это, прежде всего, базовая библиотека из нескольких сотен графических функций, с помощью которых можно создать геометрию сцены и произвести ее рендеринг, плюс расширения: GLU - вспомогательные функции, упрощающие разработку и опирающиеся на базовый набор возможностей, и GLX - интерфейс для взаимодействия с оконной системой X Window. Успех OpenGL, по-видимому, все же обусловлен не удачным API, а следующими двумя обстоятельствами:Первое: еще в 1982 г. в Стенфордском университете была разработана концепция графической машины, на основе которой в рабочей станции Silicon IRIS был реализован конвейер рендеринга. Второе: OpenGL - открытый и мобильный стандарт. Это означает, в частности, что программы можно переносить на любую платформу, а графический вывод OpenGL получать как локально, так и по сети на любом рабочем месте, поддерживающем X Window и имеющем расширение GLX. Если не ограничиваться аппаратурой, а рассмотреть поддержку графической обработки для современных систем в целом, то видно, что она базируется на понятии конвейера: графические данные проходят последовательно несколько этапов обработки - выходные данные одного этапа сразу передаются на вход следующего. Абстрагируясь от связанных с конкретными реализациями деталей, можно рассмотреть универсальный графический конвейер и выделить в нем 5 этапов.Этап генерации (G) - создание и модификация прикладных структур данных.Этап обхода (T) прикладных структур данных и порождение соответствующих графических данных.Этап преобразования (X), на котором графические данные из системы координат объекта преобразуются в систему координат наблюдателя, выполняется расчет освещенности, отсечение преобразованных данных, а затем проецирование результата в пространство окна. На этапе растеризации (R) создаются и записываются в буфер кадра дискретные образы примитивов: точки, отрезки и полигоны. Буфер кадра - это банк памяти, предназначенный для хранения массива пикселей изображения. На этом этапе для всех вершин геометрических объектов вычисляется закраска, производится наложение определенных участков текстуры, а также выполняются пиксельные операции, такие, например, как сравнение по глубине. На этапе вывода (D) происходит сканирование буфера кадра и вывод изображения на экран дисплея. Два первых этапа сильно зависят от приложения, имеющегося графического интерфейса пользователя и от способа организации самой прикладной программы (скажем эти этапы могут быть совмещены). Поэтому графические системы общего назначения поддерживают главным образом последние три этапа, которые собственно и реализуют рендеринг.Поскольку OpenGL ориентирован исключительно на рендеринг, он может быть встроен в любую оконную систему или вовсе использоваться без нее. Действительно, входом для OpenGL служат данные, описывающие вершины геометрических объектов и их свойства, а выходом - изображение, сформированное конвейером обработки в буфере кадра. В конвейере OpenGL поддерживаются такие графические операции, которые могут быть реализованы как при наличии специализированной аппаратуры, так и без нее. В результате реализация графического конвейера OpenGL имеет несколько важных свойств. Реализации OpenGL показывают хорошую производительность на компьютерах самого разного класса - от ПК до графических суперкомпьютеров. OpenGL не занимается выводом на экран - результирующее изображение помещается в буфер кадра, а управление дисплеем возлагается на оконную систему. Поэтому OpenGL работает, например, в среде X Window System, NT, Windows 95 и OS/2. Для подключения к новой среде требуется создание интерфейса с оконной системой. Реализации графических систем можно классифицировать по степени аппаратной поддержки этапов конвейера рендеринга. В архитектуре графических систем универсальный процессор компьютера, управляющий графической аппаратурой, принято называть хостом. Для оценки графической подсистемы важно, какие этапы графического конвейера выполняются на хосте программно, а какие на специализированной графической аппаратуре - аппаратно. Курт Акелей, соавтор спецификации OpenGL, ввел полезную для классификации графических подсистем систематику], основанную принципах разделения этапов графического конвейера на программную и аппаратную реализации. Буквы GTXRD - этапы универсального графического конвейера, дефис между ними указывает, что этапы справа от него реализованы в основном аппаратно. Например, Конкретный вид и качество полученного в результате рендеринга изображения сцены зависит от текущих режимов OpenGL и заданных для них параметров. Так многоугольник изображается по-разному в зависимости от режимов освещенности, текстуры, смешивания (blending), устранения лестничного эффекта, проверки глубины и многого другого. В реализации OpenGL полезно представлять данный набор режимов рендеринга и их параметров как маршрут рендеринга. Каждому маршруту будет соответствовать своя последовательность графических операций, реализуемых либо программно, либо аппаратно. Производительность рендеринга на некотором маршруте зависит от того, насколько хорошо этот маршрут оптимизирован и аппаратно поддержан в данной конкретной реализации OpenGL. На практике система, считающаяся GT-XRD-архитектурой, может не полностью поддерживать аппаратно этапы преобразования и растеризации, например она может не иметь поддержки наложения текстуры в аппаратуре растеризации. Поэтому систематика GTXRD дает только общее и довольно грубое представление о тех операциях, которые поддерживаются аппаратно. Если приложение использует, например, текстурирование в реализации OpenGL, в которой соответствующей аппаратной поддержки нет, эта операция будет выполняться программно. Более того, в такой ситуации отдельные операции преобразования, которые могли бы быть выполнены аппаратно в режиме без наложения текстуры, также будут производиться программно. Важно понимать, что наличие аппаратной поддержки какой-либо функции не дает гарантии, что она действительно будет выполняться аппаратно с конкретным маршрутом рендеринга. Если рассмотреть два маршрута рендеринга, для которых обеспечивается аппаратная поддержка, то, скорее всего, один из маршрутов будет работать быстрее, чем другой. Например, если в сцене присутствуют источники света, то при включении одного источника рендеринг будет выполняться быстрее, чем, скажем, при восьми. Даже в реализациях, в которых тест глубины пикселей поддержан аппаратно, маршруты с выключенным тестом глубины будут выполняться быстрее, чем при отсутствии этого режима. При оценке реализации OpenGL для конкретного приложения лучше всего рассмотреть реальные маршруты рендеринга, определяемые в приложении, и установить, насколько данная реализация OpenGL эффективно использует имеющуюся аппаратуру.OpenGL представляет собой обычный набор команд. Они определяют координаты объектов, управляют их трансформацией, позволяют задать параметры объектов (цвет, текстура) и, наконец, рисуют его. Все это собрано в единую структуру, называемую «конвейером OpenGL»После того как вершины обработаны и собраны в примитивы, последние поступают на этап растеризации и обработки фрагментов. Растеризация – это процесс, при котором примитивы преобразуются в двумерный образ. Каждая точка этого образа содержит такую информацию, как цвет, глубина и данные текстуры. Все вместе – точка и ассоциированная с ней информация называется фрагментом. Обработка фрагмента состоит из серии последовательных тестов: принадлежности, отсечения, альфа, трафарета и глубины, а также логических опреаций над фрагментом и содержимым буфера кадра.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.