За пределом nfiniteFX
Ключевым моментом в планах NVIDIA является аппаратная реализация кинематографических эффектов. Успехи компании в данном направлении были наглядно продемонстрированы на SIGGRAPH ещё прошлым летом, когда графический ускоритель Quadro нагрузили прорисовкой сцен из фильма Final Fantasy: The Spirits Within. Также впечатляюще как была эта демонстрация, NVIDIA ощущает что был сделан большой шаг вперёд в осуществлении переноса мира кино в мир компьютеров посредством нового поколения компьютерной графики. Продвигая новые технологии на рынок, NVIDIA выбрала название "CineFX", видимо пытаясь подчеркнуть их направленность. Пока компания не раскрыла все подробности своей последней разработки, но всё же некоторая информация была показана.
Zoltar
Для начала, мы знаем, что NVIDIA перенесла в NV30 программируемую основу на более высокий уровень по сравнению с GPU предыдущих поколений. Новые команды обработки вершин представлены логарифмическими и тригонометрическими функциями высокой точности. Фактически, число инструкций, поддерживаемых анонсированной архитектурой, увеличилось от 128 в nfiniteFX до 65536 в CineFX. Это даёт разработчикам фантастическую возможность создавать большее количество эффектов при использовании более простых методов программирования. Возьмём к примеру Zoltar - технологическую демонстрацию для GeForce3. Чтобы создать подобную реалистичную кожу и костную структуру, необходимо использовать несколько шейдеров. Для достижения такого же результата используя архитектуру CineFX, достаточно лишь одного!
Улучшенные пиксельные шейдеры
Помните, как Джон Кармак (John Carmack - Lead Programmer, id Software) был разочарован реализацией обработки пикселя в DirectX 8 и GeForce3? Теперь с появлением CineFX обработка пикселя поднята к тому же уровню важности, как и обработка вершины.
Например, многие из команд, используемых исключительно для обработки вершины теперь доступны для обработки пикселя, и сами программы управления будут по размеру больше (до 1024 команд). И в то время, как GeForce3 был ограничен до четырёх текстур в пиксель, NV30 поддерживает до 16. Наконец, количество операций над пикселем решительно увеличено: в DirectX 8 стоит ограничение на 8 операций, в наступающем DirectX 9 заявлена поддержка 64 действий, а NV30 поддерживает до 1024 операций с текстурой. Это включает такие продвинутые команды как "swizzling" (настройка по адресам) и "conditional write masks" (условные маски записи).
NVIDIA NV30: Cinematic Shading
В результате указанных улучшений разработчики будут иметь больший контроль на пиксельном уровне, что безусловно положительно скажется на реалистичности графики.
Повышенная цветовая точность
Другое усовершенствование, представленное с NV3X - поддержка 64- и 128-битного представления цвета (16- или 32-разрядная с плавающей запятой для каждого RGB компонента). Как вы себе можете представить, это нововведение может здорово отразиться на изображениях с высоким диапазоном яркости. Такая возможность уже давно реализована в профессиональных 3D приложениях в виде стандарта HDRI (High Dynamic Range Image), например, для 3D Max'а и применяется в трёхмерной визуализации сцены рендером Brazil.
Результат HDRI рендеринга.
Также простой пример - туман. Если вы играли в игры с реализованным в них туманом или дымом, то наверняка часто замечали какие-либо артефакты. С более широким цветовым диапазоном подобные вещи будут скорее всего устранены. Очевидно, за 128 битный цвет придётся щедро расплачиваться аппаратными ресурсами, в первую очередь пропускной способностью шины данных. И для разработчиков это может стать решающим аргументом в пользу выбора менее насыщенного цвета. Хотя не будем загадывать наперёд.