- Symulator MaSzyna -

Symulator EU07 (i nie tylko) => Poszukuję, chcę zrobić => Wątek zaczęty przez: ShaXbee w 28 Października 2009, 12:45:50

Tytuł: Obsługa tekstur .dds
Wiadomość wysłana przez: ShaXbee w 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:
Tytuł: Obsługa tekstur .dds
Wiadomość wysłana przez: youBy w 30 Października 2009, 12:17:43
Format wave (PCM) jest wystarczający do naszych zastosowań.
Tytuł: Obsługa tekstur .dds
Wiadomość wysłana przez: ShaXbee w 30 Października 2009, 12:38:26
Format wave (PCM) jest wystarczający do naszych zastosowań.
? Mówiłem o formacie tekstur.
Tytuł: Obsługa tekstur .dds
Wiadomość wysłana przez: youBy w 30 Października 2009, 20:47:00
A ja pisałem w wątku wszędzie o dźwiękach.
Tytuł: Obsługa tekstur .dds
Wiadomość wysłana przez: ShaXbee w 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ć.
Tytuł: Obsługa tekstur .dds
Wiadomość wysłana przez: youBy w 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.
Tytuł: Odp: Obsługa tekstur .dds
Wiadomość wysłana przez: ShaXbee w 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
};
Tytuł: Odp: Obsługa tekstur .dds
Wiadomość wysłana przez: ShaXbee w 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?