Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не загружается 10-я по счету текстура 
:(
    Опции темы
Gongex
Дата 15.2.2009, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



Беру пример из урков Нэхэ,загружаю 9 Битмапов,.....
Код

LRESULT    CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);    // Declaration For WndProc

AUX_RGBImageRec *LoadBMP(char *Filename)                // Loads A Bitmap Image
{
    FILE *File=NULL;                                    // File Handle

    if (!Filename)                                        // Make Sure A Filename Was Given
    {
        return NULL;                                    // If Not Return NULL
    }

    File=fopen(Filename,"r");                            // Check To See If The File Exists

    if (File)                                            // Does The File Exist?
    {
        fclose(File);                                    // Close The Handle
        return auxDIBImageLoad(Filename);                // Load The Bitmap And Return A Pointer
    }

    return NULL;                                        // If Load Failed Return NULL
}

Код

int LoadGLTextures()                                    // Load Bitmaps And Convert To Textures
{
    int Status=FALSE;                                    // Status Indicator

    AUX_RGBImageRec *TextureImage[15];                    // Create Storage Space For The Texture

    memset(TextureImage,0,sizeof(void *)*1);   

    if (TextureImage[0]=LoadBMP("1.bmp"))
    {
        Status=TRUE;                                    // Set The Status To TRUE

        glGenTextures(1, &texture[0]);                    // Create The Texture

        // Typical Texture Generation Using Data From The Bitmap
        glBindTexture(GL_TEXTURE_2D, texture[0]);
        glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
        glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
    }

    if (TextureImage[0])                                    // If Texture Exists
    {
        if (TextureImage[0]->data)                            // If Texture Image Exists
        {
            free(TextureImage[0]->data);                    // Free The Texture Image Memory
        }

        free(TextureImage[0]);                                // Free The Image Structure
    }

    return Status;    





Все работает а при загрузке 10-го битмапа не идет,
и при включении окно появляется но,ничего не рисуется из функций опенгл и срабатывает эта функция:
Код

if (hDC && !ReleaseDC(hWnd,hDC))                    // Are We Able To Release The DC
    {
        MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMATION);
        hDC=NULL;                                        // Set DC To NULL
    }

Я решил что какие то ограничения на колво загружаемых текстур,либо "память" "проги" перегружена.Кто знает?

Добавлено через 1 минуту и 52 секунды
эта прога-трехмерная квартира,мне туда ещё тексур 20 надо будет грузить.Для балкона,площадки,лифта и лестницы и т.д.
PM MAIL   Вверх
Solomon
Дата 15.2.2009, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



Можешь весь код выложить? по тому что ты предоставил врятли можно проблему определить...

Добавлено через 8 минут и 33 секунды
Странно у тебя как то процесс загрузки происходит... у тебя там с указателями напарено походу...
покажи код...


--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Solomon
Дата 15.2.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 23.1.2006
Где: Украина Киев

Репутация: нет
Всего: 2



Gongex, Посмотри процесс загрузки нескольких текстур(например в 21-м уроке..) и сравни с тем что есть у тебя...



--------------------
Если не идти до конца к поставленным целям и не пытатся их достигнуть, каким бы тяжелым не казался путь, то лучше и не ставь их перед собой, но тот кто не ставит перед собой труднодоступные цели, никогда не ощутит эйфорию настоящей победы... победы над миром...
Соломон 2008
PM MAIL ICQ GTalk YIM   Вверх
Rpahut
Дата 15.2.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


0xdeadbeef
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 9.4.2006

Репутация: нет
Всего: 7



На самом деле, чтот не видно где вы загружаете девять текстур...
Gonqex, вы когда-нибудь слышали про debugger? Я сам не пробовал, но говорят классная штука smile .
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею?
PM MAIL   Вверх
Gongex
Дата 15.2.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



код формата .cpp На этой странице::
http://unlater.narod.ru/OpenGl_Slastenka1.html

Там полно такого glBindTexture(GL_TEXTURE_2D, texture[_]);
PM MAIL   Вверх
Rpahut
Дата 15.2.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


0xdeadbeef
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 9.4.2006

Репутация: нет
Всего: 7



Цитата

