Библиотека трехмерной графики Open gl



страница8/20
Дата25.11.2012
Размер1.49 Mb.
ТипДокументы
1   ...   4   5   6   7   8   9   10   11   ...   20

2 Альфа-тест. Метод AlphaFunc


В этом разделе рассмотрены команды, позволяющие фильтровать вывод вершин в буфер фрейма в зависимости от значения альфа-компоненты цвета.
Существует способ фильтровать вывод изображения на экран в зависимости от значения параметра alpha метода Color. Это так называемый альфа-тест.

Для определения условий альфа-теста используется метод AlphaFunc, задающий функцию тестирования.

///

/// Определяет способ тестирования по параметру альфа.

/// Тот или иной способ позволяет фильтровать изображение вершин в зависимости

/// от значения альфа-компоненты цвета.

///


///


/// Определяет функцию сравнения при использовании альфа-тестирования.

/// Принимаются символьные постоянные NEVER, LESS, EQUAL, LEQUAL,

/// GREATER, NOTEQUAL, GEQUAL и ALWAYS.

/// По умолчанию условие альфа-тестирования установлено в ALWAYS,

/// то есть никакой фильтрации изображения по параметру альфа не происходит.

///


///


/// Задает значение параметра альфа, с которым сравнивается другое значение альфа,

/// поступающее в буфер вместе с изображением, например, является параметром метода Color.

/// Значение параметра сжимается в интервал [0; 1]. Значение по умолчанию равно 0.

///


[DllImport("OPENGL32.DLL", EntryPoint = "glAlphaFunc")]

public static extern void AlphaFunc(int function, float referenceValue);

Использование этого метода требует наличие констант

// Символьные постоянные, используемые в определении функции альфа-тестирования

public const int NEVER = 0x0200;

public const int LESS = 0x0201;

public const int EQUAL = 0x0202;

public const int LEQUAL = 0x0203;

public const int GREATER = 0x0204;

public const int NOTEQUAL = 0x0205;

public const int GEQUAL = 0x0206;

public const int ALWAYS = 0x0207;

После задания условий альфа-тестирования необходимо активировать сам процесс тестирования методом Enable с параметром ALPHA_TEST.

///

/// Параметр активации и дезактивации альфа-теста

///


public const int ALPHA_TEST = 0x0BC0;

Приведенные описания следует поместить в класс gl библиотеки GL.
К примеру, измените код в случае "One point" метода BuildFrame() класса f3D с тем, чтобы увидеть эффект альфа-тестирования

case "One point":

gl.PointSize(10);

// Задается правило тестирования: alpha должно быть меньше 0.2.

gl.AlphaFunc(gl.LESS, .2f);

// Активируется альфа-тестирование

gl.Enable(gl.ALPHA_TEST);

gl.Color(1, 0, 0, .1f);

// Точка изображается, т.к. альфа-компонента цвета 0.
1 меньше, чем заданное выше значение 0.2

gl.Begin(gl.POINTS);

gl.Vertex(0, 0);

gl.End();

break;

Измените в этом коде условие тестирования. Например, замените gl.LESS на gl.GREATER, или 0.2 на 0.05. В обоих случаях точка не будет изображаться, т.к. условия теста не будут соблюдаться.
Для определения состояния включения альфа-теста можно использовать метод IsEnabled с тем же параметром ALPHA_TEST, либо метод Get. Для определения текущего значения параметров метода AlphaFunc используется метода Get в форме

(int)gl.Get(gl.ALPHA_TEST_FUNC, 1)[0]

gl.Get(gl.ALPHA_TEST_REF, 1)[0]

Константы, используемые здесь, имеют вид

///

/// Аргумент Get требует возврата значения одного параметра - целочисленной постоянной,

/// определяющей функцию альфа-теста.

///


public const int ALPHA_TEST_FUNC = 0x0BC1;

///

/// Аргумент Get требует возврата значения одного параметра -

/// текущего значения параметра referenceValue метода AlphaFunc.

///


public const int ALPHA_TEST_REF = 0x0BC2;

Метод PushAttrib с параметром COLOR_BUFFER_BIT позволяет сохранить в стеке текущие установки альфа-теста.
Тест рубежного контроля

  1. Как включить альфа-тест?

  2. Какой метод определяет правило альфа-тестирования?

  3. Какой смысл имеет аргумент GEQUAL метода AlphaFunc?

  4. Как узнать текущее состояние активности альфа-тестирования?

  5. Как узнать текущие значения аргументов метода AlphaFunc?

  6. Как сохранить в стеке текущее состояние альфа-тестирования?


Далее читатель может

  1. Посмотреть новый раздел авторской версии приложения, иллюстрирующего работу команд OpenGL.

  2. Самостоятельно внести изменения в имеющийся проект, чтобы освоить работу описанных методов.

  3. Продолжить создание авторской версии приложения, следуя его советам.



1   ...   4   5   6   7   8   9   10   11   ...   20

Похожие:

Библиотека трехмерной графики Open gl iconВидеоадаптеры. Архитектурные особенности и технические характеристики
Именно за это время разработчики специализированных процессоров, ориентированных на обработку и ускорение трехмерной графики, успевают...
Библиотека трехмерной графики Open gl iconМетодические указания по выполнению лабораторных работ по дисциплине «Компьютерная графика»
Особый акцент делается на практическое применение изучаемых алгоритмов. Также особое внимание уделяется современным алгоритмам обработки...
Библиотека трехмерной графики Open gl iconВиртуальная реальность
Этот эффект является специфическим отличием от обычных систем трехмерной графики широко доступных на персональных компьютерах. Недолгое...
Библиотека трехмерной графики Open gl icon1. Мультимедиа технологии в туристическом бизнесе
При наличии устройств мультимедиа, компьютер можно использовать в качестве кино-, видеопроектора или проектора двух- или трехмерной...
Библиотека трехмерной графики Open gl iconOpenGL: Основы. (Часть 1)
Многие графические пакеты используют Opengl для вывода трёхмерной графики. Многие известные игры, такие как Quake, Serious Sam и...
Библиотека трехмерной графики Open gl iconПрограмма для создания и обработки растровой графики с частичной поддержкой векторной графики
Использование свободного программного обеспечения при изучении компьютерной графики в школе
Библиотека трехмерной графики Open gl iconГрафики и мультимедиа
Баяковский Ю. М., Игнатенко А. В., Фролов А. И. Графическая библиотека OpenGL. Учебно-методическое пособие
Библиотека трехмерной графики Open gl iconГрафики и мультимедиа
Баяковский Ю. М., Игнатенко А. В., Фролов А. И. Графическая библиотека OpenGL. Учебно-методическое пособие
Библиотека трехмерной графики Open gl iconФункции и графики в экзаменационных заданиях при подготовки к гиа
Цель: повторить, обобщить пройденный материал по теме «Функции и графики для решения заданий», «Кусочные графики», «Графические задания...
Библиотека трехмерной графики Open gl iconУстановка системы Библиотека х с компакт-диска
Если режим автозапуска отключен, то Вы должны сами запустить программу установки. Для этого нажмите кнопку Пуск(Start) и выберите...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org