Авторы доступно излагают основные принципы, требуемые для разработки приложений, использующих OpenGL. Текст написан понятно, четко и без лишних отступлений; материал иллюстрируется с помощью прекрасных примеров. Книга удачно структурирована, ее удобно использовать и как учебник, и как справочник; каждая глава завершается справочным разделом, в котором конспективно представлены все функции OpenGL, имеющие отношение к рассмотренной теме. Много внимания уделено тому, чтобы рекомендуемый код не просто работал, но работал эффективно, быстро надежно и на всех основных платформах.
Возможно, после прочтения главы эти спецификации станут намного понятнее. Впрочем, вначале вам нужно загрузить шейдеры в . Создание и связывание шейдеров Подобно текстурным объектам, буферным объектам, запросам о преградах и дру. Если все хорошо, шейдер компилируется и оптимизируется, насколько это необхо. В этом случае текущий связанный шей. Если ошибка представляет собой семантическое ограничение, которое можно обнаружить только после анализа всего шейдера . Настройка низкоуровневых шейдеров . Удаление шейдеров освобождает ресурсы и позволяет снова использовать освободившиеся имена . Проверка наличия возможностей . В данном случае под вектором мы понимаем четырехкомпонентный вектор, тогда как скаляр сформирован одним компонентом В табл . х . у . ъ . ю С другой стороны, команды, выдающие один скалярный результат, в действитель. х Команды, существующие только для вершин Уникальными для низкоуровневых шейдеров вершин являются только три команды. е превращается в наибольшее целое число, меньшее или равное аргументу. Команды . Общие команды Входные Выходной Команда аргументы аргумент Описание АВЭ . в спецификации ЕХ. в спецификации МАО . Команды, существующие только для вершин Команда Входные Выходной аргументы аргумент Описание . Был рассмотрен вопрос включения в него всех команд расширения для вершин, в оконча. На современном аппаратном обеспечении возможность относительной адресации в шейдерах фрагментов пока еще недоступна, поэтому в универсальный набор команд не включена команда . Помимо названных выше команд, представленных в обоих типах шейдеров . Все они перечислены в табл . Шейдеры фрагментов вводят новый тип команд. Например, чтобы выбрать информацию из кубической карты в текстурную единицу . Типы переменных Набор команд превосходен, но эти коды операций не смогут ничего сделать без данных и места для хранения результата. В качестве входов и. Глава . Команды, существующие только для фрагментов Входные Выходной Команда аргументы аргумент Описание СМР . Прежде чем переменную можно будет использо. следующее поколение ТАБЛИЦА . Типы переменных Тип переменной Объявление Доступ Описание Временная . Их можно представлять как константы, хотя некоторые параметры можно менять за пределами схемы В любом случае вы не можете записывать информацию в пара. Им присваиваются конкретные значения внутри текста шейдера, которые никогда не ме. Можно не объявлять параметры, поскольку допускается использовать их непо. Это позволяет более прямолинейно имити. Например, вместо того, чтобы вручную загружать матрицу наблюдения модели. Полный список параметров состояния, с которыми возможно связывание, низкоуров. Параметры программы Помимо внутритекстовых констант, жестко закодированных в тексте, и параметров, привязанных к конкретному состоянию . В данные параметры можно загружать любую переменную, которую позже можно заменить другим значением. Программные параметры делятся на две категории. Локальные параметры задаются для одно. шейдеры вершин имеют один набор параметров среды, а шейдеры фрагментов — другой. Данные параметры загружаются командами . Для обращения к ним в тексте шейдера используются команды . В таком случае в схеме мог присутствовать примерно такой код. . Массивы параметров В . Ниже приводится несколько примеров объявлений массива параметров. Однако помните, что, если вы объявите размер, но позже задади. Однако в отличие от па. Как и параметры, атрибуты можно объявлять или же использовать непосредствен. Атрибуты вершин Атрибут Связываемые компоненты Описание . . . . . Атрибуты вершин В табл. Они соответствуют всем текущим состояниям вершин . Одним из атрибутов вершин, с которым вы скорее всего никогда раньше не . Такие атрибуты были введены для того, что. ;, вершин можно было задавать любой тип данных — не обязательно одип и . Для установки общих атрибутов можно использовать множество . Кроме того, общие атрибуты можно шшс . , атрибутами конвейера с фиксированными функциональными возможное . и ности, вызов . конфликты, . Если вызвать одну из двух команд, указанных в одной строке таб. . г становится неопределенной . Совмещение атрибутов вершин Общее с вязывание Накладывающийся атрибут Накладывающееся связывание . . . . . . . . ,. . Атрибуты фрагментов Связывание с атрибутом Компоненты Описание . . . . . . Кроме того, в пределах одного шейдера нельзя связаться с обоими атрибута. Благодаря этому можно обнаружить случайные ошибки, связанные с ис. Все атрибуты фрагментов и их связывание в шейдере фрагментов перечисле. Выходные аргументы Выходными аргументами являются регистры с возможностью только записи, которые могут использоваться для хранения результата выполнения команды.