Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2





Скачать 475.81 Kb.
НазваниеПрограмма по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2
страница13/13
Дата публикации17.05.2014
Размер475.81 Kb.
ТипРуководство
100-bal.ru > Информатика > Руководство
1   ...   5   6   7   8   9   10   11   12   13

7.2.Альфа-тест


По сути, альфа-тест – возможность графического акселератора, в чем-то аналогичная z-тесту. Она позволяет не ставить пиксель в буфер кадра (и z-буфер) если не выполняется условие:

source alpha <функция сравнения> reference alpha.

У пользователя есть возможность установить следующие настройки (через SetRenderState()):

  • D3DRS_ALPHATESTENABLE – включить/выключить тест

  • D3DRS_ALPHAFUNC – задать функцию сравнения (>, <, =, ≤,≥,≠)

  • D3DRS_ALPHAREF – задать константу (reference alpha) в интервале 0x00 .. 0xFF, с которой осуществляется сравнение.




Рис. 15. Слева – дерево без альфа-теста. Для среднего дерева задан альфа-тест

alpha > 0. Для правого альфа-тест: alpha = 0xFF. Следует обратить внимание на наличие белой окантовки вокруг дерева в центре. Это область, где значение альфа-канала в связи с интерполяцией отлично от 0 или 1.

Таким образом, если задать сравнение альфа = 0xFF, то мы будем ставить в буфер кадра только непрозрачные пиксели, что позволит не закрывать объекты прозрачными пикселями и избежать артефактов, описанных выше. При этом включение смешивания с буфером кадра становится не нужным.

Следует обратить внимание, что даже для текстуры, содержащей в альфа-канале только 0 и 1, сравнения альфа = 0xFF и альфа > 0 не эквивалентны. Это связано с тем, что при линейной фильтрации текстуры возникают промежуточные значения альфа-канала.

8.Библиография


1. Документация к DirectX 9.0с SDK.

2. Станислав Горнаков, DirectX 9: Уроки программирования на С++, СПб: БХВ-Петербург, 2004 г.

3. Михаил Фленов, DirectX и С++. Искусство программирования, СПб: БХВ-Петербург, 2006 г.

4. А. И. Евченко, OpenGL и DirectX. Программирование графики, СПб: Питер, 2006 г.

9.Дополнения

9.1.Определение возможностей устройства


Так как Direct3D9.0c работает на очень широком спектре оборудования: от старых графических плат типа NVidia Riva 128, до современных типа ATI Radeon X1850. Поэтому автор приложения, использующего Direct3D должен в первую очередь определиться на каком множестве оборудования будет работать его приложение, а потом использовать информацию о возможностях устройства (capabilities), чтобы подстроить работу приложения под его возможности (выбрать техники, основанные на поддерживаемых возможностях; использовать правильные размеры текстур и их форматы; и т.д.). Для получения информации о возможностях устройства нужно вызвать метод GetDeviceCaps(), который заполняет структуру D3DCAPS9.

В настоящем пособии не ставится цель полностью осветить содержимое этой структуры. В лабораторных работах используются определенные предположения, которые выполняются для практически всех видеокарт, имеющихся в распоряжении у читателя. Однако следует помнить, что далеко не все заявленные в документации Direct3D возможности, поддерживаются вашей графической платой. Возможности вашего конкретного устройства можно посмотреть в DirectX Caps Viewer – приложении, поставляющемся вместе с SDK.

9.2.Использование отладочных возможностей библиотеки


Direct3D 9.0c поставляется в двух версиях: отладочной (debug) и финальной (release). Первый вариант работает медленнее, зато позволяет получать отладочные сообщения о неправильном использовании API, утечках памяти (memory leaks) и пр. Переключать версии Direct3D можно в Control Panel (см. рис. 16). Там же можно настроить объем отладочных сообщений, попадающих в output панель Visual Studio. Для большинства ситуаций достаточно среднего положения слайдера.

В случае возникновения утечек памяти библиотека выводит огромное количество невразумительных сообщений вида:

Direct3D9: (WARN) :Memory Address: 022ea3c0 lAllocID=6342 dwSize=00000030, (pid=00000f3c)

Direct3D9: (WARN) : Stack Back Trace

Direct3D9: (ERROR) : [0] : Address 0155AA18

Direct3D9: (ERROR) : [1] : Address 01579B2B

Direct3D9: (ERROR) : [2] : Address 01581A1B

Direct3D9: (ERROR) : [3] : Address 015C017F

Direct3D9: (ERROR) : [4] : Address 005620CE

………………………………………

Direct3D9: (ERROR) : [15] : Address 00000000



Рис. 16. Окно Control Panel, управляющее настройками отладочной версии Direct3D 9.0c. (1) – слайдер, контролирующий объем отладочных сообщений, (2) – переключение между отладочной и финальной версиями библиотеки, (3) – включает точку останова (break point) на обнаружение утечек памяти, (4) – включает точку останова на возникновение ошибки.
По ним не возможно распознать причину возникновения утечки, поэтому следует внимательно следить, чтобы эти сообщения отсутствовали в output. При этом следует помнить, что они не появятся, если программа не завершилась. То есть выходить из программы следует, не прекращая отладку, тем самым прерывая программу, а в обычном штатном режиме.

