Támogatás

Az oldal oktatási célra készült, és folyamatosan fejlesztem, amikor időm engedi. A tárhelyet önerőből tartom fent, ezért bármilyen támogatással segítheted a további működést.

Paypal címem: 
niethammer.zoli@gmail.com

AR marker

A marker egy olyan kép, amelyet a kiterjesztett valóság modellkhez használunk. Nyomtasd ki kb. 10-15 cm méretben, vagy nagyítsd ki egy monitoron!

A testek térbeli elhelyezésére a HELY utasítást használja a WebGlBasic, vagyis meg kell adni az x,y,z koordinátákat. A PIXELMAP utasítással viszont az x, és a z koordinátát egy PNG képből is kinyerhetjük.

1.       Először rajzolni kell egy pixeles képet, ami maximum 400x400 pixel lehet. A képen minden pixel egy 3D test helyét jelölheti. Egy pixel 1 egység lehet a koordináta-rendszerben.
Legegyszerűbb esetben fehér háttéren fekete pixelek jelölhetik a testek helyét, de akármennyi színt lehet használni különböző testek elhelyezésére.

2.       A pixeles képet PNG formátumban kell elmenteni, és utána a felhő tárhelyre fel kell tölteni. a példában a teszt nevű felhasználót használtam, és a map1 mappába töltöttem a map1.png képek.

3.       A programban definiálni kell az 3D objektumokat. Ezek lehetnek egyszerű testek, vagy akár csoportok is. Ezekről készít majd másolatot a pixelmap utasítás, ezért a jelenetben benn kell lenniük. Ha nem akarjuk látni ezeket a mintákat, akkor az HELY utasításban valamelyik koordinátájukat nagyon nagyra kell állítani. Pl.: 10000000-ra. Így ott lesznek, de nem fognak látszódni. A példában TEST1, TEST2, és TEST3 a nevük.

4.       Végül a definiált objektumokat hozzárendeljük a pixeles térkép adott színű pixeljeihez.
Ehhez először az RGB utasítással megadjuk pontosan a pixel színét, majd a PIXELMAP utasítással hozzá kapcsoljuk valamelyik testet, amit már előre definiáltunk.


Az utasítás 4 paraméteres:

1.       A kép elérési útvonala, és a neve: /map1/map1.png
2.       Valamelyik definiált test neve: TESZT1
3.       Szorzótényező, ami az x,z koordinátákat módosítja: 1
4.       A felhasználó tárhelyének neve: teszt

rgb(255,0,0)   // piros pixelek
pixelmap(/map1/map1.png,TEST1,1,teszt)

A példában a TEST2 egy sárga henger, aminek a sugara 0.5, és a magassága 2 egység. A helye (-15,0,0) Ezt lehet módosítani pl. (-100000,0,0) értékre, ha nem szeretnénk látni.

A map1.png kép 20x20 pixeles, és a kék gyűrű RGB színkódja 0,0,255. Így a 26. sorban lévő utasítás a sárga hengerről készít annyi másolatot, ahány kék pixel van a map1.png képen.

A 20x20 pixel megfelel 20x20 egységnek a 3D térben, ezért kellett a 21. sorban az egész generált geometriát eltolni a (-10,0,-10) helyre. Persze lehetett volna akárhova eltolni, sőt forgatni is.

Ez a példa mindössze 12 sor kóddal generál egy mászkálós labirintus játékot.

 

A kód részei:

5.       A mozgás átkapcsolása billentyűzetre, FPV módra.
6.       A kezdőpont kamera pozíciójának beállítása. Induláskor rá kell kattintani, ha nem működiknek a kurzormozgató nyilak.
7.       Alapértelmezett matt felületet állít be
10-12.           A föld egy 100x100 egység méretű téglatest, amin 20x ismétlődik a textúra
16-18.           4 egység magas, 1x1 egység méretű téglatest lesz a definiált objektum. Ebből épül fel a labirintus.
21-23.           Az RGB(0,0,0) fekete pixelek rajzolják ki a labirintus mintázatát. A map2.png 100x100 pixeles.

 Ha a map2.png képre felrakunk egyetlen piros pixelt, akkor azzal meghatározhatjuk a piros gömb helyét is.

 

A map3.png véletlenszerű fekete pixeleket tartalmaz. Ez alapján készültek másolatok a kék színű részecskéről.