Начало Услуги Выставка Skill Win Деньги онлайн Гостиница

Содержание рубрики

Журнал "Игры Онлайн"

Коллекция анекдотов

Сказки для взрослых

Hardcore pictures

Приколы и юмор

Бестолковый словарь


Что еще на этом сайте?

Баннеры - изготовление и дизайн статичных и анимированных баннеров по низким расценкам.
Расчеты моделей - использование метода конечных элементов при расчете трехмерных параметрических моделей в Ansys.
Рассылки - ежедневные эксклюзивные сообщения по электронной почте. Автоматические уведомления о курсе валют, котировках акций, прогнозе погоды.
Для студентов и аспирантов - оригинальное выполнение рефератов, контрольных, курсовых и дипломных проектов быстро и качественно.

Журнал "Игры Онлайн"

ATI RadeOn 256 64 Mb
Автор: Станислав Васильев
Оригинал статьи: www.3Dnews.ru

Pixel Tapestry

     По сути, Pixel Tapestry - маркетинговое название растеризирующей части ATi Radeon. Интересной инновацией ATi стала возможность наложения трёх текстур за такт на один пиксел, что позволило реализовать некоторые продвинутые эффекты за один проход. Но красота на бумаге вовсе не означает практической полезности сегодня. Как в случае с 32-х битным цветом два года назад, суровая реальность внесла свои коррективы. Традиционные для последнего года акселераторы могут накладывать не более двух текстур на пиксел за проход, и программистам не пришло в голову создать игры, способные реализовывать более сложные эффекты за один проход. То есть, чтобы иметь возможность использовать дополнительные текстурный блок ATi Radeon, приложение должно по крайней мере догадываться, что за такт возможно наложить более двух текстур. Сегодня таких игр нет.
     Три текстуры за такт - отнюдь не рекорд. Ядро Savage 2000 может пожертвовать одним конвейером рендеринга, и наложить 4 текстуры за такт на пиксел. Пиксельный fillrate - один из важнейших факторов, определяющих скорость вывода кадров в секунду. Имея один конвейер рендеринга и накладывая 4 текстуры можно столкнуться с ситуацией, когда в высоком разрешении за счёт большого overdraw FPS будет слишком низкий, несмотря на то, что количество проходов для рендеринга сложных текстурных процессов будет не очень большим.
     Если подходить к скорости заполения с математической точки зрения, то вычисление производится по формуле (X)*[Y]*(частота ядра), где (X) - количество конвейеров рендеринга, [Y] - количество текстурных блоков на каждом конвейере. Часть Fillrate тратится на scene drawing, то есть то, что мы видим перед собой в каждый момент времени. А другая часть на scene overdraw - данные которые видит и рассчитывает акселератор.

Эффективность пиксельного конвейера

     Каждый пиксельный конвейер обычно имеет несколько текстурирующих блоков. GeForce 256, Savage2000 и VSA-100 имеют по одному блоку в каждом конвейере рендеринга. GeForce 2 GTS имеет по два текстурирующих блока, а ATi Radeon имеет по три блока текстурирования на каждом из двух конвейеров рендеринга. Верхняя диаграмма показывает эффективность работы ядра при определённом количестве текстурных блоков в конвейере. Последним жёлтым цветом выделен график теоретической эффективности Radeon.
     Если не опираться на реальную ситуацию, а представить, что ПО знакомо с третьим текстурным блоком ATi Radeon, то при частоте ядра 183Mhz его характеристики будут следующими:
  • Скорость пиксельного заполения: 366 мегапикселей в секунду
  • Скорость текстурирования: 1098 мегатекселей в секунду
     Но поскольку ПО ничего не знает о третьем текстурном блоке, мы имеем те же 366 мегапикселелей в секунду и всего 732 мегапикселя в секунду в случае, если игра работает в режиме битекстурирования, то есть накладывает по две текстуры на каждый пиксел за один проход и всего 366 мегатекселей в секунду в монотекстурных играх. К битекстурным играм например можно отнести Quake 2, Quake 3, Unreal и Unreal Tourmanent, Need For Speed III, High Stakes и Porshe Unleashed и остальные современные игры. К монотекстурирным играм относится первый Quake и большинство старых игр времён Direct3D 5.
     Кроме того, в Pixel Tapestry реализована поддержка:
  • Буфера приоритетов, который можно использовать для shadow mapping от индивидуальных источников света (мнение по этому поводу Джона Кармака можно увидеть выше по тексту);
  • Обьёмных текстур (трёхмерных текстур), позволяющих создавать сложные и динамические источники освещения, а также объемные среды, например дым, туман, а так же моделировать жидкости. Кроме того, благодаря обьёмным текстурам возможно упростить работу с объектами с плавающей геометрией
     Не секрет, что чем больше текстур можно наложить на пиксель за такт, тем реалистичнее и детальнее получается конечное изображение без потерь в общей производительности. Текстуры применяются для наложения карт освещенности, карт теней, моделирования отражений и зеркальных поверхностей, рельефа (bump maps) и т.д.
     Пример практического мультитекстурирования:

