2010-11-20 19 views
0

'u sevmiyor, endişelenmeyin, dokuların nasıl kullanılacağını sormak istemiyorum. :)OpenGL texture, bmp

Sorunum: Birkaç doku kullanıyorum. Böyle dosya adını değiştirmek istiyorsanız:

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

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

için resimler aynı dizinde bulunan ve hiçbir hata iletisi yok.

Herhangi bir fikrin var mı? Teşekkür Sonja (OpenGL, Visual Studio C++ 2010)

+2

'LoadBMP' bir OpenGL işlevi değildir ve gerçekte neler olup bittiğini belirlemek için yeterli içeriğe yakın bir yerde hiçbir zaman sağlamadınız. OpenGL'de hiçbir doku ayarlanmamışsa, "yalnızca beyaz" varsayılan değerdir, bu yüzden yükleme işleminin başarısız olduğunu varsaymak oldukça güvenlidir. Ayrıntılara gelince, LoadBMP'ye bakmanız gerekecek - bir hata ayıklayıcısını kullanarak adım adım ilerleyin ve neler olup bittiğini kontrol edin. –

cevap

2

Büyük olasılıkla, bu dokular, farklı bir biçim kullanmak (.bmp sadece tek biçim değildir) ve fonksiyon yalnızca birini destekler.

En basit ve en iyi çözüm, bazı mistik LoadBMP yerine, dokularınızı yüklemek için iyi bir kitaplık kullanmaktır. SOIL - Simple OpenGL Image Loader.'u öneririm Sadece projenize ekleyin ve herhangi bir bmp, jpg veya png dokularını tek bir işlev çağrısıyla OpenGL doku kimliğine yükleyebileceksiniz.

+0

Merhaba, cevabınız için teşekkürler. Sorun şu ki, bu bir üniversite projesi ve profesörümün LoadBMP'sini kullanmak zorundayım. Başka olasılık var mı? – Sonja

+0

@Sonja: Her iki görüntünün de "bmp" biçiminde olduğundan emin olun. – jwueller

+0

Şunları deneyin: GIMP ile kötü bitmap'i açın, başka bir dosya adında 24 bit BMP olarak kaydedin, yeni dosyayla tekrar deneyin. Ne olduğunu tam olarak anlatamam çünkü ne bitmapleri ne de LoadBMP'nin içeriğini bilmiyorum. – Kos

0

Sadece ikinci BMP'nizin yanlış dahili veri formatına sahip olduğunu varsayabilir (BGR olmayan veya benzeri bir şey). Kos ile anlaştı - bu amaçla bazı kütüphaneleri kullanmayı denemelisiniz. SFML, SDL_image, DevIL ...

0

2 çalışmayan doku güçlerin boyutları Are (yani 1, 2, 4, 8, 16, 32, ...) - Onlardan çok var? Değilse, o yüzden çalışmıyor. Ya ölçek ya da ped.