(c)2003 Pavel Pindora
Email Kontakt Pro více informací je zde formulář
3DOT engine
Pozor, protože se jedná o jakousi alfa verzi, můžou se popsané věci časem měnit.
|
Stručná charakteristika projektu 3DOT engine Cílem projektu je vyvinout software, pracující se základními OpenGl objekty v 3D prostoru , které mohou měnit své parametry, dynamicky, během online renderování a to na základě dat přicházejících za pomocí různých interfejsů z reálného světa a zpracovaných pomocí skriptovacích či jiných technik, použitých v tomto engine nebo i mimo něj. Projekt si neklade za cíl modelování k tomu jsou určeny jiné 3D programy, ze kterými jej nelze srovnávat i když některé modelovací možnosti snad bude mít ale spíše jen jako výsledek po zpracování dat. Pokud je nutné použít složitější 3D tvary , je potřeba je vymodelovat v příslušném 3D software a exportovat do obj, který tento engine je schopen importovat 3DOT engine je výchozím prostředkem pro projekty : 3D Vizualizací ViDJ ... |
¨
16.01.2005 Natočení celé scény okolo osy X (Y,Z)
19.06.2005 Trojúhelník, základní objekt
Nejdříve si ukážeme jak otočit celou scénou okolo osy X, podobně to pak můžeme provést okolo os Y,Z.
Následující obrázek ukazuje jak to provést rychle , zásahem uživatele.

Pro lepší orientaci je zadavatel umístěn zde
t.j. ve spodní části okna.

Častějším případem ale bude možnost ovlivňovat natočení programově , takže si ukážeme, jak vytvořit proměnnou a jak jí napojit na položku , zde na Rotate X. Potom hodnotu této proměnné můžeme ovlivňovat skriptem a také ji sledovat v debugeru (Watch).

Pokud chceme sledovat hodnotu proměnné (RotateX0) , vybereme ji a stiskneme tlačítko Add Watch-> . Proměnná se zobrazí ve sloupci Debug a můžeme sledovat její hodnotu

Hodnotu můžeme zadávat i ručně , opět označíme proměnnou , ta se přesune do spodního sloupce Variable (pod Debug) a do sloupce Run value pak vložíme novou hodnotu, v našem případě -27.0

Natočení pak bude vypadat takto

Nakonec si ukážeme přístup k proměnné ve skriptu
| Dim AddRotX Dim ok
|
Nejdříve založíme prázdný projekt s názvem třebas Trojúhelník.

Potom do scény vložíme trojúhelník .

Po stisku tlačítka ok můžeme dále měnit parametry budoucího objektu, jako vrcholy VertxX,...Z, barvu každého vrcholu VColrR,G,B atd. Trojúhelník má tři vrcholy , proto jsou zde tři řádky VerIdx 0,1,2.

Po stisku tlačítka Add , je objekt trojúhelníku vytvořen ve scéně , v parametrizačním poli pak můžeme podobným způsobem jako jsme v předchozím tutoriále měnili parametry , změnit parametry. Například změníme barvu Color R0 = 200, G0=0, B0=10

Potom bude objekt vypadat takto

Stejně tak naneseme textůru,představovanou pořadovým číslem, nebo měnit polohu vrcholů změnou hodnot Vertex X0,1,2, Vertex Y0,1,2, Vertex Z0,1,2. Poloha a natočení lze měnit hodnotami v Translate X,Y,Z , Rotate X,Y,Z. Scénu potom nesmíme zapomenout uložit a to nejlépe do stejného adresáře , kde jsme založili projekt. Důvodem je navázání parametrů trojúhelníku na proměnné, řízené skriptem. Takto uloženou scénu pak musíme svázat s projektem Trojúhelník.
Projekt svazuje soubory scény,proměnných a skriptů . Umožňuje tak měnit chování,vlastnosti objektů během chodu aplikace na základě různých podnětů, generovaných skriptem do proměnných, nebo tyto proměnné mohou být navázány na data z reálného světa, pomocí "interfejsů".
Ukážeme si dále jak ovládat, například, polohu vrcholu 0 v ose X,Y,Z pomocí proměnných a ty zase ovlivníme výpočtem ve VB skriptu..
Otevřeme menu Projekt / Projekt open a načteme náš projekt Trojúhelník. Ve stejném menu spustíme Projekt manager ,

protože budeme přidávat scénu , tak do Scene vložíme její název souboru, t.j. Trojúhelník.scene a to pomocí tlačítka Add file to project.
Vytvoření proměnných pro vrcholy X0,Y0,Z0.
Proměnné založíme za pomocí Data manageru (ovládání bylo popsáno již v předchozím tutoriále) , budou mít název VertexX0,VertexY0,VertexZ0 a uložíme je do složek User Var, kde se ostatně dají vytvářet user variables. Jako název stačí zadat jen např. VertexX , protože po stisku tlačítka Insert bude k němu přičtena hodnota z položky Index, výsledným názvem pak bude VertexX0,Y0,Z0. Zbývá dodat, že proměnné budou typu float.
Proměnné napojíme na vlastnost VertexX0,Y0,Z0 v parametrech

objektu trojúhelníka , opět již bylo posáno.
Data manager uložíme třeba pod názvem Trojúhelník.mvar. Soubor pak opět zavedeme do Projekt manageru Trojúhelník ale tentokrát jako Variable.

Nakonec
bude potřeba vytvořit soubory ze skripty a to ze skriptem inicializačním a
renderujícím. Inicializační se provede jen jednou, při stisku tlačítka
Start runtime,effects script
, dodám jen že ke stopu slouží
, po opětném startu se zase vykoná iniskript.
Příklad ini skriptu :
| Dim VertexX0 Dim VertexY0 Dim VertexZ0 Dim ok VertexX0= -10.0 VertexY0= 0.0 VertexZ0= 0.0 ok = mUserData.SetValue("/Root/UserVar/VertexX0",VertexX0) ok = mUserData.SetValue("/Root/UserVar/VertexY0",VertexY0) ok = mUserData.SetValue("/Root/UserVar/VertexZ0",VertexZ0) |
A příklad render skriptu :
| Dim VertexX0 Dim VertexY0 Dim VertexZ0 Dim ok VertexX0= 0.0 VertexY0= 0.0 VertexZ0= 0.0 VertexX0= mUserData.GetValue("/Root/UserVar/VertexX0") VertexX0= VertexX0 + 0.01 ok = mUserData.SetValue("/Root/UserVar/VertexX0",VertexX0) VertexY0= mUserData.GetValue("/Root/UserVar/VertexY0") VertexY0= VertexY0 + 0.01 ok = mUserData.SetValue("/Root/UserVar/VertexY0",VertexY0) VertexZ0= mUserData.GetValue("/Root/UserVar/VertexZ0") VertexZ0= VertexZ0 + 0.01 ok = mUserData.SetValue("/Root/UserVar/VertexZ0",VertexZ0) |
Po spuštění do runtime, se nám začne vrchol Vertex X0,Y0,Z0 trojúhelníka pohybovat dle výpočtu v render skriptu.
Chtěl bych ještě naznačit, že k vrcholu se můžeme dostat přímo bez proměnné a to pomocí příkazu
VertexX0 = mUserData.GetValue("/GF/GL_TRIANGLES/GL_Trojúhelník00/Vertex X0")
Kde /GF říká že se jedná o float typ.