Базовая текстура Отражения Рельеф Готовый обьект

     Пример использования трёх текстурных карт можно привести на примере груши на рисунках выше. Если визуализация такой сцены будет проходить на акселераторе класса Voodoo Graphics, то потребуется три прохода для наложения каждой текстуры, в результате даже при минимальной сложности сцены будет потрачено огромное количество времени. GeForce 256, способный накладывать до 2 текстур за такт двумя конвейерами сумеет отрисовать два таких кадра за три такта. Savage2000 и ATi Radeon смогли бы наложить все текстуры за один такт. Но опять таки, мы опускаем тему поддержки со стороны разработчиков.

     Обьёмные текстуры

     ATi Radeon поддерживает новый тип текстур - "3D Textures". Обьёмные текстуры не стоит путать с текстурами для рельефизации. Это совершенно разные вещи. К сожалению, сегодня эта технология поддерживается лишь версией 1.2 OpenGL, и обещается поддержка в новой версии DirectX 8. Чтобы понять, что можно реализовать при помощи трёхмерных текстур, достаточно вспомнить фильм "Привидение", в котором главный герой проходит через дверь, наблюдая в ходе процесса внутреннюю структуру материала. Использование объёмных текстур потребует больших затрат аппаратных ресурсов, однако в случае использования можно достигнуть серьёзной визуальной эффективности. Кроме того, обьёмные текстуры могут занимать огромное количество памяти акселератора, и для того, чтобы их можно было хранить, приходится использовать специальные алгоритмы текстурного сжатия. Чипом ATi Radeon аппаратно поддерживаются методы сжатия 3D-текстур DXVC. На иллюстрации ниже представлен пример использования трёхмерных текстур для освещения помещения.

Использование трехмерных текстур для освещения помещения

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

     Рельефное текстурирование

     Что касается средств, поддерживаемых уже сегодня то ATi пошла на серьёзный шаг, лицензировав EMBM рельефное текстурирование, использующееся сегодня лишь у плат от Matrox. В результате Radeon поддерживает рельефизацию стандартным методом выдавливания (Embossing - поддерживается даже старыми TNT), методом Dot Product 3 (поддерживается GeForce 256, 3DLabs Pemedia 3 и некоторыми другими), а так же EMBM (пока только у Matrox, возможна реализация EMBM посредством шейдеров на GeForce 2).

Рельефное текстурирование

     Метод рельефизации по EMBM является самым детальным, но и требует больше всего ресурсов. ATi заявляет что сможет делать рельефное текстурирование за один проход без дополнительных затрат времени. Сегодня хорошим методом использования рельефного текстурирования могут служить демо-файлы от Matrox, Microsoft и GL Quake 1.13, который, кстати, смотрится наиболее эффективно но использует метод выдавливания. Впрочем нам не удалось запустить на Radeon демки, предназначенный для карт Matrox. Алгоритм работы EMBM можно представить следующим графиком:

График алгоритма работы EMBM

     У каждого метода рельефизации есть свои ограничения. Метод выдавливания при применении к плоским поверхностям на определённом удалении начинает вызывать значительные артефакты рендерига, а методом EMBM нельзя добиться некоторых очень простых эффектов. Большое количество поддерживаемых методов рельефизации помогает выбрать необходимый по ситуации метод.
<<назад                 далее>>


TopList Aport Ranker
IE 5.0, 600x800, High Color 16bit,
шрифты Garamond и Arial
©  WM Service Online, 2000г.
Сайт управляется системой uCoz