Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Графика -> Гончаров Д. -> "DirectX 7.0 Для программистов" -> 73

DirectX 7.0 Для программистов - Гончаров Д.

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 67 68 69 70 71 72 < 73 > 74 75 76 77 78 79 .. 229 >> Следующая

DDVPDAUTOFLIP DDVPDFILTERQUALITY DDVPD_ID DDVPDALIGN DDVPD_FX DDVPDPREFERREDAUTOFLIР
DDVPDCAPS DDVPDHEIGHT DDVPDVIIDTH
Поле dwMaxWidth является шириной входящего видеопотока.
Поле dwMaxVBIWidth является шириной VBI-данных входящего видеопотока, в пикселях.
Поле dwMaxHeight является шириной поля входящего видеопотока.
Поле dwVideoPortID является ненулевым идентификатором физического видеопорта.
Поле dwCaps указывает на возможности видеопорта. Может принимать значения:
DDVPCAPS_AUTOFLIP DDVPCAPSSHAREABLE
DDVPCAPSCOLORCONTROL DDVPCAPS_SKI РЕ VENFIE LDS
DDVPCAPSINTERLACED DDVPCAPS_SKIPODDFIELDS
DDVPCAPSNONINTERLACED DDVPCAPSSYNCMASTER
DDVPCAPSOVERSAMPLEDVBI DOVPCAPSSYSTEMMEMORY
DDVPCAPSREADBACKFIELD DDVPCAPS_VBIANDVIDEOINDEPENDENT
DDVPCAPSREADBACKLINE DDVPCAPS_VBISURFACE
Поле dwFX также указывает на дополнительные возможности видеопорта. Может принимать значения:
DDVPFXCROPTOPDATA DDVPFXPRESHRINKYB
DDVPFXCROPX DDVPCAPSPRESHRINKXS
DDVPFXCROPY DDVPCAPS_PRESHRINKYS
DDVPFXIGNOREVBIXCROP DDVPFXPRESTRETCHX
DDVPFXINTERLEAVE DDVPFXPRESTRETCHY
DDVPFXMIRRORLEFTRIGHT DDVPFXPRESTRETCHXN
DDVPFXMIRRORUPDOWN DDVPFXPRESTRETCHYN
DDVPFXPRESHRINKX DDVPFX_VBICONVERT
DDVPFXPRESHRINKY DDVPFX_VBINOINTERLEAVE
DDVPFXPRESHRINKXB DDVPFX_VBINOSCALE
Поле dwNumAutoFlipSurfaces является максимально возможным количеством поверхностей с автоматическим переключением.
Поле dwAlignVideoPortBoundary является ограничением размещения поверхности в байтах.
Поле dwAlignVideoPortPrescaleWidth является ограничением ширины после масштабирования.
Поле dwAlignVideoPortCropBoundary является ограничением в байтах по левому краю.
Поле dwAlignVideoPortCropWidth является ограничением ширины зерна в байтах.
Поле dwPreshrinkXStep является шириной сокращения по оси X в шагах; один шаг равен 1/dwPreshrinkXStep.
Поле dwPreshrinkYStep является шириной сокращения по оси Y в шагах; один шаг равен 1/dwPreshrinkYStep.
Поле dwNumVBIAutoFlipSurfaces является количеством поверхностей, для которых допускается автоматическое переключение с использованием VBI.
Поле dwNumPreferredAutoflip является оптимальным количеством поверхностей, для которых допускается автоматическое переключение.
172
Урок 6 • Дополнительные возможности DirectDraw
Контроль над цветом и гаммой
Представьте себе, что ваша игра моделирует реальный мир во всем его многообразии. И одной из особенностей создаваемого мира является смена времени суток. Днем все отлично видно, много яркого света, но при наступлении темноты видимость ухудшается, краски темнеют, выцветают. Причем происходит это не мгновенно, а очень и очень медленно, чуть заметно, почти как в реальном мире.
Согласитесь, довольно приятно играть в игру, в которой ночь определяется не только счетчиком времени в углу экрана, но и степенью освещенности предметов. Программная реализация этого эффекта не настолько сложна, чтобы ею не воспользоваться, в особенности если ваша графическая библиотека предоставляет для этого специальные инструменты.
В старых играх, использующих палитровые режимы, такие возможности, как гашение экрана и затемнение, осуществлялись при помощи изменения всех цветов палитры. Каждая из трех составляющих всех ее элементов уменьшалась на необходимое значение.
С появлением режимов с высоким цветовым разрешением надобность в палитре отпала, и гашение стало выполняться уже при выводе изображения — так же, как и в палитровом, в беспалитровом режиме все цветовые составляющие пикселя уменьшаются на необходимое значение.
Библиотека DirectDraw полностью автоматизирует такие возможности, как управление уровнями цветов и непосредственно самими цветами. Следует заметить, что эти возможности присутствуют только в беспалитровых режимах.
Все действия с цветами, которые мы будем рассматривать далее, подобны наложению цветного фильтра на прожектор, когда видимое изображение меняется, но источник остается прежним. DirectDraw поступает аналогичным наложению светофильтров образом: хотя на экране будут видны изображения с измененным уровнем цвета, никаких изменений данных на поверхности не происходит.
Управление уровнем цвета
Методы работы с уровнем цвета и используемая при этом структура очень похожи на те, что применяются для управления палитрой в 8-битных режимах. Отличие состоит в том, что изменения затрагивают не отдельные пиксели, а все изображение. Перед тем как передать данные на DAC (цифрово-аналоговый преобразователь), значение пикселя разлагается на свои составляющие. Каждая из этих составляющих индексирует элемент одного из трех цветовых массивов, определенных в структуре DDGAMMARAMP и содержащих значения уровней красного, зеленого или синего компонента цвета пикселя, typedef struct DDGAMMARAMP {
WORD red[256];
WORD green[256];
WORD blue[256];
} DDGAMMARAMP. FAR * LPDDGAMMARAMP;
Три поля этой структуры представляют собой массивы, задающие уровни яркости каждой из трех цветовых составляющих. Элементы массивов могут принимать любое значение от 0 до 65535. Цветовая составляющая, значение которой
Контроль над цветом и гаммой
Предыдущая << 1 .. 67 68 69 70 71 72 < 73 > 74 75 76 77 78 79 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.