Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 Polski Portal COLOBOTa - COLOBOT Polish Portal
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
Modele
Autor Wiadomość
piotrdz 


Twoja ulubiona misja: programowanie ;)
Pomógł: 1 raz
Dołączył: 17 Mar 2012
Posty: 55
Skąd: Częstochowa
Wysłany: 16-07-2012, 19:52   Modele

Ostatnio więcej dzieje sie na IRC niż na forum, więc daję tutaj parę wieści z frontu :-)

Po skończeniu zasadniczej części silnika graficznego, przepisałem kod ładowania modeli. Napisałem też prosty program testowy do ładowania i oglądania modeli. Poniżej kilka screenów z działania.






Okazuje się, że w oryginalnym kodzie było ładowanie modeli w 4 formatach:
- DXF (tylko geometria)
- stary format binarny Colobota #1 (geometria + materiał + 1 tekstura)
- stary format binarny Colobota #2 (geometria + materiał + 1 tekstura + "tryb" wyświetlania)
- nowy format binarny Colobota (geometra + materiał + 2 tekstury + "tryb" wyświetlania)

Zapisywanie było tylko w nowym formacie binarnym Colobota i w zasadzie w grze wykorzystywany jest tylko nowy format binarny.

Było nieco problemów ze starym kodem, jak i formatem Colobota, m. in.:
- Było ograniczenie do 2000 wierzchołków na model -- już to zlikwidowałem, teraz może być do woli
- Druga tekstura jest na sztywno ustawiana na dirtyXX.tga
- Są ograniczenia na nazwy tekstur (końcówka .tga, do 19 znaków)
- Format TGA tekstur jest... no taki sobie -- zamiast RGB jak wszędzie, jest BGR. Proponuję zmianę na PNG.
- Format binarny nie jest przenośny. W szczególności zapisywanie wartości float binarnie. Najlepiej przerobić pliki na format tekstowy - modele zajmą nieco więcej, ale łatwiej będzie je wczytywać czy importować/eksportować do innych formatów. Niedługo napiszę skrypt, który automatycznie będzie przetwarzał format Colobota na taki tekstowy.

W związku z powyższym, proponuję, żeby wypowiedzieli się graficy (jeśli są tacy tutaj ;-) ). Trzeba ustalić, jaki format przyjąć, żeby wygodnie się nam pracowało.

A, i jeszcze jedno. Pozwólcie, że na razie pominę wczytywanie z metafile (.dat). Na razie łatwiej, choćby do debugowania, wczytywać modele z osobnych plików. (A nawiasem mówiąc metafile też nie jest przenośny).
 
 
     
Raptor 
Clever Girl


Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy
Wiek: 24
Dołączył: 26 Cze 2010
Posty: 432
Skąd: Isla Nublar
Wysłany: 17-07-2012, 00:46   Re: Modele

adiblol wspominał coś kiedyś o jakimś bezstratnym i otwartym formacie dla tekstur, jednak za nic nie mogę przypomnieć sobie, jaki był to format. Może był by on szybszy w dekompresji od PNG?
_________________
- Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...


 
     
Mrocza 


Twoja ulubiona misja: Swobodna na Ziemi
Pomógł: 4 razy
Wiek: 26
Dołączył: 29 Sie 2011
Posty: 249
Skąd: Lublin
Wysłany: 17-07-2012, 04:17   

Odświeżony tga byłby dobry i zapewne byłoby mniej roboty niż zmiana na png ale może lepiej wybrać właśnie png. Możliwe jest wtedy nawet użycie 48-bitowej głębi koloru (64-bitowej przy RGBA) co daje fajną jakość bez żadnych zniekształceń. A jeżeli nie będzie potrzebna masa kolorów to można by w razie czego użyć skali szarości albo koloru indeksowanego żeby obciąć zbędne dane dla oszczędności. Kompresja też jest bardzo dobra.
 
 
     
tomangelo 


Dołączył: 11 Lip 2012
Posty: 32
Skąd: nieJestemBotem
Wysłany: 17-07-2012, 12:07   Re: Modele

