|
[Grafika]
[WebTip]
[Fotografování]
[Galerie]
[MujMac]
[Printing]
|
|||||||||
|
|
||||||||||
|
|
|||||||||
|
Po dlouhé době přicházím s dalším dílem seriálu, který jsem napsal při dlouhém prázdninovém nicnedělání. Budeme se věnovat načítání modelů ze souborů ASE. Půjde o seznámení s jednoduchým ASCII formátem, do kterého můžete z 3D MAXU exportovat své modely. Připravte se, nebude to žádná sranda, ale tvrdá programátorská řehole. Výsledek ale bude stát za to.
Modely můžeme ukládat do nejrůznějších formátů. Mezi nejčastější formáty patří DXF (původně jsem zamýšlel tento článek napsat o něm), 3DS (bude popsán v některém dalším díle), MAX, DWG, ASE atd. Formáty rozdělujeme podle toho, jestli jsou data zapisovány binárně nebo textově. Pro tento článek jsem vybral ASCII formát ASE, který vyexportujeme v programu 3D Max. Tento formát není nic moc, ale nějak začít musíme. Ale pro nás má jednu velkou přednost, jednoduchost. Nevýhodou naopak je pomalost zpracování textového souboru. Napišme si třídu, která bude ASE soubory načítat. Tuto třídu pojmenujeme TASEFile. Do této třídy budeme natahovat informace o počtech objektů, počtech materiálů, ukazatel na stream, pak budeme potřebovat data jednotlivých objektů a data materiálů. Popišme si nejdříve jak jsou data v souboru organizována. Vysvětluje to následující obrázek:
Při načítání si nejdříve zjistíme základní informace, jako je počet objektů, počet materiálů atd. Potom načteme materiály. Každý materiál je reprezentován barvou a popřípadě i texturou (velmi zjednodušeně řečeno). Celá scéna se skládá z jednoho nebo více objektů. Proto se dáme do načítání jednotlivých objektů. Každý objekt má definované umístění a pootočení (neuvažoval jsem je). Pro každý objekt načteme všechny vrcholy objektu (VERTEX). Potom načteme, jakým způsobem tyto vrcholy pospojovat (FACE). Pokud je objekt potexturován načteme navíc vrcholy pro texturu TVERTEX a pro namapování potřebujeme také TFACE. Navíc ještě můžeme ze souboru načíst nebo vypočíst normály, aby objekt vypadal reálněji ve světle. Pokud jste ještě nepochopili, co jsou vertexy a face, podívejte se na následující obrázek:
Pro dokonalé pospojování všech vrcholů nám postačí spojovat vrcholy po 3 bodech (například A,B,F atd). Udělejme si ještě krátký výlet do souboru ASE, ať si můžeme představit co máme před sebou:
To je vystřižená jen malá část ASE souboru a našim úkolem je správně využít
data, která se nám tu povalují. Komentář uvnitř rámečku je natolik bohatý, že
není třeba dál jednotlivé řádky rozebírat. A jakým způsobem budeme data načítat
se dozvíte v další části článku.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||