- Symulator MaSzyna -

Symulator EU07 (i nie tylko) => Pomoc w tworzeniu => Poradniki => Wątek zaczęty przez: Stele w 14 Kwietnia 2017, 13:44:37

Tytuł: [MOD] Wytyczne dla modelarzy
Wiadomość wysłana przez: Stele w 14 Kwietnia 2017, 13:44:37
MaSzyna używa autorskiego formatu tekstowego t3d konwertowanego przez exe na format binarny e3d. Podczas konwersji zostają przemnożone macierze transformacji nieanimowanych obiektów i wyliczone wektory normalne. Dokumentację e3d można znaleźć tutaj: http://rainsted.com/pl/Format_binarny_modeli_-_E3D

Dozwolone są obiekty typu:
Mesh Definiuje siatkę trójkątów. Każda siatka może mieć przypisany tylko jeden materiał używający jednej tekstury. Trójkąty wyświetlane są tylko jednostronnie.
Wariantem obiektu Mesh jest obiekt posiadający zero trójkątów (zwyczajowo zwany "bananem") służący tylko do grupowania potomnej geometrii w celu animacji.
FreeSpotLight Definiuje punkt świetlny widoczny z określonego kąta i aureolę poświaty w okół niego.
Stars Lista okólnych punktów świetlnych. Każdy o indywidualnie zdefiniowanym kolorze świecenia. Uwaga, odwrócona przestrzeń barwna!

Renderowanie:

Renderowanie odbywa się w dwóch przebiegach. Parametr materiału opacity definiuje, czy dany obiekt będzie renderowany w przebiegu przezroczystych opacity: 0. Wtedy wyświetlane są jego półprzezroczystości, ale sortowanie wielu planów półprzezroczystych kuleje i część takowych obiektów może nie być wyświetlana. Dla opacity: 100 przezroczystość ucinana jest do binarnej (w najnowszych exe dla alfy 50%) i nie ma problemu z sortowaniem.

Hierarchia:
Modele muszą mieć ustaloną hierarchię obiektów. Przy jej braku, e3d generuje obiekt nadrzędny trzymający resztę.
Obiektów powinno być jak najmniej. Dzielenie wymuszone jest:
-innym materiałem
-animacją
-innym zakresem widoczności
W pozostałych przypadkach obiekty powinny być łączone we wspólne siatki.
Hierarchię utrzymujemy możliwie płaską. Im mniej transformów do mnożenia w stosie tym lepiej.
Wszystkie nieanimowane obiekty powinny mieć transform będący macierzą jednostkową.

Tekstury:
Modele statyczne mogą mieć zdefiniowaną teksturę wymienną (Map: replacableskin) ustawianą parametrem we wpisie modelu na scenerii. Modele dynamiczne mogą mieć do czterech tekstur wymiennych (Map: -1 do -4) ustawianych parametrem we wpisie dynamic teksturename a pliki nazwane texturename,1.ext do texturename,4.ext. Czwarta tekstura wymienna może być przeznaczona na tablicę relacyjną pojazdu.

Tekstury powinny mieć rozmiar boku 2^n o dowolnych proporcjach. Inny jest logowany jako błąd i nie wyświetla się poprawnie na wszystkich kartach graficznych.
Obecnie używana jest jedynie tekstura diffuse. W przeciągu roku prawdopodobnie zostanie dodana opcjonalna tekstura normal i specular.
Tekstury tga zapisujemy z originem w lewym dolnym rogu.

Im mniej tekstur tym lepiej. Wiele małych tekstur ma uzasadnienie, gdy są one kafelkowane (mapowanie wykracza wielokrotnie poza przestrzeń UV 0-1), lub z danej tekstury będzie korzystać wiele modeli (przykładowo sprzęg wagonu). W innych przypadkach należy umieścić jak najwięcej elementów na wspólnej teksturze.

Animacje:
Model statyczny może mieć do ośmiu świateł. Obiektów wyświetlanych warunkowo. Sterowanych eventami, migającymi okresowo, wyświetlanymi zależnie od oświetlenia globalnego sceny.
Każdym obiektem można poruszać za pomocą animacji prostych przesunięcia i obrotu, wyzwalanych eventami.
Możliwe też są animacje automatyczne: http://rainsted.com/pl/Format_binarny_modeli_-_E3D#Rodzaje_animacji
Obroty przy animacjach automatycznych wykonywane są w okół osi Y w kierunku X>Z.

