Страницы:1

Ответить
Текстурирование в openGl - библиотека DevIL (OpenIL).
 
Текстурирование в openGl - библиотека DevIL  (OpenIL).

В этом уроке мы реализуем на практике текстурирование с использованием библиотеки DevIL: создадим оконное приложение, которое будет иметь меню выбора графического файла.
При выборе графического файла он будет загружен в приложение и использован в качестве текстуры вращающейся плоскости.
information must be free for all
 
В статье отсутствуют объявления переменных
 
Цитата
Теперь рассмотрим процесс загрузки текстуры и создания файла.
Про создание файла нет ни слова.

У меня загрузились только очень маленькие файлы, причем сам я такие создать не смог - скачал из Интернета. Также, хорошо работают иконки.
 
Проверял на 2448х3264 (JPG), текстура загрузилась и отобразилась.

Остальные ошибки исправлены, спасибо.
 
Сообщение пользователя constX7 перенесено в отдельную тему
information must be free for all
 
Даже после исправления переменной Path

Additional information: Не удается загрузить DLL "DevIL.dll": Не найден указанный модуль.

Что еще можно сделать?
 
Привет
Цитата
roman написал:
Даже после исправления переменной Path
Additional information: Не удается загрузить DLL "DevIL.dll": Не найден указанный модуль.
Что еще можно сделать?
После исправления Path перезагружали компьютер?
К уроку прикреплены исходные коды с проектом. Если их компилировать, то тоже не работает?
Тип проекта в configuration manager - x86 стоит (http://esate.ru/blogs/noname/oshibka-pri-kompilyatsii-badimageformatexception-0x8007000B/)?
Если положить файл DevIL.dll в папку с проектом / в папку debug к исполняемому файлу?
Изменено:noname - 1 Марта 2016 18:26:27
 
Цитата
После исправления Path перезагружали компьютер? К уроку прикреплены исходные коды с проектом. Если их компилировать, то тоже не работает?
действительно, после перезагрузки заработало. спасибо за совет!   :good:  
программа-урок запускалась и раньше, но когда загружал текстурку, вылетала. теперь все заработало
 
[img]file:///C:/Users/Leonid/Desktop/TaoError1.png[/img]Ребята, привет!

Подскажите плиз ,как мне ошибку обойти?
У меня WIn7 64, VisualStudio2012,  в настройках проекта указано x86.

Как обойти ошибку?

Спасибо!
TaoError1.png (30.29 КБ)
 
Цитата
Leonardo написал:
Подскажите плиз ,как мне ошибку обойти?
У меня WIn7 64, VisualStudio2012,  в настройках проекта указано x86.

Как обойти ошибку?

Спасибо!
А пример из архива у вас запускается (к уроку приложен архив с проектом)?
Вы установили ссылки на библиотеки, как написано в начале урока?

В коде Form1.cs у вас прописано using Tao.DevIl;?
Код
using Tao.OpenGl;
using Tao.FreeGlut;
using Tao.Platform.Windows;

using Tao.DevIl;
Изменено:noname - 18 Августа 2016 12:51:58
 
Цитата
noname написал:
Цитата
Leonardo   написал:
Подскажите плиз ,как мне ошибку обойти?
У меня WIn7 64, VisualStudio2012,  в настройках проекта указано x86.

Как обойти ошибку?

Спасибо!
А пример из архива у вас запускается (к уроку приложен архив с проектом)?
Вы установили ссылки на библиотеки, как написано в начале урока?

В коде Form1.cs у вас прописано  using Tao.DevIl; ?
Код
 using Tao.OpenGl;
using Tao.FreeGlut;
using Tao.Platform.Windows;

using Tao.DevIl; 

Пример из архива выдает ту же самую ошибку!

using Tao.DevIl я прописал
 
А другие проекты у вас запускались?

Может дело в файлах, которые вы пытаетесь загрузить, или в значении url?
Другие вызовы функций Il. до этого вызова ведь не приводят к ошибкам.
 
Проект с визуализацией сферы запустился!

На счет других функций Il - я не пробовал. Посоветуете что сделать?
Il инициализируется же нормально.
 
Цитата
На счет других функций Il - я не пробовал. Посоветуете что сделать?
Il инициализируется же нормально.
Я скачал архив, приложенный к этому уроку и запустил (VS 2015). Все запустилось корректно.
Проверяйте все по шагам:
- установлен tao framework? примечания выполнены (из http://esate.ru/uroki/OpenGL/uroki-OpenGL-c-sharp/initsializatsiya-opengl-v-c-sharp/ и след урока)?
- путь к библиотекам прописан в path (из примечания к этому уроку), перезагрузку выполняли после установки path?
- смотрели отладчиком, что у вас в url в момент ошибки? корректен ли путь?
- если url корректен, файл доступен, пробовали менять файлы? в каком формате и какого размера использовался тестовый файл?
 
Добрый день! Такая же ошибка - 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 проекта... в чем проблема может быть?  
Error.jpg (162.74 КБ)
 
Цитата
PeTa написал:
Добрый день! Такая же ошибка - 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 проекта... в чем проблема может быть?
Привет
Проверьте, что у вас тип проекта x86 установлен (http://esate.ru/blogs/noname/oshibka-pri-kompilyatsii-badimageformatexception-0x8007000B/).
Проекты, приложенные к уроку запускаются нормально?

ну и как в комментарии выше - проверяйте все по шагам (комментарий №14)
Изменено:noname - 8 Декабря 2016 18:08:53
 
Да, х86 установлено изначально, думается это беда с библиотекой. Проект запускается, ошибка появляется только после  OpenFileDialog,  
               string url =openFileDialog1.FileName;
                if (Il.ilLoadImage(url))
скорее всего проблема с url,при попытке вручную присвоить string url = "D:/2.jpg"; - все равно ошибка.  
У меня WIn7 64, VisualStudio2015, в настройках проекта указано x86.  
 
Цитата
PeTa написал:
Да, х86 установлено изначально, думается это беда с библиотекой. Проект запускается, ошибка появляется только после  OpenFileDialog,  
               string url =openFileDialog1.FileName;
                if (Il.ilLoadImage(url))
скорее всего проблема с url,при попытке вручную присвоить string url = "D:/2.jpg"; - все равно ошибка.  
У меня WIn7 64, VisualStudio2015, в настройках проекта указано x86.
если попробовать изменить файл, его разрешение, формат. попробовать простой файл 512х512 пикселей?
у вас свой проект, или вы пытаетесь запустить проект, приложенный к уроку?
 
Проект и свой, и тот что приложен к курсу - одна и та же ошибка. Вот ссылка на них + текстуры  http://hdd.tomsk.ru/desk/czsxxbbk  может кто найдет в чем причина
 
Цитата
PeTa написал:
Проект и свой, и тот что приложен к курсу - одна и та же ошибка
Сейчас скачал и запустил проект, приложенный к уроку - все норм. VS 2015.
Проверяйте наличие библиотек, что прописана переменная path (после установки значений в нее должна быть перезагрузка)

У вас прописаны переменные среды, как написано в конце этого урока? Затем была перезагрузка?
http://esate.ru/uroki/OpenGL/uroki-OpenGL-c-sharp/teksturirovanie-opengl-devil/

Program Files (x86)\TaoFramework\lib\DevIL.dll
скопирована в \Windows\System32\?
 
 По итогу - после копирования  не только в System32, но и в Windows dll- заработало! Путь был прописан, библиотеки добавлены в Debug и не работало.  Не дело это, слишком уж много танцев с бубном... За помощь СПАСИБО!  
 
Здравствуйте, подскажите, как правильно загрузить 8-и битную текстуру?
 
Здравствуйте. Уже не первый раз пользуюсь вашими уроками и создаю разные программы с текстурами и все было успешно до вчерашнего дня. Со вчерашнего дня не могу создать и вывести на экран нужную текстуру. Помогите разобраться с ошибкой - что не так то? У меня ступенчатый массив, загрузка текстуры происходит штатно, но не отображается на экране. Может кто поможет понять, что я упустил, в чем причина, какие настройки сделал не правильно? Моя почта, если что: top-layer@yandex.ru
 
Помогите разобраться! Плиз, Хелп.) Есть у меня участок кода с загрузкой текстуры в память OpenGL:
[CSHARP]
                   //загрузка текстуры
                   // открываем окно выбора файла
                   DialogResult res = openFileDialog1.ShowDialog();
                   // если файл выбран - и возвращен результат OK
                   if (res == DialogResult.OK)
                   {
                       //создаем объект с идентификатором imageId
                       Il.ilGenImages(1, out imageId);
                       //делаем изображение текущим
                       Il.ilBindImage(imageId);
                       //пробуем загрузить изображение
                       if (Il.ilLoadImage(GlobalVarClass.scenarioArray[numscen].floorArray[numfloor].subArray[length].sub_URL))
                       {
                           //если загрузка прошла успешно
                           //сохраняем размеры изображения
                           int width = Il.ilGetInteger(Il.IL_IMAGE_WIDTH);
                           int height = Il.ilGetInteger(Il.IL_IMAGE_HEIGHT);
                           GlobalVarClass.scenarioArray[numscen].floorArray[numfloor].subArray[length].SizeW = width;
                           GlobalVarClass.scenarioArray[numscen].floorArray[numfloor].subArray[length].SizeH = height;
                           //определяем число бит на пиксель
                           int bitspp = Il.ilGetInteger(Il.IL_IMAGE_BITS_PER_PIXEL);
                           switch (bitspp)//в зависимости от полученного результата
                           {
                               case 24:
                                   mGlTextureObject = MakeGlTexture(Gl.GL_RGB, Il.ilGetData(), width, height);
                                   break;
                               case 32:
                                   mGlTextureObject = MakeGlTexture(Gl.GL_RGBA, Il.ilGetData(), width, height);
                                   break;
                           }
                               //активируем флаг, что текстура загружена
                               textureIsLoad = true;
                               //очищаем память
                               Il.ilDeleteImages(1, ref imageId);
                       }
                   }
[/CSHARP]
Здесь видно, что диалог openFileDialog1 никакой функциональной нагрузки на себе не несет, я его вставил для тестов. Он только позволяет выбрать пользователю некий файл и нажать кнопку "Ok". Сама же текстура грузится из переменной в массиве (GlobalVarClass.scenarioArray[numscen].floorArray[numfloor].subArray[length].sub_URL).
В итоге: текстура грузится и отображается (та-даам!). Убираю диалог с if (res == DialogResult.OK) и что? Текстуры нет! Думал, что права Админа не дают грузить текстуру с диска С, но перенос файла на диск D тоже ничего не дал. Пробовал создавать переменную типа string и прописывать путь ручками, без массива. Тоже тухляк. Что за ерунда? Есть идеи, что бы это могло быть? Как дальше двигаться с Tao если такие косяки всплывают?
no_textur.png (25.12 КБ)
Страницы:1

Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Загрузить картинки
ОтправитьОтменить
 
^
Регистрация
Регистрируясь, вы принимаете правила сайта. Если вы не получили код подтв. регистрации - не забудьте проверить папку спам.
Логин*
Email*
Пароль*
Подтверждение пароля*
 
Логин*
Код*
 
×
Восстановление пароля
Пожалуйста, заполните поля, после чего вы получите код подтверждения на ваш Email. Если код не пришел в течении нескольких минут - проверьте папку спам.
Логин

или Email
Логин*
Код подтверждения*
Новый пароль*
Подтверждение пароля*
×
Авторизация
  • Используйте вашу учетную запись на Facebook.com для входа на сайт.
  • Используйте вашу учетную запись VKontakte для входа на сайт.
  • Используйте вашу учетную запись Google для входа на сайт.
Авторизуйтесь с помощью соц. сети или с помощью аккаунта на сайте:
×