Народный учебник по OpenGL


Урок 8. Смешивание - часть 3


bool  fp;    // F Нажата?

bool  bp;    // B Нажата? ( Новое )

 

GLfloat xrot;     // Вращение вдоль оси X

GLfloat yrot;     // Вращение вдоль оси Y

GLfloat xspeed;   // Скорость вращения вдоль оси X

GLfloat yspeed;   // Скорость вращения вдоль оси X

GLfloat z=-5.0f;  // Глубина в экран.

 

// Задаем параметры освещения

GLfloat LightAmbient[]= { 0.5f, 0.5f, 0.5f, 1.0f };

GLfloat LightDiffuse[]= { 1.0f, 1.0f, 1.0f, 1.0f };

GLfloat LightPosition[]={ 0.0f, 0.0f, 2.0f, 1.0f };

 

GLuint filter;     // Используемый фильтр для текстур

GLuint texture[3]; // Хранит 3 текстуры

 

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);// Объявление для WndProc

 

Спускаемся вниз до LoadGLTextures(). Найдите строку, которая говорит texture1 = auxDIBImageLoad ("Data/crate.bmp"), измените ее на строку ниже. Мы используем текстуру окрашенного стекла для этого урока вместо текстуры ящика.

 

       // Загрузка текстуры стекла (МОДИФИЦИРОВАННО)

       texture1 = auxDIBImageLoad("Data/glass.bmp");

 

Прибавьте следующие две строки где-нибудь в InitGL(). Первая строка задает яркость для отрисовки объекта, равную полной яркости с альфой 50 % (непрозрачность). Это означает, когда включается смешивание, объект будет на 50% прозрачный. Вторая строка задает тип смешивания.

 

Комментарий Rui Martins: альфа, равное 0.0 подразумевало бы, что материал полностью прозрачен. Значение 1.0 было бы сиречь полностью непрозрачно.

 

glColor4f(1.0f,1.0f,1.0f,0.5f);   // Полная яркость, 50% альфа (НОВОЕ)

glBlendFunc(GL_SRC_ALPHA,GL_ONE); // Функция смешивания для непрозрачности,

                                  // базирующаяся на значении альфы(НОВОЕ)

 

Найдите следующий раздел кода, он должен быть в самом конце урока семь.

 

       if (keys[VK_LEFT])         // Нажата левая стрелка?

       {

              yspeed-=0.01f;      // уменьшаем скорость

       }

 

Под вышеупомянутым кодом мы прибавляем следующие строки. Отслеживаем нажатие ‘B’. Если она была нажато, компьютер проверит, включено ли смешивание. Если смешивание задано, компьютер выключает его. И наоборот, если смешивание выключено, включает его.




Начало  Назад  Вперед



Книжный магазин