A może tekstury zapisać jako grafikę wektorową?
 
     
Raptor 
Clever Girl


Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy
Wiek: 24
Dołączył: 26 Cze 2010
Posty: 432
Skąd: Isla Nublar
Wysłany: 17-07-2012, 12:25   

Nie znam się na grafice wektorowej, ale wydaje mi się, że można osiągnąć przez to gorszą wydajność od rastrowych.
_________________
- Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...


 
     
Madman07


Wiek: 28
Dołączył: 29 Maj 2011
Posty: 133
Skąd: Ze Stargate ;]
Wysłany: 17-07-2012, 12:31   

Najlepszy format dla tekstur to taki, w którym możecie dowolnie wybrać ilość kanałów. Naprawde. Trochę spędizłem czasu w tym i wiem, że czasami potrzeba RGB, RGB+A, RGB+A+A bądź nawet 3xRGB+A+A. Może i głupie, ale liczba tekstur na obiekt by się zmniejszyła :)
Swoją drogą, tekstury w PNG, czy TGA są cool. Zawsze możwcie uzyć otwartych bibliotek FreeImage (PNG+TGA+JPG+JPEG+jeszcze coś tam).

Co do modeli - tekstowy format jest fajny (np obj) ale wolniej się go ładuje. Najlepszy bedzie binarny + konwerter. W razie czego zawsze możecie się wzorować na 3ds, stosunkowo prosty i szeroko obsługiwany format (a i chyba otwarty, skoro sa wszelkie informacjie na wiki jak jest zbudowany).
_________________

"The Destiny. Launched hundreds of thousands of years ago. Faster than light, yet not through hyperspace. Who knows how far it's traveled."
 
     
piotrdz 


Twoja ulubiona misja: programowanie ;)
Pomógł: 1 raz
Dołączył: 17 Mar 2012
Posty: 55
Skąd: Częstochowa
Wysłany: 17-07-2012, 17:05   

Co do formatu tekstur, to napisałem, że TGA jest nieco głupie, bo SDL_image wcztyuje je jako RGB, a tworząc z tego teksturę muszę dać BGR niewiedzieć czemu. Z PNG nigdy nie miałem takich problemów - daję RGB i jest RGB.

A co do formatu modeli, zaproponowałem format tekstowy, bo tak łatwiej będzie konwertować jak nam się zachce w przyszłości. A inna sprawa to to, że graficy będą pewnie pracowali w swoim formacie, zależnie od tego, z czego będą korzystali (Blender?, 3dsmax?). W przypadku tekstowego formatu, mogę napisać prosty skrypt w awku lub perlu, który przekonwertuje jeden format tekstowy na inny. Z binarnym byłoby już trudniej. Binarny możemy przyjąć na końcu, kiedy będziemy już mieli ostatecznie zdefiniowane co i jak będzie w ostatecznym formacie modeli.

Na razie oczywiście zostawiam tak, jak jest - dyskusja jest bardziej o tym, co będzie później w Colobot 2.

[ Dodano: 31-08-2012, 21:53 ]
Forum oczywiście znowu dopisze to na końcu, nie wiem na ile widoczny będzie ten post.

Anyway, w kodzie CModelFile jest już zrobiony "na gotowo". Dodałem dwa nowe formaty modeli: binarny i tekstowy. Formaty zawierają praktycznie to samo, co poprzedni format binarny Colobota, ale zapisane w bardziej przejrzysty sposób.

Okazuje się, że format tekstowy jest jedynie niewiele większy od binarnego:
- wszystkie modele w starym formacie binarnym - 12 MB (spakowane zipem: 1.3 MB)
- wszystkie modele w nowym formacie tekstowym - 18 MB (spakowane zipem: 1.5 MB)

Proponuję więc na razie użycie formatu tekstowego, a w paczce końcowej - binarnego.
Niedługo zmienię też tak paczkę developerską - stary format binarny na nowy tekstowy.
 
 
     
Wyświetl posty z ostatnich:   
Nie możesz pisać nowych tematów
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012