Skip to content


Wczytywanie tekstur

Po raz kolejny programistycznie – zapewne nie raz stawaliście przed dylematem, jaki format obrazu wybrać dla swojej aplikacji. Najczęściej w grę wchodzą formaty obsługujące kanały alpha – PNG, TGA lub DDS. Ostatni praktycznie odpada poza Playstation ponieważ ciężko się go eksportuje (Photoshop albo specjalny konwerter nVidii z tego co pamiętam), podczas gdy dwa pierwsze są supportowane przez większość programów graficznych. Jeżeli chodzi o implementację loadera to TGA jest łatwiejszy do napisania, jednak często dość upierdliwy – przykładowo dwa programy graficzne zapisują obraz jako TGA ale nasz loader poprawnie wczytywać będzie tylko obrazy z programu A – po wczytaniu TGA programu B obraz może być np odwrócony. Ponadto TGA waży bardzo dużo – nierzadko po 1-2mb przy dużych teksturach.

Rozwiązaniem jest skorzystanie z zewnętrznej biblioteki – ja używam SOIL. Po pierwsze supportowane są wszystkie platformy – Winda,  *nx i Mac. Po drugie biblioteka jest niewielka, jednak potrafi wczytać sporo formatów:

  • BMP
  • JPG
  • PNG
  • TGA
  • DDS 1/2/3/4/5
  • PSD
  • HDR

Ponadto potrafi też tworzyć mipmapy i posiada sporo użytecznych funkcji do pracy z OpenGL. Biblioteka dostępna jest jako źródło oraz biblioteki statyczne pod VC i GCC. Polecam!

Posted in Gry, TechBlog.


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.