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_-_E3DDozwolone 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_animacjiObroty 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=812513ds Max:
http://eu07.pl/userfiles/4220/priv-skrypty.rarStrasznie nieskładnie i roboczo. Proszę zadawać pytania. Będę uzupełniał i poprawiał składność tekstu.