Doplním technologickú časť popisu:
Základom je rozšírenie GameBlenderu o možnosť načítať mesh "zvonka"
a vytvorenie dll knižnice, ktorá tú mesh GameBlenderu poskytne (na základe načítania z Motion Trackingu).
V module GameLogic, trieda MeshObject som doplnil metódu loadMesh(msh) pre načítanie meshe dodanej "zvonka" - parameter msh je v pythonovskom objekte zabalená c-štruktúra, ktorá obsahuje kompletný popis meshe (vrcholy, fejsy, submeshe). Kompilované je to na verzii 2.36. Túto metódu je možné použiť na zmenu meshe ľubovoľného objektu zásahom zvonka. Keďže je to rozšírenie Blenderu, táto časť bude zrejme OpenSource.
Track.dll knižnica používa sieťovú komunikáciu na pripojenie sa na Motion Tracking a načítanie dát z neho. Následne tieto údaje transformuje na mesh vyhovujúcu pre GameBlender.
Horná vrstva komunikácie je urobená v Pythone, track.dll poskytuje metódy pre pripojenie sa na MT a získanie štruktúry meshe, ktorú prevezme funkcia loadMesh() a zobrazí ju v GameBlenderi.
Samotný skript v Pythone pre načítanie meshe je dosť jednoduchý:
Kód:
import track
obj = GameLogic.getCurrentController().getOwner()
if obj.init == 0:
obj.init = 1
# pripojenie na server MT - adresa a port
track.open('localhost','50007')
newMesh = track.getMesh()
obj.getMesh().loadMesh(newMesh)
Momentálne funguje len zobrazenie objektov v reálnom čase, na fyzike (kolíziách so scénou) práve rozmýšľam.