Предыдущая Следующая
274 Основы программирования трехмерной графики
зовании и, главное, имеет большое сходство с языком программирования С. В момент появления языка HLSL была предложена так называемая Shaders Models 1.0. Это своего рода версия описания шейдерной модели для использования шейдер-ных программ в программировании графики. Шейдерная модель предъявляет набор требований для графического процессора видеокарты, которые он обязан иметь или исполнять.
На сегодняшний день имеются уже три версии Shaders Models. Каждая последующая шейдерная модель лишь усовершенствует свою предшественницу. То есть имеется набор определенных инструкций, которые может выполнить видеоадаптер с поддержкой Shaders Models 1.0, и если вы попробуете на этом видеоадаптере использовать шейдерную модель третьей версии, то произойдет ошибка в работе программы. Фактически шейдерная модель описывает тот набор операций, который графический процессор видеокарты может или даже способен выполнить. Например, в Shaders Models 1.0 нет возможности использовать циклы, а во второй версии такая возможность (для видеоадаптеров) была добавлена.
Технология не стоит на месте и развивается, мощности и возможности графических процессоров растут, поэтому и Shaders Models постепенно усовершенствуется. Первая версия Shaders Models со временем отошла и уже практически не используется в программировании шейдеров, но поддерживается всеми видеокартами без исключения, если, конечно, производитель умышленно не исключил такую возможность.
Сейчас отправной точкой в версии модели шейдеров считается версия Shaders Models 2.0, которая используется в консольной приставке Xbox 360 (приставка не может использовать Shaders Models 1.0). Более дорогие компьютерные видеоадаптеры могут работать с Shaders Models 2.0 и с Shaders Models 3.0, но не далек тот день, когда появится Shaders Models 4.0, разработки которой идут полным ходом. Соответственно, появится и новый класс видеокарт, умеющих работать с этой шейдерной моделью.
В исходном коде можно легко создать блок кода для проверки поддерживаемой видеоадаптером версии шейдерной модели. Например, в следующем исходном коде происходит проверка видеоадаптера на совместимость с Shaders Models 2.0. Если поддержки этой шейдерной модели нет, то на экран выводится сообщение. Использовать эту конструкции кода необходимо на этапе инициализации программы, а также нужно предусмотреть аварийный выход из приложения, если видеокарта не поддерживает используемую в программе шейдерную модель. Предыдущая Следующая
|