Запрашиваемая вами страница не найдена

Проверьте правильность заданной ссылки или воспользуйтесь поиском по сайту:

Вы можете посмотреть карту сайта или перейти на главную страницу iXBT.com.

Запрашиваемая страница не найдена / Page does not exist

Запрашиваемая вами страница не найдена

Проверьте правильность заданной ссылки или воспользуйтесь поиском по сайту:

Вы можете посмотреть карту сайта или перейти на главную страницу iXBT.com.

Запрашиваемая вами страница не найдена

Проверьте правильность заданной ссылки или воспользуйтесь поиском по сайту:

Вы можете посмотреть карту сайта или перейти на главную страницу iXBT.com.

Запрашиваемая вами страница не найдена

Проверьте правильность заданной ссылки или воспользуйтесь поиском по сайту:

Вы можете посмотреть карту сайта или перейти на главную страницу iXBT.com.


Запрашиваемая страница не найдена / Page does not exist

Запрашиваемая вами страница не найдена

Проверьте правильность заданной ссылки или воспользуйтесь поиском по сайту:

Вы можете посмотреть карту сайта или перейти на главную страницу iXBT.com.



обзоры Пиксельные шейдеры GeForce 256

Петр Попов


Введение

В настоящее время в компьютерной графике очень модным стал термин "шейдер" (shader), что в переводе с английского означает "затенитель". Это слово присутствует даже в названии последнего чипа от NVidia: GeForce GigaTexel Shader (GTS). Сам термин означает возможность гибкого программируемого смешения вершинных атрибутов на стадии расчета геометрии или цветов на стадии растеризации.

Многие связывают концепцию шейдеров исключительно с интерфейсом DirectX 8. Между тем в библиотеке OpenGL пиксельные шейдеры также существуют – автор этой статьи имел удовольствие их использовать и нашел весьма удобными. Стандарт OpenGL является открытым, каждый разработчик драйверов может зарегистрировать свое собственное расширение (дополнительный набор функций). Пиксельные шейдеры были предложены компанией NVidia, расширение называется NV_REGISTER_COMBINERS и поддерживается только чипами линейки GeForce.

Эта статья посвящена шейдерам NV_REGISTER_COMBINERS. Описываются способы наложения рельефа методом тиснения (embossing) и попиксельного скалярного произведения (per-pixel dot product).

Пиксельные шейдеры NV_REGISTER_COMBINERS

Прежде всего рассмотрим стандартную для OpenGL процедуру растеризации. Разработчик определяет для каждой вершины два RGB-цвета: первичный и вторичный, и два набора текстурных координат. Цвета линейно интерполируются по треугольникам, цвет текстурной компоненты определяется с учетом текущего режима фильтрации текстуры. Если включена генерация освещенности, то в первичный цвет помещаются рассеянная + диффузно отраженная компоненты освещенности, а во вторичный - цвет блика (зеркально отраженный).

Вначале берется первичный цвет, последовательно накладываются обе текстуры. Для смешения с первичным цветом можно использовать несколько предопределенных функций: сложение, умножение, умножение на инвертированный цвет, альфа-смешение. После наложения текстур результат суммируется со вторичным цветом (цветом блика), и накладывается туман, интенсивность которого зависит от удаленности от наблюдателя.

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

  • Два постоянных, или константных, цвета.
  • Два цвета, которые разработчик назначает для каждой вершины, они линейно интерполируются по треугольникам.
    Если включено освещение, то эти величины генерируются ядром OpenGL (на самом деле T&L-блоком GeForce). В первый регистр помещается рассеянная + диффузно отраженная компоненты освещения, а во второй - зеркально отраженная компонента.
  • Два регистра для текстурных компонент: цвет первой текстуры и цвет второй текстуры.
  • Два запасных регистра.
  • Цвет тумана.

Также имеются аналогичные регистры с альфа-каналом. Для них схема конвейера растеризации очень походит на конвейер для RGB-переменных.

Страница 2 - Стадии конвейера

 


 

Запрашиваемая страница не найдена / Page does not exist

Запрашиваемая вами страница не найдена

Проверьте правильность заданной ссылки или воспользуйтесь поиском по сайту:

Вы можете посмотреть карту сайта или перейти на главную страницу iXBT.com.