Format 3DS dla platformy 3D Mobitum w programie 3ds Max.

Transkrypt

Format 3DS dla platformy 3D Mobitum w programie 3ds Max.
Format 3DS dla platformy 3D Mobitum w programie 3ds Max.
Bryły 3D dla platformy 3D Mobitum są przygotowane jako standardowe modele w formacie Autodesk 3D
Studio (*.3DS). Specyfika platformy oraz fakt, że działa on jako aplikacja internetowa narzuca kilka
wymogów, dotyczących struktury pliku oraz nazewnictwa plików tekstur.
Dla poprawnej weryfikacji nowego formatu brył 3DS został przygotowany program 3DS Viewer, który
weryfikuje wszystkie wymogi formatu, które są opisane poniżej.
Hierarchia obiektów w pliku 3DS.
Przed eksportem modelu do formatu 3DS należy usunąć wszystkie grupy znajdujące się wewnątrz
hierarchii sceny 3D.
Następnie tworzymy jedną grupę obiektów o wymaganej nazwie „body”.
Wewnątrz grupy „body” nie umieszczamy żadnych podrzędnych grup.
Wymagana pozycja XYZ grupy „body” to 0,0,0.
Mapowanie UVW, Materiały, Tekstury.
Mapowanie UVW:
Do manipulacji teksturą na obiekcie 3D używamy Modifierów: UVW Map lub Unwrap UVW.
Nie używamy parametrów dostępnych w „Material editor” (Offset, Tiling, Mirror, Angle).
Materiały:
Używamy domyślnego typu materiału „Standard”.
Kolor dyfuzji określamy poprzez wartość RGB „Diffuse” lub poprzez mapę „Diffuse color”.
Mapa „Diffuse color” musi być typu „Bitmap” i wskazywać na plik w formacie JPG.
Używamy tylko dwóch typów Map: „Diffuse color” oraz „Reflection”.
Ważne! Jeśli w materiale zastosujemy mapę „Reflection” to w platformie zastąpi ona całkowicie
mapę „Diffuse color”. Wartość tych dwóch map nie będzie się ze sobą mieszać.
Powierzchnia posiadająca mapę „Reflection” będzie zachowywała się jak lustro i będzie w 100%
prezentować zawartość mapy „Reflection”. Jeśli taka powierzchnia ma posiadać odbicia oraz
określony kolor dyfuzji to kolor należy dodać do bitmapy „Reflection” w pliku graficznym tej tekstury.
Połysk powierzchni bryły (Specular level / Glossiness / Soften):
Powyższe parametry nie są odczytywane przez przez parser plików 3DS w platformie.
Przyczyną są ograniczenia dostępnych narzędzi w technologii Flash Stage3D.
Poprawnie przekazywanym parametrem jest wartość koloru „Specular”. Za jego pomocą możemy
definiować poziom połysku materiału.
Parametr „Opacity” jest przekazywany poprawnie i wpływa na poziom przezroczystości materiału.
Aby uniknąć konieczności definiowania wartości Specular we wszystkich bryłach, w platformie został
utworzony warunek, który w specjalny sposób traktuje domyślną wartość Specular z programu 3ds
Max.
Domyślna wartość koloru Specular w 3ds Max to RGB(230,230,230). Jeśli dokładnie taka wartość
zostanie użyta w materiale to jego połysk zostanie ustalony na domyślnym, niskim poziomie
(specularPower = 20%).
Jeśli wartość będzie inna to zostanie ona uwzględniona jako właściwość materiału.
Kolor czarny RGB(0,0,0) to domyślny minimalny połysk. Kolor biały RGB(255,255,255) to
maksymalny połysk. Przeliczona zostanie tylko jasność użytego koloru. Należy używać kolorów w
skali szarości. Inne kolory zostaną przeliczone na skalę szarości w Aplikacji.
Tekstury:
Nazwy plików:
platforma 3D Mobitum działa jako program internetowy. Wszystkie pliki pobierane przez program
muszą posiadać nazwy zgodne z internetowym standardem HTTP. Dodatkowym ograniczeniem jest
format 3DS, który przenosi tylko pliki w formacie ASCII o długości nazw do ośmiu znaków.
Te ograniczenia muszą być ściśle przestrzegane przy tworzeniu nazw plików tekstur.
Pliki tekstur nie są osadzane bezpośrednio w modelu 3DS. Będą one pobierane z serwera na
podstawie nazw użytych w modelu 3DS.
Zasady tworzenia nazw są następujące:
 Pliki tekstur są plikami JPG.
 Długość nazwy nie przekracza ośmiu znaków + trzy znaki rozszerzenia: xxxxxxxx.xxx
 Nazwy składają się tylko z małych liter alfabetu angielskiego oraz cyfr. Dodatkowe,
