Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2011, 12:57   #61
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

по мне так тут две вещи могут быть (как по отдельности так и в совокупе)
1. не правильное смещение на данные (нужны именно данные(пиксели) без всяких заголовков файла-контейнера)
2. не правильное указание процедуре glTexImage2D на формат – данных.

Попробуйте для начала формат задать таким макаром...

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, 128, 128, 0, GL_BGR, GL_UNSIGNED_BYTE, @Str[1]);
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 08.01.2011, 18:43   #62
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Цитата:
Попробуйте для начала формат задать таким макаром...

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, 128, 128, 0, GL_BGR, GL_UNSIGNED_BYTE, @Str[1]);
Вот, что я вижу после этого:



Цитата:
1. не правильное смещение на данные (нужны именно данные(пиксели) без всяких заголовков файла-контейнера)
Пошел проверять. Результат потом напишу.

--------------------------------------------------------------------------------------------------------

Поставил @Str[18], и все равно цвета неправильноотображаются:



Вообще я заметил, что в зависимости от того, какое число поставишь в скобках, будет меняться цвет изображения:



Далее цвета повторяются. Но само изображение от этого не страдает, только при некоторых числах возникает смещение. Например, если я напишу '@Str[1000]', то опять увижу изображение под номером 4.

Последний раз редактировалось ZotaC; 08.01.2011 в 19:29.
ZotaC вне форума Ответить с цитированием
Старый 08.01.2011, 21:37   #63
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

Тогда надо посчитать смещение на данные правильно…
считается оно на с++ так:
Код:
(buffer + sizeof(TGAHeader) + header->idlength)
где TGAHeader это структура заголовка TGA-файла …

Код:
#pragma pack(push)
#pragma pack(1)
struct TGAHeader
{
	BYTE  idlength;
	BYTE  colormap;
	BYTE  datatype;
	BYTE  colormapinfo[5];
	WORD xorigin;
	WORD yorigin;
	WORD width;
	WORD height;
	BYTE  bitperpel;
	BYTE  description;
};
#pragma pack(pop)
А header->idlength берется непосредственно из начала загружаемого файла…
Код:
header = (TGAHeader*)buffer;
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 08.01.2011, 22:14   #64
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

.pixel, а разве, неправильно просто писать '18'? Я брал информацию отсюда:

http://delphiworld.narod.ru/base/tga_file_caption.html
ZotaC вне форума Ответить с цитированием
Старый 09.01.2011, 09:16   #65
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

ZotaC
Цитата:
.pixel, а разве, неправильно просто писать '18'? Я брал информацию отсюда:
Ставьте 18 и если все идет - отлично, а нет попробуйте приплюсовать header->idlength
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 09.01.2011, 23:45   #66
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

IDLength = 0: плюсовать нечего. (
ZotaC вне форума Ответить с цитированием
Старый 10.01.2011, 07:55   #67
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

смею предположить что скорее всего не GL_BGR, а GL_RGB
Kostia вне форума Ответить с цитированием
Старый 10.01.2011, 09:52   #68
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

в TGA вроде порядок байтов другой... для 24х бит - GL_BGR, и GL_BGRA который c альфой 32х битный... читата из ссылки Zota'ka - "...(B)lue (синий), (G)reen (зеленый), (R)ed (красный) и значение атрибута - (A)ttribute."
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 10.01.2011, 12:25   #69
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Цитата:
в TGA вроде порядок байтов другой
.pixel, спасибо, я это как раз забыл. Число 19 в скобках (картинка №3) и GL_BGRA дали правильный результат. Пойду разбираться.
ZotaC вне форума Ответить с цитированием
Старый 11.01.2011, 20:39   #70
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Здравствуйте, теперь возник тот же вопрос относительно загрузки файлов .jpg. Как я понимаю, у них размер заголовка зависит от многих параметров и не фиксирован как в .tga, то есть, там все намного сложнее. Каковы способы загрузки .jpg через glTexImage2D?
ZotaC вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL...Игры без тормозов...Как?! saggy Мультимедиа в Delphi 10 03.07.2010 12:25
разработка игры "Реверси". Имеется код этой игры на С++ CD-RW Помощь студентам 0 28.03.2010 00:13
Хочу начать писать игры на OpenGL lionbeast Помощь студентам 2 02.10.2009 11:04
OpenGL Paul_AG C++ Builder 20 14.09.2009 19:07
OpenGL в С# LeGAl Общие вопросы .NET 0 30.04.2009 02:15