 |
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.
|

Dobøe. |

©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. |

<Cube> kostka | world1 |0|0|0|0|0|0|1|1|1|tmap0|tmap1|tmap2|tmap3|tmap4|tmap5 </Cube> |

<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). |

<Clone3d> klon1|hvezda|0|0|0|0|0.1|0|0.75|0.75|0.75|hvezda </Clone3d> a dal¹í klony |

<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ù. |

<CloneToSprite3d> 3dsprajt | kostka |0|0|0|0|0|0|1|1|1|kostka|0.5|0.75| sprite3d </CloneToSprite3d> |

<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> 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> 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. |

Má¹ na výbìr mezi ètyøúhelníky a trojúhelníky. |

Dvì skupiny polygonù, èervená a modrá. |

Vertexy zaèínají èíslem nula po smìru hodin. |

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. |

<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> |

<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. |

<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. |

<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. |

<Sprite3d> 3dsprajt1 |world1|0|0|0|0|0|0|1|1|1|1|1 |traktor </Sprite3d> |

<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é. |

Tex2 a tex5 jsou outline. |

Obrázek v¾dy hodnì napoví. |

Hvìzda má celkem 6 textur. |

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. |

RayIn musí být men¹í, (nebo stejný) ne¾ rayOut. |

Jednoduchý torus a 4 textury. |
|
|
|
| ghh don'tpanic |