netlib.narod.ru< Назад | Оглавление | Далее >

19.1. Техники и проходы

Файл эффекта состоит из одной или нескольких техник (techniques). Техникой называется конкретный способ реализации спецэффекта. Другими словами, файл эффекта описывает один или несколько способов реализации одного и того же спецэффекта. Зачем надо несколько различных реализаций одного и того же эффекта? Дело в том, что установленное на компьютере оборудование может не поддерживать определенную реализацию эффекта. Следовательно необходимо реализовать несколько версий одного и того же эффекта, ориентированных на различное оборудование.

ПРИМЕЧАНИЕ
Например, мы можем реализовать две версии одного и того же эффекта — одну с использованием шейдеров, а другую с использованием фиксированного конвейера. В этом случае те пользователи, чьи видеокарты поддерживают шейдеры, получат преимущества реализации, использующей шейдеры, а те пользователи, чьи видеокарты шейдеры не поддерживают могут продолжать использовать фиксированный конвейер.

Возможность реализовать все версии эффекта в одном файле дает нам более полную инкапсуляцию эффекта в целом, а объединение реализации эффекта это и есть одна из целей каркаса эффектов.

Каждая техника объединяет один или несколько проходов визуализации (rendering passes). Проход визуализации объединяет режимы устройства, режимы выборки и шейдеры, используемые для визуализации на данном этапе.

ПРИМЕЧАНИЕ
Файл эффектов не ограничивает вас только использованием программируемого конвейера. Например, вы можете использовать фиксированный конвейер для управления режимами устройств, такими как освещение, материалы и текстуры.

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

В качестве примера приведем скелет файла эффектов с двумя техниками, где первая техника состоит из одного прохода, а вторая — из двух:

// effect.txt
...
technique T0
{
     // Первый и единственный проход для данной техники
     pass P0
     {
     ...[указываем состояния устройства, шейдеры, выборки и т.д. для прохода]
     }
}

technique T1
{
     // Первый проход
     pass P0
     {
     ...[указываем состояния устройства, шейдеры, выборки и т.д. для прохода]
     }

     // Второй проход
     pass P1
     {
     ...[указываем состояния устройства, шейдеры, выборки и т.д. для прохода]
     }
}

netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz