Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma
karatetlacitka.png (12925 bytes) Intro Buildable objects Effects Parameters Extra Home

3d objekty

V Karate si mù¾e¹ vytvoøit nìkolik druhù 3d objektù.

Ka¾dý 3d objekt potøebuje ke svému vytvoøení "3d svìt" <World3d> a minimálnì jednu texturu. Skládá se tedy z více "objektù". Tady pozor, musí¹ zapsat nejdøíve textury nebo world3d a a¾ pod to 3d objekt.

Je¹tì je potøeba nadefinovat kameru <Kcam> aby se dal 3d objekt zobrazit.

3dzapisdobre.png (3537 bytes)
Dobøe.
3dzapisspatne.png (3160 bytes)
©patnì.

Podobnì jako u Rectangle i 3d objekt mù¾e být otec co má syny. Dále také "3d svìtù" mù¾e být více a v jednom Kpartu se budou chovat jako vrstvy. Vìt¹ina 3d objektù potøebuje více ne¾ jednu texturu, tu mù¾e¹ opakovat, nebo vytvoøit ka¾dou jinou zvlá¹». Tam kde texturu (na 3d objektu) vynechá¹ bude prázdno.

Objekty pak umístí¹ efektem Set3dObject a efektem Draw3dWorld vykreslí¹ - zobrazí¹ "scénu".


Cube - kostka

<Cube> název |3dworld nebo otec |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z|textura 0|textura 1|textura 2|textura 3|textura 4|textura 5 </Cube>

Kostka musí mít alespoò jednu texturu, jinak nebude nic vidìt.
cubetexmap.png (17352 bytes)
<Cube> kostka | world1 |0|0|0|0|0|0|1|1|1|tmap0|tmap1|tmap2|tmap3|tmap4|tmap5 </Cube>
cubeotec.png (39290 bytes)
<Cube> synkostky0 | kostka |0 |1.5 |0 |0|0|0|0.5|0.5|0.5|tmap0|tmap0|tmap0|tmap0|tmap0|tmap0 </Cube> a dal¹í synové.

Clone3d - klon

<Clone3d> název | název World3d |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z|název 3d objektu ke klonování </Clone3d>

Naklonuje jakýkoli 3d objekt s jeho nastavením (napø. hvìzda) a texturami, ale mù¾e¹ zmìnit pozici i velikost klonu. Opìt to funguje jako otec a syn (klon).
clonesprite3d.png (14865 bytes)
<Clone3d> klon1|hvezda|0|0|0|0|0.1|0|0.75|0.75|0.75|hvezda </Clone3d> a dal¹í klony
clone3d2.png (39295 bytes)
<Clone3d> klon1|hvezda|0|0|0.5|0|0|0|1|1|1|hvezda </CloneTo3d> a dal¹í klony

CloneToSprite3d

<CloneToSprite3d> název | název World3d |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z|název 3d objektu na kterém budou sprajty| ¹íøka|vý¹ka|název bitmapy-sprajtu </CloneToSprite3d>

Na konec mù¾e¹ (i nemusí¹) pøidat: |název Colortable |typ (0 nebo 1) </CloneToSprite3d> To zpùsobí ¾e objekt bude prùhledný.

Zobrazí 3d sprajty na vertexech 3d objektu. Poèet vertexù = poèet sprajtù.
clonesprite3d.png (36223 bytes)
<CloneToSprite3d> 3dsprajt | kostka |0|0|0|0|0|0|1|1|1|kostka|0.5|0.75| sprite3d </CloneToSprite3d>
clonesprite3dt.png (60099 bytes)
<CloneToSprite3d> 3dsprajt |tore|0|0|0|0|0|0|1|1|1|tore|0.1|0.1|clonesprite </CloneToSprite3d>
  • Jak pou¾ít CloneToSprite3d.
  • Jak pou¾ít CloneToSprite3d na objektu s vìt¹ím poètem vertexù.
  • Jak pou¾ít CloneToSprite3d na objektu s vìt¹ím poètem vertexù a s vìt¹í zábavou.

Empty3d - prázdný objekt

<Empty3d> název | název World3d |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z|maximální poèet vertexù|maximální poèet polygonù </Empty3d>

Vytvoøí prázdný - neviditelný 3d objekt, který se hodí pøedev¹ím jako "otec", který nese skupinu u¾ viditelných 3d objektù. Jeden objekt tedy kontroluje celou skupinu.
empty3d.png (20358 bytes)
<Empty3d> prazdnej |world1|0|0|0|0|0|0|1|1|1|1|1 </Empty3d>
<Sphere> koule1 |prazdnej|0|0|0|0|0|0|1|1|1|12|12|0.5|0|0|0|1|1|tred|tblue|tred|tblue </Sphere> a dal¹í. V¹echny koule mají neviditelného otce "prazdnej"

Light3d - svìtlo

<Light3d> název | název World3d |poz X|poz Y|poz Z| intenzita| hodnota poklesu </Light3d>

Vytvoøí rozptýlené svìtlo, které bude mít vliv na nìkteré textury. Zatím se mi ale nepodaøilo zjistit na jaké :(

Lwo3d - Lightwave objekt

<Lwo3d> název | název World3d |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z| data/mujobjekt.lwo| èíslo vrstvy|textura 0|textura 1| textur... </Lwo3d>

Karate podporuje polygonové nebo trojúhelníkové objekty (ne NURBS) programu Lightwave. Od verze 6 mohou obsahovat i vrstvy (layers). Kdy¾ pou¾ije¹ objekty verze 5 Amiga (bez vrstev), nebo je nebude¹ potøebovat nech èíslo vrstvy na 1.

Velikost objektù je snad neomezená, ale je lep¹í kdy¾ bude velký nìco kolem dvou metrù.

lwo3d.png (35667 bytes)
<Lwo3d> lwobjekt | world1 |0|0|0|0|0|0|1|1|1 | data/panak.lwo |1|envmapa1 </Lwo3d>
Objekt má jednu texturu.

Mesh3d

<Mesh3d> název | název World3d |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z| vertex| x0,y0,z0 | x1,y1,z1 |...|poly, textura 0 | v0,v1,v2,... | v0,v1,v2 | ...</Mesh3d>

Slova vertex a poly jsou povinná a nemù¾e¹ je mìnit ! Prvních devìt èísel za názvem a World3d nech na 0|0|0|0|0|0|1|1|1.

Nejdøív si pøipraví¹ sérii vertexù (jeden vertex = tøi èísla x y z oddìlená èárkou), která popisuje tvùj objekt v prostoru. Vertexy (ta tøi èísla) se oddìlují "|" pipe. Vertexy oznaèí¹ povinným slovem vertex. Takto: vertex|0,0,0|0.4,0,0|0.4,-0.2,0|....

Potom sérii polygonù, které rozdìlí¹ na skupiny podle toho jakou mají texturu. Poøadí vertexù se poèítá od nuly a po smìru hodinových ruèièek, tak¾e se pøi vytváøení polygonù dr¾í¹ tìchto èísel. Skupiny oznaèí¹ dal¹ím povinným slovem poly,(èárka) a název textury. Tedy tímto zpùsobem: poly,textura1|1,2,3|3,4,1.... poly,textura2|0,1,4|0,4,5.... Poèet tìchto skupin je tolik, kolik chce¹ pou¾ít textur.

Polygony mohou být ètyøúhelníkové nebo trojúhelníkové a jsou pouze jednostranné. Nejlep¹í je pou¾ít nìjaký 3d editor a zkonvertovat si objekt do èísel.

mesh3dschema1.png (4050 bytes)
Má¹ na výbìr mezi ètyøúhelníky a trojúhelníky.
mesh3dschema2.png (4502 bytes)
Dvì skupiny polygonù, èervená a modrá.
mesh3dschema3.png (4643 bytes)
Vertexy zaèínají èíslem nula po smìru hodin.
mesh3d.png (7402 bytes)
Objekt tvoøí 40 vertexù a 22 polygonù.

Plane3d - plochý 3d objekt

<Plane3d> název | 3dworld nebo otec |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z|¹íøka|vý¹ka|hustota X|hustota Y|pozice textury u1|pozice textury v1|pozice textury u2|pozice textury v2|textura1|textura2 </Plane3d>

Plochý pravoúhlý objekt který "potáhne¹" texturou. Textury by mìly být dvì (pøedek-zadek), pokud zadá¹ jen jednu objekt bude vidìt jen z jedné strany.

Èím vìt¹í je hustota objektu, tím vìrnìj¹í bude vykreslení textury (256x256 pixelù). Pomocí koordinátù u1 v1 u2 v2 "namapuje¹" texturu na objekt v po¾adované velikosti.

clonesprite3d.png (36223 bytes)
<Plane3d> planeobj| world1 |0|0|0|0|0|0|1|1|1 |1.0|1.0| 2|2| 0|0|1|1| planemapa|planemapa </Plane3d>
clonesprite3dt.png (60099 bytes)
<Plane3d> planeobj| world1 |0|0|0|0|0|0|1|1|1 |1.0|1.0| 2|2| 0|0|2|1| planemapa|planemapa </Plane3d>

Sphere - koule

<Sphere> název | 3dworld nebo otec |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z| poèet rovnobì¾ek|poèet poledníkù |pozice textury u1|pozice textury v1|pozice textury u2|pozice textury v2| polomìr-celková velikost|texpref|textura 0|textura 1|textura 2|textura 3 </Sphere>

Poèet rovnobì¾ek a poledníkù (polygonù) urèuje jak bude koule hladká minimum je 2.

Texpref (0 nebo 1) pøepíná mezi dvìma typy mapování. Koule mù¾e mít 4 rùzné textury na ka¾dou ètvrtinu koule. Kdy¾ pou¾ije¹ 4 stejné, tak se roztáhnou po celé kouli.

sphere3dtyp0.png (22622 bytes)
<Sphere> koule1 | world1 |0|0|0|0|0|0|1|1|1 |12|12| 1| 0|0|0|1|1|t1 |t2 |t3 |t4 </Sphere>
4 textury, texpref typ 0.
sphere3dtyp1.png (12492 bytes)
<Sphere> koule1 | world1 |0|0|0|0|0|0|1|1|1 |12|12| 1| 1|0|0|1|1|t1 |t2 |t3 |t4 </Sphere>
4 textury, texpref typ 1.

Sprite3d - sprajt jako 3d objekt

<Sprite3d> název | název World3d |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z|vý¹ka|¹íøka|název bitmapy </Sprite3d>

Na konec mù¾e¹ (i nemusí¹) pøidat: |název Colortable |typ (0 nebo 1) </Sprite3d> To zpùsobí ¾e objekt bude prùhledný.

Bitmapa se bude chovat jako 3d objekt, ale bude vidìt jenom zepøedu. Mù¾es s ním tedy pohybovat v prostoru, ov¹em nelze s ním rotovat. Je to podobné tøeba rùzným ohòùm-svìtlùm atd. ve starých doomovkách.

Velikost bitmapy je neomezená a vzniklý 3d objekt se dá pou¾ít jako otec-syn, nebo klonovat.

sprite3d1.png (34204 bytes)
<Sprite3d> 3dsprajt1 |world1|0|0|0|0|0|0|1|1|1|1|1 |traktor </Sprite3d>
sprite3d2.png (38758 bytes)
<Sprite3d> poz6 |prazdnej|0|-1|0|0|0|0|1|1|1|1|1 |povoz </Sprite3d>

Star3d - hvìzda

<Star3d> název |3dworld nebo otec |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z|poèet cípù| ray1|ray2|center offset|okraj outline|textura 0|textura 1|textura 2|textura 3|textura 4|textura 5 </Star3d>

Hvìzda je objekt s kterým se dají dìlat opravdu zajímavé kousky. Jednodu¹e z ní udìlá¹ disk, kosoètverec (a dal¹í) nebo pou¾ije¹ jen outline. Stále platí; kde není textura je prázdno. Tímto se dá dosáhnout pùsobivých efektù.

Poèet cípù, velikost hvìzdy a outline je snad neomezená. Pøi vy¹¹ích hodnotách je ale v¹e o dost pomalej¹í a pak i deformované.

star3dschema2.png (7365 bytes)
Tex2 a tex5 jsou outline.
star3dschema.png (10002 bytes)
Obrázek v¾dy hodnì napoví.
star3d1.png (14004 bytes)
Hvìzda má celkem 6 textur.
star3d2.png (11871 bytes)
Kde není textura je prázdno a zbyde jen outline.

Tore - torus, prstenec

<Tore> název |3dworld nebo otec |poz X|poz Y|poz Z|rot X|rot Y|rot Z|velikost X|velikost Y|velikost Z|divideOut|divideIn|rayOut|rayIn|texpref |pozice textury u1|pozice textury v1|pozice textury u2|pozice textury v2|textura 0|textura 1|textura 2|textura 3 </Tore>

DivideOut a divideIn urèuje jak bude torus hladký (minimum je 3). Textury a texpref se chovají jako u Sphere.
torus3dschema.png (11919 bytes)
RayIn musí být men¹í, (nebo stejný) ne¾ rayOut.
torus3d.png (24975 bytes)
Jednoduchý torus a 4 textury.
ghh don'tpanic