В случае возникновения этих сообщений следует внимательно просмотреть код, написанный после последнего запуска, на предмет ошибок забытых вызовов Release(). В большинстве случаев утечки памяти в Direct3D возникают из-за того, что пользователь забывает освободить указатель на объект Direct3D.

9.3.Словарь англоязычных терминов


Таблица 6. Словарь англоязычных терминов.

Термин

Объяснение

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

Alpha-channel

Дополнительная (четвертая) компонента цвета, обычно использующаяся в качестве прозрачности.

альфа-канал

Aspect ratio

Отношение ширины к высоте

форматное соотношение

Capability

В контексте Direct3D API – возможность графической платы

возможность устройства

FPS

Frames per second. Количество кадров в секунду. Обычно используется как показатель производительности приложения.

FPS

GPU

Graphics Processor Unit (по аналогии с CPU = Central Processor Unit). Процессор графической платы.

GPU

Index

В контексте Direct3D API обычно индекс вершины.

Индекс

Memory leaks

Утечки памяти. В контексте Direct3D API утечкой памяти обычно является ситуация, в которой пользователь считает, что он уже не пользуется ресурсом, в то время как Direct3D считает обратное.

Утечки памяти

Mipmap

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

Мипмапы

Pipeline

Конвейер. В контексте Direct3D API может пониматься как

  • графический конвейер – последовательность действий от начала обработки вызова DrawIndexedPrimitive() до результирующих пикселов в буфере кадра

  • пиксельный конвейер – смешивание текстур в определенном порядке по определенным формулам

Конвейер

Render(-ing)

Визуализация (см. подробности в разделе 2).

Рендеринг

Stage

В контексте Direct3D API – этап пиксельного конвейера.

Этап

State

В контексте Direct3D API – некоторая установка/настройка API. Устанавливаются state следующими функциями:

  • SetRenderState()

  • SetTextureStageState()

  • SetSamplerState()

Настройка

Texture sampling

Выборка цвета из текстуры по текстурным координатам, включающая в себя весь процесс получения цвета: адресация, выбор мипмапа, выборка нескольких цветов с целью фильтрации, фильтрация, фильтрация мипмапов.

Выборка из текстуры

Vertex

Вершина. В контексте Direct3D API – комплекс данных, включающих позицию, соответствующий вершине объекта.

Вершина




1 От англ. rendering. Этому термину частично соответствует русский термин визуализация, который практически не используется в повседневной речи и появляется лишь в печатной литературе.

2 за подробностями следует обратиться к документации

3 описание того, как цвет кодируется 32-х битным целым будет дано в разделе 4.1.

4 Эта тема будет обсуждаться позже.

5 Понятие текстурных координат (необходимых для наложения текстуры на объект) рассматривается в разделе 6.

6 В принципе, клиповку можно отключить установкой D3DRS_CLIPPING.

7 Более подробно о системах координат можно прочитать в документации к Direct3D в разделе DirectX Graphics\Programming Guide\Getting Started\3-D Coordinate Systems.

8 Ее более детальное описание можно найти в документации DirectX Graphics\Programming Guide\Getting Started\Lights and Materials\Mathematics of Lighting.

9 Следует использовать наименьшие возможные значения индексов, т.к. это экономит внутреннюю память библиотеки. Для лабораторных работ достаточно использовать последовательные номера источников 0, 1, 2 и т.д.

10 Получение информации о возможностях, поддерживающихся устройством, будет рассмотрено в разделе 9.1.

11 Функция frac(x) извлекает дробную часть числа x.

12 Понятие анизотропной фильтрации в данном руководстве не рассматривается.

13 в принципе, чтение мипмапов, созданных пользователем возможно через Direct3D формат текстур – DDS.

14 первый “нормальный” графический акселератор

1   ...   5   6   7   8   9   10   11   12   13

Похожие:

Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Проектно-образовательная деятельность по формированию у детей навыков безопасного поведения на улицах и дорогах города
Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Цель: Создание условий для формирования у школьников устойчивых навыков безопасного поведения на улицах и дорогах
Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...
«Организация воспитательно- образовательного процесса по формированию и развитию у дошкольников умений и навыков безопасного поведения...
Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Цель: формировать у учащихся устойчивые навыки безопасного поведения на улицах и дорогах, способствующие сокращению количества дорожно-...
Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Конечно, главная роль в привитии навыков безопасного поведения на проезжей части отводится родителям. Но я считаю, что процесс воспитания...
Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Поэтому очень важно воспитывать у детей чувство дисциплинированности и организованности, чтобы соблюдение правил безопасного поведения...
Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Всероссийский конкур сочинений «Пусть помнит мир спасённый» (проводит газета «Добрая дорога детства»)
Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...
Поэтому очень важно воспиты­вать у детей чувство дисциплинированности, добиваться, чтобы соблюдение правил безопасного поведения...
Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...

Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...

Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...

Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...

Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...

Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...

Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...

Программа по формированию навыков безопасного поведения на дорогах и улицах «Добрая дорога детства» 2 iconПрограмма по формированию навыков безопасного поведения на дорогах...



Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск