Autor Wątek:  Obsługa tekstur .dds  (Przeczytany 5450 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Obsługa tekstur .dds
« dnia: 28 Października 2009, 12:45:50 »
YouBy dorób to ładowanie tekstur .dds przez DevILa proszę :)

Wątek wydzielony z 'Remastering dźwięków'

Edit:
Co to jest DDS?
DDS to Direct Draw Surface - format pliku tekstur który pozwala zapisać w nim skompresowane różnymi algorytmami dane. Format ten jest stosowany w większości komercyjnych gier ze względu na wydajność i wsparcie sprzętowe.

Co nam daje DDS
Znacznie mniejszy rozmiar plików tekstur i potencjalnie większy FPS.

Jaka jest różnica w rozmiarze plików tekstur?
Zależnie od algorytmu wartości kształtują się następująco:
  • DXT1 (RGB) - 1:6
  • DXT4 / DXT5 (RGBA) - 1:4
« Ostatnia zmiana: 31 Października 2009, 13:58:56 wysłana przez ShaXbee »

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
Obsługa tekstur .dds
« Odpowiedź #1 dnia: 30 Października 2009, 12:17:43 »
Format wave (PCM) jest wystarczający do naszych zastosowań.
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Obsługa tekstur .dds
« Odpowiedź #2 dnia: 30 Października 2009, 12:38:26 »
Format wave (PCM) jest wystarczający do naszych zastosowań.
? Mówiłem o formacie tekstur.

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
Obsługa tekstur .dds
« Odpowiedź #3 dnia: 30 Października 2009, 20:47:00 »
A ja pisałem w wątku wszędzie o dźwiękach.
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Obsługa tekstur .dds
« Odpowiedź #4 dnia: 31 Października 2009, 00:27:36 »
A ja cię męczę o to po to żeby użytkownicy mieli 3 razy mniejszą paczkę całościową do ściągnięcia ;) Skoro masz czas zajmować się dźwiękami to może temu też byłbyś w stanie trochę się poświęcić.

Offline youBy

  • Deweloper
  • Wiadomości: 6163
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 865
Obsługa tekstur .dds
« Odpowiedź #5 dnia: 31 Października 2009, 10:29:08 »
A ja cię męczę o to po to żeby użytkownicy mieli 3 razy mniejszą paczkę całościową do ściągnięcia ;)
Zapraszam tam: http://eu07.pl/forum/index.php/topic,13142.0.html (wątek o paczce całosciowej).
Skoro masz czas zajmować się dźwiękami to może temu też byłbyś w stanie trochę się poświęcić.
Myślenie koncepcyjne może być robione w międzyczasie. A w Twojej kwestii nie ma żadnych koncepcji do zrobienia, tylko sama implementacja. Implementacja nie może być robiona w międzyczasie.
Poza tym tekstury dds nie mają żadnego wpływu na przetwarzanie dźwięków. Chyba że mają, co jednak powinno zostać przedstawione jakieś 4 posty wyżej, a nie dopiero teraz. Uprzedzając pytanie, wyniki przedstawione przez Google nie zawierają informacji na ten temat.
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: Obsługa tekstur .dds
« Odpowiedź #6 dnia: 31 Października 2009, 13:50:40 »
SDK DevILa: http://downloads.sourceforge.net/openil/DevIL-SDK-x86-1.7.8.zip
Dokumentacja: http://prdownloads.sourceforge.net/openil/DevIL-Manual-1.5.5.zip

Żeby użyć DevILa do ładowania tekstur trzeba go zainicjalizować:
ilutRenderer(ILUT_OPENGL);
ilutEnable(ILUT_OPENGL_CONV); // wylaczamy konwersje tekstur na 16-bit

Następnie ładujemy teksturę:
GLuint textureID = ilutOglLoadImage("textura.dds");

DevIL dba o konwersje na format obsługiwany przez kartę - więc jeżeli używamy sprzętu który nie obsługuje .dds to nastąpi automatyczna konwersja na zwykłą teksturę. Jeżeli nastąpił jakiś błąd, to textureID będzie miało wartość 0.

Przyklad obslugi bledu:
GLuint loadTexture(std::string fileName)
{
    GLuint textureID = ilutOglLoadImage(fileName.c_str());
    if(!textureID)
        std::cout << "Loading texture " << fileName << " failed: " << iluErrorString(ilGetError()) << std::endl;

    return textureID
};

Offline ShaXbee

  • Administrator
  • Wiadomości: 1984
    • Zobacz profil
  • Otrzymane polubienia: 2
Odp: Obsługa tekstur .dds
« Odpowiedź #7 dnia: 27 Listopada 2009, 15:18:56 »
Zaimplementowałem obsługę tekstur .dds - zostanie wydana wersja exe DP i 662 z tą poprawką. Inne fragmentu kodu nie zostały zmienione.

@Ra: Możesz przygotować starter do obsługi tekstur .dds?