dopuszczalne znaki to „-” oraz „_”
 Nie używamy znaków diakrytycznych (ąść...), specjalnych (!@#$%...) oraz spacji
 Nie używamy dużych liter
Przykładowe, poprawne nazwa plików:
 wenge.jpg
 wenge-li.jpg
 reflecti.jpg
Przykładowe, niepoprawne nazwy plików:
 Wenge.jpg (duża litera w nazwie)
 wenge.JPG (duże litery w rozszerzeniu)




wenge#3.jpg (znak specjalny)
wenge-luizjana.jpg (zbyt długa nazwa)
kokesh 2.jpg (spacja w nazwie)
biały.jpg (znak diakrytyczny)
Program 3DS Viewer weryfikuje niepoprawne nazwy i w przypadku ich wystąpienia wyświetli
komunikat o błędzie.
Wymiary tekstur:
Technologia Flash Stage3D operuje tylko na bitmapach których wymiary są potęgą liczby 2.
Dodatkowo, dla uzyskania maksymalnej kompatybilności z kartami graficznymi użytkowników
platforma ogranicza dopuszczalną wielkość tekstur do wymiarów 1024x1024px.
Szerokość i wysokość bitmap musi odpowiadać powyższym regułom.
Dopuszczalne wymiary tekstur to: 2,4,8,16,32,64,128,256,512,1024px
Szerokość i wysokość tekstury nie musi być proporcjonalna, ale wymiary muszą odpowiadać
powyższej regule.
Przykładowe, poprawne wymiary:
 128px x 512px
 512px x 512px
 2px x 1024px
 1024px x 1024px
Przykładowe, niepoprawne wymiary:
 500px x 256px (500px nie jest potęgą liczby 2)
 1024 x 2048px (2048px jest potęgą liczby 2 ale przekracza maksymalną wartość 1024px)
Kompresja tekstur:
Dla potrzeb transferu danych poprzez internet ograniczamy do minimum ilość danych w plikach JPG.
Usuwamy z nich wszystkie informacje typu MetaData (orientacja, profil kolorów, thumb, itp).
Przy zapisie pliku tekstury z programu Adobe Photoshop używamy opcji „Save for Web & Devices”.
Nie używamy opcji „Save As”.
Maksymalny poziom kompresji (Quality) to 60. Nie używamy opcji „Progressive” i „Embed color
profile”. Metadata ustawiamy na „None”.
Struktura plików i folderów:
Wszystkie pliki 3DS dla kolekcji muszą być umieszczone w jednym folderze,
np. C:\3D\models\room\
Wszystkie pliki tekstur dla kolekcji muszą być umieszczone w podfolderze „textures”,
np. C:\3D\models\room\textures\
Program 3DS Viewer zawsze szuka tekstur w folderze „textures”, który jest podrzędny dla lokacji
otwieranego pliku 3DS.
Ta reguła będzie działała także w finalnej wersji programu platforma 3D Mobitum.
Geometria w pliku 3DS.
Dostępny parser plików 3DS dla Flash Stage3D posiada drobne błędy.
Błędy występują przy odczycie elementów 3D, które są instancjami (kopiami) innych obiektów 3D użytych w
importowanej scenie.
Błędy parsowania plików 3DS są widoczne w programie 3DS Viewer. Ten typ błędów nie jest raportowany.
Każdy, przygotowany model 3DS należy dokładnie sprawdzić (obejrzeć) w programie 3DS Viewer.
Należy zwrócić uwagę na dwa typy błędów:
 Czy importowany model posiada wszystkie elementy na właściwych miejscach?
 Czy wszystkie elementy modelu posiadają poprawne dane mapowania UVW? (fragmenty bez
tekstury)
Jeśli wystąpi którykolwiek w powyższych błędów należy wykonać następującą czynność:
 Konwersja obiektu do Mesh: opcja „Convert to Editable Mesh”
Jeśli problem nadal występuje, należy połączyć niewłaściwy obiekt z innym, dowolnym obiektem, który jest
wyświetlany poprawnie.
 Create > Compound Objects > Boolean > Union > Pick Operand B > Convert to Editable Mesh
Ważne!
Zwiększanie ilości obiektów typu „mesh” znacznie zwiększa ilość danych w pliku 3DS. Z tego powodu należy
ograniczyć tego typu działania do minimum. Konwertujemy lub łączymy tylko obiekty, które sprawiają
problemy. Nie wykonujemy tych czynności nadmiarowo.
Geometria 3D dla detekcji kolizji.
Elementu 3D umieszczane w platformie Mobitum są traktowane jako fizyczne bryły. Pozwala to uniknąć
przenikania się poszczególnych elementów sceny pomiędzy sobą.
Obliczenia fizyki i kolizji są złożone i odbywają się w czasie rzeczywistym. Z tego powodu geometria brył 3D
jest analizowana w sposób uproszczony.
Każdy element bryły 3D jest przeliczany w oparciu o jego BoundBox - czyli sześciobok o maksymalnych
wymiarach brzegowych elementu.
Jeśli model 3D składa się tylko z jednego elementu (Mesh), zawierającego cała geometrie modelu, to jego
BoundBox będzie jednym sześciobokiem obejmującym całą przestrzeń modelu.
Jeśli będzie to np. stół, to nie będzie możliwości wsunięcia pod niego krzesła. Dla geometrii przykładowego
stołu należy rozdzielić jego geometrie na pięć niezależnych obiektów: blat + 4 x nogi.
Program 3DS Viever posiada opcję podglądu BoundBoxów, które będą wykorzystane w kolizjach. Służy do
tego opcja „Pokaż / ukryj obrys kolizji”.

Podobne dokumenty