Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
|
Forum - Polski Portal COLOBOTa |
|
|
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. |
|
|
|
|
|
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
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|