/*
* This Code Was Created By Jeff Molofee 2000
* A HUGE Thanks To Fredric Echols For Cleaning Up
* And Optimizing This Code, Making It More Flexible!
* If You''ve Found This Code Useful, Please Let Me Know.
* Visit My Site At nehe.gamedev.net
*/ 

 smile 

glGenTextures(9, &texture[8]);   smile 
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею?
PM MAIL   Вверх
Gongex
Дата 15.2.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



так я не понял,все по порядку обьявляются,нигде эта текстура не повторяется....
-?!?

Добавлено через 5 минут и 5 секунд
Цитата

вы когда-нибудь слышали про debugger?

Ну Debug знаю,и такая папка есть,представляю как переводится....Типа "сборка"..
И точку останова знаю.На полях ставится.

Добавлено через 8 минут и 30 секунд
в21-м уроке нашел вот такое  memset(TextureImage,0,sizeof(void *)*2);
у меня же на 9 текстур стоит  memset(TextureImage,0-9,sizeof(void *)*1!!!!);

Добавлено через 9 минут и 46 секунд
пронумеровал,-проблема осталась
PM MAIL   Вверх
Rpahut
Дата 15.2.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


0xdeadbeef
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 9.4.2006

Репутация: нет
Всего: 7



Вы запрашиваете девять текстур. opengl раскладывает их в texture[8] ,[9], [10], [11], [12], [13], [14], [15] и [16]... Э-э-э, постойте-ка, у вас в массиве всего 15 элементов!
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею?
PM MAIL   Вверх
Gongex
Дата 15.2.2009, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



думаю,экспериментирую.Так и сяк ставлю коэффициэнты


Это сообщение отредактировал(а) Gongex - 15.2.2009, 22:07
PM MAIL   Вверх
Gongex
Дата 15.2.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



переделал под 21 урок Нэхэ,через цикл,и ваще че та напутал,выдает ошибку Break/Continue ..
и такие значения:
        EBX    00000000    
        ESI    0207AFFF    
        ECX    00000003    
        EBP    00000095    

Вылезает файл Disassembly
Код там же:http://unlater.narod.ru/OpenGl_Slastenka1.html
Кто знает такие вещи?    

PM MAIL   Вверх
Rickert
Дата 16.2.2009, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Gongex, начните с первого урока NeHe, пожалуйста smile 
Ещё неплохо бы вообще понимать что пишите, а то функции типа:
Код
у меня же на 9 текстур стоит  memset(TextureImage,0-9,sizeof(void *)*1);

Убивают. Вы понимаете вообще что пишите? 0-9, вы передаёте в качестве аргумент цифру минус девять, потом зачем то получаете размер пустого указателя и умножаете на единицу. Объясните как вы этого добилиь? smile 

Это сообщение отредактировал(а) Rickert - 16.2.2009, 05:53


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Gongex
Дата 16.2.2009, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



Мне по делу надо а не риторику,есть код на сайте,там у меня проблемы с glGenTexture,жду подсказок.
PM MAIL   Вверх
Gongex
Дата 16.2.2009, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



с флешки взял сохраненный рабочий код,и там до 6-й текстуры,идет нормально,есть sizeX, sizeY, data, а после 7-й загрузки ни размеры ни название картинки неизветны.Я поставил точку останова на эту строку:if (TextureImage[7]=LoadBMP("8.bmp"))

Че подправить?!?

Добавлено через 8 минут и 29 секунд
http://unlater.narod.ru/OpenGl_Slastenka1.html

Здесь код
PM MAIL   Вверх
Rpahut
Дата 16.2.2009, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


0xdeadbeef
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 9.4.2006

Репутация: нет
Всего: 7



Цитата

думаю,экспериментирую.Так и сяк ставлю коэффициэнты

Конструктивный подход. 

Я уже указал где у вас ошибка. Все что вам нужно это разобраться с одной единственной функцией openGL.
Могу дать еще подсказку - вы передаете неправильные параметры - но это кажется и так понятно, потому что оно у вас не работает.
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею?
PM MAIL   Вверх
Gongex
Дата 16.2.2009, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



Rpahut
спасибо за подсказку,я ничо не понял,мог бы и вообще не писать

Добавлено через 1 минуту и 8 секунд
Зачем существует этот форум,если ответить некому?!?........
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0968 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.