|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.08.2011, 11:09 | #1 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Прозрачность TGA текстур в OpenGL.
Добрый день. Начну сразу со своей проблемы. Я хочу на OpenGL прозрачную, но не полностью, текстуру в формате TGA (с альфа-каналом). Изучая особенности загрузки таких файлов, сделал свою небольшую функцию. Включил ее в код и начал создавать элементарное графическое приложение в delphi с помощью библиотеки OpenGL. И вот настал момент компиляции. Я обрадовался. Да вот получилось совсем не то, что нужно. Все подозрения упали на мною созданную функцию для загрузки TGA изображений. Я где-то раздобыл тестовое приложение (прикрепил к сообщению), и там была найдена схожая с моей, опять же для загрузки текстур, функция. Пришлось подключать файл TGATexture.pas(Из стороннего приложения для загрузки изображений TGA. Этот .pas тоже прикреплен), чтобы использовать LoadTexture(Name:String; Tex:GLuint):boolean. После замены функции я получил такой же результат. Появилось мнение, что текстура выполнена не качественно (имеется в виду неправильный альфа-канал), но при замене текстуры в стороннем приложении, которое я прикрепил, она прекрасно отображалась. Итак, что мы имеем:
1. Качественную текстуру. (т.е. она правильно отображается в приложениях). 2.Модуль TGATexture.pas, который содержит функцию загрузки текстуры и используется в рабочем приложении. 3. Мое не очень хорошее и не рабочее приложение, в котором, кажется, и содержится ошибка. Все что мне нужно это указание на ошибку. По возможности расскажите, как ее исправить. С уважением Владислав. |
08.08.2011, 12:24 | #2 |
Форумчанин
Регистрация: 11.04.2010
Сообщений: 143
|
Что ж я вам посоветую только одно. Прежде чем использовать чужие библиотеки внимательно изучите их. Непосредственно в вашем коде я нашёл несколько ошибок исправил и получил нужный результат. Пока что я вам не буду говорить что именно не правильно, попробуйте сами. Скажу одно - вы не ознакомились с функцией LoadTexture. Посмотрите внимательно что она делает и ответ придёт сам.
|
09.08.2011, 11:03 | #3 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Честно скажу, что я так и не нашел ошибку. Может быть знаний маловато. Было у меня предположение об отсутствии вот таких строк:
Код:
Последний раз редактировалось _PROGRAMM_; 09.08.2011 в 11:28. |
09.08.2011, 12:21 | #4 |
Форумчанин
Регистрация: 11.04.2010
Сообщений: 143
|
Сейчас не дома поэтому на коде не покажу. В общем LoadTexture не только грузит инфо о изображении но ещё и сама создаёт текстуру. А вы зачем то потом ещё раз создаёте её и всё ваше изображение так и не попадает вам а в руки а начинает блуждать по видяхе. Короче вызываешь LoadTexture и всё ни каких GenTextures потом не надо выдумывать. Функция всё сделает за вас.
|
09.08.2011, 13:57 | #5 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Спасибо вам большое.
__ADD Вот все равно я "накосячил". Текстура уже местами прозрачная, но теперь она как бы... Я не могу это объяснить. Прикреплю исходник. Еще раз очень благодарю за помощь __2ADD Все проблему решил. Я неправильно накладывал текстуру glTexCoord2f; Последний раз редактировалось _PROGRAMM_; 09.08.2011 в 18:49. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загрузка множества текстур. OpenGL | Asker13 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 17.04.2011 13:10 |
OpenGL - наложение текстур. | Nater | Общие вопросы Delphi | 0 | 21.02.2011 20:14 |
[OpenGL, Delphi] Добавление текстур на грани куба | newStudent | Помощь студентам | 0 | 03.12.2010 00:50 |
наложение текстур в OpenGL | FJFray | Мультимедиа в Delphi | 1 | 23.10.2010 12:40 |
Наложение нескольких текстур в OpenGL | Krechet | Мультимедиа в Delphi | 4 | 06.05.2010 15:30 |