Текстурування в opengl - бібліотека devil (openil)

Розробка програми починається зі створення оболонки

Створіть вікно програми і розмістіть на ній елемент openglsimplecontrol. як показано на малюнку 1, після чого встановіть його розміри 500х500. Перейменуйте даний об'єкт, давши йому ім'я AnT.

Текстурування в opengl - бібліотека devil (openil)
Малюнок 1. Вікно створюваної програми.
Також не забудьте встановити посилання на використовувані бібліотеки Tao (рис. 2). Зверніть увагу на посилання на Tao.DevIL - дана бібліотека необхідна нам для завантаження текстур (і не забудьте using Tao.DevIl; інакше ви не зможете працювати з цією бібліотекою).
Текстурування в opengl - бібліотека devil (openil)
Малюнок 2. Підключення бібліотек Tao.
Для реалізації візуалізації буде використовуватися таймер - після ініціалізації вікна він буде генерувати подія, зване тиком таймера раз в 30 мілісекунд. Додайте елемент таймер, перейменуйте екземпляр в RenderTimer і встановіть час тика 30 мілісекунд (як показано на малюнку 3), а також додайте йому подія для обробки тика.

Текстурування в opengl - бібліотека devil (openil)
Малюнок 3. Налаштування таймера.
Також необхідно додати меню для вибору файлів. Для цього додайте нове меню на форму, об'єкт openFileDialog. У властивостях об'єкта openFileDialog встановіть параметр Filter рівним «JPG files | * .jpg | All files | *. *».
Текстурування в opengl - бібліотека devil (openil)
Малюнок 4. Створення меню.
Ініціалізація OpenGl відбувається як завжди, слід зазначити тільки додаткову ініціалізація бібліотеки openIL. Нам буде потрібно оголосити ряд змінних для подальшої роботи програми:


Тепер розглянемо процес завантаження текстури. Для цього ми реалізуємо дві функції - перша виконується як обробка події активації меню, розміщеного на нашій формі. Отримавши ім'я текстури ми проведемо початкову підготовку до завантаження текстури в пам'ять графічного адаптера. Надалі ми виконаємо додаткові налаштування текстури, після яких відразу ж побачимо результат.


Тепер залишається обробити подія відгуку таймера і реалізувати функцію візуалізації сцени. При візуалізації текстури нам необхідно включити режим текстурирования, а також при виведенні вершин об'єктів прив'язувати до них текстурні координати, відповідно до яких відбудеться накладення текстури.

Результат роботи програми - обертається площину із зображенням текстури.

Текстурування в opengl - бібліотека devil (openil)
Малюнок 5. Результат роботи програми.

Примітки

У разі виникнення помилки: Unable to find an entry point named 'ilInit' in DLL 'DevIL.dll'. або подібних:
  • Перейдіть: Мій комп'ютер -> Властивості -> Додаткові параметри системи -> Змінні середовища.
  • У списках системних змінних виберіть Path. натисніть «Змінити. »
  • Поставте в кінці; (Крапку з комою) і потім додай шлях до TaoFramework \ bin. наприклад, C: \ Program Files (x86) \ TaoFramework \ bin ;. а також до TaoFramework \ lib (шлях повністю).

Сподобалася публікація? Збережіть її, щоб повернутися до вивчення матеріалу!

Прикріплені файли для скачування:

На рахунок інших функцій Il - я не пробував. Порадите що зробити?
Il инициализируется ж нормально.

Добридень! Така ж помилка - An unhandled exception of type 'System.AccessViolationException' occurred in Textures.exe
ation: Спроба читання або запису в захищену пам'ять. Це часто свідчить про те, що інша пам'ять пошкоджена.
Прописані всі бібліотеки:

using Tao.OpenGl;
using Tao.FreeGlut;
using Tao.Platform.Windows;
using Tao.DevIl;
і DevIL.dll скопійований в папку Debug проекту. в чому проблема може бути?