Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

foreach (GraphicsAdapter adapter in GraphicsAdapter.Adapters) {

GraphicsDeviceCapabilities caps =

adapter.GetCapabilities(DeviceType.Hardware);

// проверка второй версии шейдерной модели

if (caps.MaxPixelShaderProfile < ShaderProfile.PS_2_0)

{

System.Diagnostics.Debug.WriteLine("Hет поддержки Shader Model 2.0.");

} }

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

16.7.2. Механизм работы шейдерных программ

Любой язык программирования направлен на описание синтаксиса и семантики. На базе этих правил и ключевых слов пишутся все программы. Точно так же и язык HLSL обладает своим уникальным синтаксисом и семантикой. Язык HLSL имеет очень большое количество ключевых слов, как говорится, на все случаи жизни. Но часть ключевых слов может не поддерживаться определенной моделью видеоадаптера. Вот для этого и нужна шейдерная модель (Shaders Models), которая описывает требования, предъявляемые к видеоадаптеру. В результате шей-дерная модель является неотъемлемой частью правил использования высокоуровневого языка программирования шейдеров.

Шейдерные программы пишутся в обычных инструментариях (продукты семейства Visual Studio, RenderMonkey, FX Composer...) и сохраняются в отдельных файлах с расширением FX. Затем этот файл или файлы подгружаются в программу, и когда в исходном коде программа доходит до места выполнения шейдерного файла, то в этот момент программа переключается на выполнение файла шейдеров.

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

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


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz