2010-11-20 2 views
0

не беспокойтесь, я не хочу спрашивать, как использовать текстуры. :)OpenGL текстура, мне не нравится мой bmp

Моя проблема: Я использую несколько текстур. Но если я хочу, чтобы изменить имя файла, как это:

(LoadBMP("grass.bmp", textureImage[3])) // I can see the grass 

в

(LoadBMP("parkett.bmp", textureImage[3])) // No texture, only white color 

Обе картины находятся в том же каталоге, и нет никакого сообщения об ошибке.

Любые идеи? Благодаря Sonja (OpenGL, Visual Studio C++ 2010)

+2

'LoadBMP' не является функцией OpenGL, и вы не предоставили контекста достаточно близко, чтобы определить, что происходит на самом деле. «Только белый» - это значение по умолчанию, возвращаемое, если в OpenGL нет текстуры, поэтому довольно безопасно предположить, что загрузка не удалась. Что касается деталей, вам нужно будет взглянуть на LoadBMP - просто перейдите к нему с помощью отладчика и проверьте, что происходит. –

ответ

2

Скорее всего, эти текстуры использовать другой формат (.bmp не только один формат), и ваша функция поддерживает только один.

Простейшим и лучшим решением является использование хорошей библиотеки для загрузки ваших текстур, а не какого-то мистического LoadBMP. Я рекомендую SOIL - Simple OpenGL Image Loader. Просто добавьте его в свой проект, и вы сможете загружать любые текстуры , jpg или png в идентификатор текстуры OpenGL с помощью одного вызова функции.

+0

Привет, спасибо за ваш ответ. Проблема в том, что это проект для университета, и я должен использовать LoadBMP своего профессора. Есть ли другая возможность? – Sonja

+0

@Sonja: Как насчет того, чтобы оба изображения находились в формате 'bmp'? – jwueller

+0

Попробуйте открыть плохой растровый рисунок с помощью GIMP, сохраните его как 24-битный BMP в другом имени файла, попробуйте снова с новым файлом. Я не могу точно сказать, что происходит, потому что я не знаю ни растровых изображений, ни содержимого LoadBMP. – Kos

0

Можно только предположить, что ваш второй BMP имеет неправильный внутренний формат данных (не-BGR или что-то в этом роде). Согласившись с Kos - вы должны попробовать использовать некоторые библиотеки для этой цели. Есть много «Em - SFML, SDL_image, DevIL ...

0

ли размеры неработающих полномочий текстурных 2 (то есть 1, 2, 4, 8, 16, 32, ...)? Если нет, то поэтому он не работает. Любая шкала или блокнот.

Смежные вопросы