Polycount:
Polycount nie jest nijak normowany. Co modelarz to inne zasady, ale pamiętajmy, że robimy do gry komputerowej i cała ta geometria musi być liczona w czasie rzeczywistym.
Obiekty statyczne mają od kilkuset do kilkunastu tysięcy tri.
Obiekty dynamiczne od kilkunastu tysięcy do 150 tysięcy tri.
Kabiny są wyświetlane tylko raz, wiec tu można puścić wodze fantazji.

Jeśli geometria obiektu jest na tyle skomplikowana, że można ją uprościć przynajmniej pięciokrotnie, należy zastosować fazy LOD. Większość modeli ma tylko jedną fazę siatki uproszczonej oraz kilka stopni ukrywania detali. Nie ma przeciwwskazań stosowania większej ilości faz LOD.

Skrypty eksportowe:
Blender: http://eu07.pl/forum/index.php?action=dlattach;topic=26905.0;attach=81251
3ds Max: http://eu07.pl/userfiles/4220/priv-skrypty.rar

Strasznie nieskładnie i roboczo. Proszę zadawać pytania. Będę uzupełniał i poprawiał składność tekstu.
Tytuł: Odp: [MOD] Wytyczne dla modelarzy
Wiadomość wysłana przez: pat w 14 Kwietnia 2017, 15:11:08
Ogarniam blendera w stopniu, który pozwoliłby mi tworzyć modele dla maszyny. O rainstedzie czy technicznej stronie maszyny nie wiem niemal nic, dlatego byłbym wdzięczny za wszelkie wskazówki czy materiały aby pogodzić te 2 kwestie. Jeżeli uda mi się rozgryźć cały proces to mogę pomóc stworzyć poradnik na temat współpracy maszyny z blenderem.

Myślę, że najłatwiej byłoby wkręcić się w proces produkcyjny dla symulatora, gdybym zrobił jakiś prosty model który w symulatorze jest słabej jakości, a później osoba która ogarnia rainsted i sprawy z tym związane sprawdziłaby go i wytknęłaby błędy.
Mogę też zająć się poprawą tekstur np w kabinach, szczególnie tych, które odstają jakością np z powodu braku zdjęć.
Brak dokumentacji sprawia, że mimo chęci nie mam pojęcia jak się za to zabrać.

Bardzo pomocny byłby jakiś przykładowy plik roboczy modelu. Najlepiej w formacie blenderowym. Najlepiej uczyć się mając dobry przykład.

Jak wygląda sprawa modeli lowpoly kabin? Czy są jakieś specjalne różnice czy wytyczne odnośnie tego?
Tytuł: Odp: [MOD] Wytyczne dla modelarzy
Wiadomość wysłana przez: MR6 w 14 Kwietnia 2017, 15:47:20
Tu masz poradniki stelego odnośnie low poly.
https://youtu.be/Ay8FkPbqr18
https://youtu.be/JrELKq-XtCA
https://youtu.be/vlB4BedQcxQ
Tytuł: Odp: [MOD] Wytyczne dla modelarzy
Wiadomość wysłana przez: tmj w 14 Kwietnia 2017, 19:46:16
Kabiny są wyświetlane tylko raz, wiec tu można puścić wodze fantazji.
Chociaz moze bez przesady, bo o ile kabine widac raz, to jednak widac ja w normalnych warunkach zawsze :)
Dosc rozsadnym jest nieprzekraczanie 50-60 tys wierzcholkow, bo potencjalnie pozwala to na (latwiejsza) optymalizacje.
Przy okazji, rowniez dobra praktyka jest gdzie tylko mozliwe laczenie indywidualnych tekstur elementow w zestawy na wspolny uzytek kilku-kilkanastu elementow (zaleznie od rozmiarow), zamiast 50+ osobnych tekstur. Exe nie robi takich rzeczy automatycznie, a ma to wplyw na wydajnosc.