Урок 6 - накладення текстур - the delphi

Урок 6 - Накладення текстур

Текстура в OpenGL - це простий графічний файл, який відображається на полігоні.
У цьому уроці ми розглянемо 2 види текстур: прості і з альфа-каналом (прозорістю).

Текстуру ми будемо накладати на куб.
Його треба намалювати вручну, щоб не захаращувати код, створіть новий юніт і процедуру RenderBox: Цю процедуру ми будемо використовувати 2 рази.

Позиції для текстури задаються функцією glTexCoord2f (s, t. Single). Вона задає позицію X. Y координати на полігоні. Викликати її слід перед завданням позиції кожної точки полігону.

Для правильного відображення текстури, треба задати параметри відображення, за допомогою функції glTexParameter (тип текстури, тип фільтра, тип фільтрації) в FormCreate. Ну і увімкнути режим накладення текстури в FormCreate. Після ключового слова implementation необхідно записати процедуру самого накладення, тому що її немає в стандартній бібліотеці OpenGL.pas поставляється з Delphi 7. У OpenGL є спеціальний тип даних «Uint». Він зберігає індекс завантаженої текстури в пам'яті.

Тепер потрібно завантажити нашу текстуру при старті програми. Для цього створіть глобальну змінну Tex типу Uint і запишіть наступний код в FormCreate. Файли текстур вже готові і знаходиться в папці з ісходником.
Тут ми завантажуємо текстуру в пам'ять і присвоюємо індекс цієї текстури змінної Tex.

Намалюємо наш кубик:

Урок 6 - накладення текстур - the delphi

І накладемо текстуру:

Урок 6 - накладення текстур - the delphi

Викликавши один раз glBindTexture. текстура буде накладатися на всі полігони, намальовані після виклику. Для того, щоб текстура не накладаються можна заборонити режим накладення glDisable (GL_TEXTURE_2D). а потім дозволити або накласти нульову текстуру, тобто нічого glBindTexture (GL_TEXTURE_2D, 0).
Готово.

Перейдемо до текстури з прозорістю.
Для того, щоб текстура мала прозорі місця, Вам потрібно включити альфа-тест і задати його параметри в FormCreate. Завантажимо текстуру в створену змінну Glass в FormCreate. Тепер накладемо заздалегідь створену текстуру з альфа каналом:

Урок 6 - накладення текстур - the delphi

Ну і нарешті, відобразимо два куба з різними текстурами.

Урок 6 - накладення текстур - the delphi

У наступному уроці ми дізнаємося, як зробити туман (дим) в OpenGL.

Урок 5 - Матеріали і освітлення

Схожі статті