2009-07-15 8 views
8

Próbowałem wszystkiego, od SDL do DevIL, i wszystkie one zawiodły z różnych powodów.

Uszkodzenia SDL z różnych powodów, a DevIL ma jakiś dziwny problem, w którym nawet po włączeniu IL/ilut.h i łączeniu wszystkiego, a także w innych nagłówkach, nie definiuje funkcji, które muszę załadować do obrazu opengl textures (coś o USE_OPEN_GL nie jest definiowane). Proszę o inne libowanie do ładowania map bitowych lub png w formacie, który można łatwo przekonwertować na opengl lub rozwiązać problem diabła.

dziękiC++ platforma Image Loader dla OpenGL

Odpowiedz

0

nie trzeba Ilut robić, co chcesz. możesz po prostu użyć ilGetData() i glTexImage2d()

0

Ładowanie obrazów bitmap (.bmp) i netpbm (.pbm, pgm, .pnm) jest dość banalne, ponieważ przechowują nieskompresowane obrazy. Aby załadować pliki PNG, użyj libpng. Aby załadować pliki JPEG, użyj libjpeg. W przypadku innych typów obrazów użyj odpowiedniej biblioteki. Jest dobra zmiana, że ​​uderzenie "lib" na początek nazwy obrazu da ci taką bibliotekę, np. libtiff, libtga, itp.

Po załadowaniu i rozpakowaniu danych surowego obrazu, załadowanie go do tekstury OpenGL jest tylko kwestią wywołania glTexImage2D() z odpowiednimi parametrami i kilkoma innymi zmianami stanu GL (np. jak zrobić mipmapping).

3

LodePNG jest bardzo kompaktowa ładowarka PNG bez zależności.

Komentuj swoje wrażenia z DevIL - działa bezbłędnie dla mnie i wielu innych osób. Dlaczego nie spróbować ponownie, aby rozwiązać problemy z budowaniem? - nie powinno być zbyt trudne)

2

Gleba jest przyzwoitą lekką, z której korzystałem wcześniej. Właściwie to specjalizuje się również w ładowaniu tekstur OpenGL.

http://lonesock.net/soil.html

+0

Myślę, że to powinna być właściwa odpowiedź. Jest to lekka biblioteka z niesamowicie prostym interfejsem API C i bazuje głównie na stb_image.c (który jest absolutnie spartańskim, lekkim, ładowanym obrazem), ale jest czystszy. – bigD

4

Jak sugeruje Adam, chciałbym również zaleca się stosowanie libpng i libjpeg. Nie jesteś określające jeśli piszesz w C lub C++, ale jeśli w C++, to sugeruję, aby zapoznać się z dwóch poręcznych cienkich opakowań po obu bibliotek: pngxx i jpegxx

3

Możesz także spróbować FreeImage library. Obsługuje ładowanie różnych typów obrazów i jest funkcjonalnie podobny do Devil, może pracować dla ciebie po wyjęciu z pudełka.

I o twoim problemie z Devil, nie musisz budować ilu ani ilut bibliotek, aby DevIL działał. Polecam samodzielne zarządzanie obiektami teksturowymi OpenGL, w tym przesyłanie danych obrazu do strony OpenGL.

15

Zarówno libpng, jak i libjpeg mogą być dość zniechęcające do budowania & - nic dziwnego, że istnieje wiele rodzajów bibliotek otokowych dla obu.

Bardzo prostym i minimalistycznym nie-nonsense dla jpg/png (i kilku innych rzeczy) bez zależności w jednym pliku C jest stb_image Seana Barretta.c, jeśli chcesz po prostu załadować kilka plików graficznych dodaje absolutnie minimalny narzut do swojego programu i jest prosta w obsłudze:

http://nothings.org/stb_image.c

+3

Dzięki za ten link, to jest wspaniałe – joeld

+0

Szukałem takiego pliku przez dwa dni, dziękuję. – Mousa

0

młody, ale jeszcze na tyle wielka SFML może być jeden szukasz. Używałem go do wielu projektów i wszystkie z nich działały dobrze na wszystkich moich platformach (Win7 i Ubuntu).

Powiązane problemy