- Symulator MaSzyna -
Symulator EU07 (i nie tylko) => Poszukuję, chcę zrobić => Wątek zaczęty 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:
- DXT1 (RGB) - 1:6
- DXT4 / DXT5 (RGBA) - 1:4
-
Format wave (PCM) jest wystarczający do naszych zastosowań.
-
Format wave (PCM) jest wystarczający do naszych zastosowań.
? Mówiłem o formacie tekstur.
-
A ja pisałem w wątku wszędzie o dźwiękach.
-
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ć.
-
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.
-
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
};
-
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?