blender3d.cz
http://forum.blender3d.cz/

GameBlender plugin systém
http://forum.blender3d.cz/viewtopic.php?f=10&t=2806
Stránka 13

Autor:  Ash [ čtv dub 13, 2006 10:49 am ]
Předmět příspěvku:  GameBlender plugin systém

Nedávno som v diskusii o prehrávaní videa v GameBlenderi spomínal, že rozmýšľam nad vytvorením systému pluginov pre GameBlender. Po dlhšom aktívnom štúdiu zdrojových súborov aktuálnej verzie 2.41 som dal dokopy koncept, ako by to mohlo fungovať. Prvým výstupom bude plugin pre prehrávanie videa v textúre v GameBlenderi, ale možnosti sú podľa mňa obrovské - v podstate hocičo, čo v súčasnosti GameBlenderu chýba, by sa dalo takto dorobiť (softbodies, časticové systémy, animácia kvapalín, realtime tiene...). Chcel by som vedieť vaše názory na tento návrh.

Princípy systému pluginov:
1. Pluginy sú implementované v C/C++ a prezentované vo forme dynamickej knižnice (dll) - momentálne vyvíjam pod Windows, pre linuxy privítam pomoc.
2. Pluginy pristupujú do vnútorných objektov GameBlenderu cez zvolený vstupný bod rozhrania Pythonu - uprednostňujem prístup cez KX_GameObject (štandardný herný objekt), ktorý pomocou pythonovského skriptu odošleme do pluginu.
3. Pre narábanie z vnútornými objektmi GameBlenderu budú v plugine použité vybrané funkcie zo zdrojového kódu Blenderu - dôsledkom je, že plugin bude publikovaný pod GPL (používa kód licencovaný pod GPL).
4. Plugin bude poskytovať rozhranie v Pythone pre narábanie s objektmi pluginu.
5. Dôsledkom bude jednoduchá práca s pluginom, výrazne sa zlepší kompatibilita s novými verziami Blenderu (ak sa nezmení dotknutá časť kódu Blenderu, plugin bude fungovať aj v novej verzii, ak áno, tak sa len do pluginu doplnia zmeny a skompiluje sa nová verzia pluginu - odpadá integrovanie zmien do kódu Blenderu a jeho následná rekompilácia).
6. Z pluginu bude dostupná väčšina vnútorných objektov GameBlenderu - v podstate je to takmer zhodné s tým, ako keby boli robené zmeny priamo v zdrojových kódoch Blenderu.

Príklad použitia plánovaného pluginu pre prehrávanie videa v textúre (skript v Pythone v GameBlenderi):
Kód:
# plugin pre prehravanie videa v texture
import texPlayer

# ziskanie objektu, na ktorom bude video prehravane
obj = GameLogic.getCurrentController().getOwner()

# nacitanie avi suboru do prehravaca
if hasattr(GameLogic, 'player') == 0:
  GameLogic.player = texPlayer.Player('c:/myVideo.avi')
  # prehravaj video v texture objektu
  GameLogic.player.play(obj)


Aktuálny stav: mám funkčný pokusný plugin, ktorý dokáže zapisovať do textúry objektu testovacie dáta (urobí v textúre biely pásik). Zostáva dorobiť kopírovanie obrázkov z prehrávaného videa do textúry - ak bude čas cez Veľkú Noc, tak to bude hotové budúci týždeň.

Autor:  mad_eye [ čtv dub 13, 2006 10:39 pm ]
Předmět příspěvku: 

:bigups:

Autor:  zgerbiak [ pát dub 14, 2006 11:07 am ]
Předmět příspěvku: 

:shocked:
Nemam slov. Ked sa ti to podari tak to bude pecka. Drzim palec.

Autor:  Ash [ úte dub 18, 2006 10:45 am ]
Předmět příspěvku: 

Tak je tu nultá verzia pluginu na prehrávanie videa v textúre. Je určená pre WinXP, Blender 2.41 a Python 2.4. Neobsahuje takmer žiadne spracovanie chýb, takže môže padať.

Vyskúšajte a napíšte svoje názory a návrhy.

Autor:  Ash [ pon dub 24, 2006 5:18 pm ]
Předmět příspěvku: 

Prvá použiteľná verzia video pluginu - zatiaľ len po anglicky (na BlenderArtists to má väčší ohlas ako tu).

Autor:  zgerbiak [ pon dub 24, 2006 5:36 pm ]
Předmět příspěvku: 

Sorry, ze som nic nenapisal. Skusal som este prvu verziu ale neslo mi to(nenaslo to plugin, tu vec co je v tom adresari) myslel som si ze nemam py 2.4 tak som to neriesil...
Ja vecsinu casu robim v linuxe a do windowsu chodim zriedka...

Autor:  freekill [ pon dub 24, 2006 6:32 pm ]
Předmět příspěvku: 

Caues,
¨
Tak jestli semto dobre pochopil tak do blenderu nahrajes video a ve hre ti to pojede?

Autor:  Ash [ úte dub 25, 2006 9:09 am ]
Předmět příspěvku: 

freekill,

stiahni si demo a uvidíš. Umožňuje to prehrať jedno alebo viacero videoklipov ako textúry určených objektov. Umožňuje to riadiť prehrávanie, určiť jeho opakovanie, začiatok a koniec prehrávanej časti...

Autor:  jm [ pát dub 28, 2006 5:25 am ]
Předmět příspěvku: 

hele skousel sem to a nejak to nenacita video. nespadne to nic se nedeje, zadnej vypis, ale textura nikde. hodil sem video na primo na C a prepsal cestu natvrdo, nic.

XP, Blender 2.41

samozrejme je to supr napad, jen si rikam jestli to ma vyznam pokud tam bude grafickej engine napr OGRE kterej to ma v sobe automaticky. Saluk na tom s nekym dela pokud vim.

sem pako, tazke sem si az ted vsim ze musim zmacknout space, no a vtu chvili to spadlo.
skosim to behem hodiny takze je to trochu hektika a mozna delam neco spatne.
----------------------
takze mi to nedalo :)
no a zjistil sem ze sem nemel cestu k pythonu v promennych a prepsal sem adresu natvrdo....a hadejte, jede toooooooooooooo coool na tohle cekali vsichni od zacatku .diky moc
to se bude vildovi liiiibit pri jeho vjblender sesions :banana:

obrazek:

jm :banana:

Přílohy:
video_blender.jpg
video_blender.jpg [ 35.42 KiB | Zobrazeno 8133 krát ]

Autor:  Ash [ pát dub 28, 2006 9:19 am ]
Předmět příspěvku: 

To s tým OGRE nie je také jednoduché - ffmpeg plugin nie je v súčasnosti podporovaný ani vyvíjaný (problémy s licenciami pri použití v komerčných projektoch), TheoraPlugin je zameraný špecificky na Theora codec a pravdepodobne v ňom normálne AVI neprehráš.

Prehrávanie videa v GameBlenderi potrebujem pre jeden osobný projekt (prvý pokus so samostatným video oknom mal od dokonalosti ďaleko). Navyše som si prakticky odskúšal prístup k vnútorným objektom Blenderu/GameBlenderu, s ktorým mám veľké plány - niečo som už naznačil v prvom príspevku tejto diskusie.

Ostatne takýto prístup by mohol byť zaujímavý aj pre teba, ak na to napasujem OpenCV knižnicu namiesto DirectShow.

Autor:  Ash [ pát dub 28, 2006 12:00 pm ]
Předmět příspěvku: 

1. Čím je plugin závislejší od vnútorných štruktúr a tried GameBlenderu, tým je väčšia pravdepodobnosť, že pri zmene zdrojákov Blenderu bude treba zmeniť aj zdrojáky pluginu a prekompilovať ho. Preto je dôležité mať čo najmenej závislostí. Momentálne je tento plugin závislý od niekoľkých tried (KX_GameObject, RAS_MeshObject, KX_PolygonMaterial, TFace, Image) a zopár funkcií týchto tried. Ak tieto triedy nebudú v ďalšej verzii úplne prekopané, povýšenie pluginu na novú verziu je záležitosť pár hodín, inak dní (úvodné naprogramovanie pluginu trvalo týždeň).
2. Výkonnosť je v porovnaní plugin vs. interné rozšírenie Blenderu prakticky rovnaká (plugin poskytuje vlastné rozhranie pre Python, vnútorne je plne naprogramovaný v C++). Pokiaľ plugin nie je použitý, vôbec neovplyvňuje výkonnosť, takže každý si môže vybrať ktorý plugin a kde použije, aby bola výkonnosť jeho hry prijateľná.
3. Pri cullingu by sa interne dalo urobiť neupdatovanie textúry, pokiaľ nie je jej objekt viditeľný, ale v princípe je toto možné urobiť aj v plugine (stačí rozšíriť konštruktor triedy Player o referenciu na použitú kameru a je možné určiť, kedy je objekt viditeľný a kedy nie).
4. Pre plné použitie modulárnych pluginov by bolo samozrejme potrebné, aby pre ne Blender poskytoval rozhranie - momentálne je plugin postavený skôr na princípe hacku interných štruktúr GameBlenderu.

Autor:  jm [ pát dub 28, 2006 10:12 pm ]
Předmět příspěvku: 

myslim ze dobry reseni je pouzit opencv. ale to nezalezi na me. directy sou trochu malo univerzalni, jak vime. opencv bezi ted skoro vsude. na intelech samozrejme.

nejsem si jistej jak to bude s direktama do budoucnosti, ale to je ted stejne jedno.
jen sem chtel rict ze opencv by bylo supr. uz jen protoze se stejne v nem budes vrtat ;)

re vilda:
no nejspis si stim budes mit sanci brzo pohrat ;) jak sem na to koukal a ash to potvrdil nemel by to bejt az zas takovej problem a na jednoduchy trackovani to bude uzasny...bude to jeden z ashuv uzasnech pluginu....chtelo by to nejak podporit grantama, nebo neco takovyho, aby to nechciplo na tom ze ash nebude mit cas a tim se zastavi vyvoj...ikdyz verim ze ash napise dobrej popis a nekdo dalsi v tom bude moc pokracovat po nem.....ikdyz nevim teda kdo :mrgreen:

jm

Autor:  Master03 [ sob dub 29, 2006 8:37 am ]
Předmět příspěvku: 

Tak to teda fakt valim bulvy!!!!
Je super ze se ti to podarilo rozchodit uz timto zpusobem, pokud to bude pokracovat, tak to bude samozrejme opravdu extreme!
Fandim ti :wink:

Autor:  batwin [ sob dub 29, 2006 12:42 pm ]
Předmět příspěvku: 

:shock: :shock: :shock: wow :shock: :shock: :shock:

Autor:  zgerbiak [ stř kvě 03, 2006 6:30 pm ]
Předmět příspěvku: 

Dnes som konecne siel do windowsu lebo uz sa toho nakopilo co som v nom mal spravit, tak som to pozrel. V oboch verziach mi to slapalo ibaze nie tak ako ma. Prva verzia mi prehrala video na full screene a druha mi otvorila nejaky makeplayer a prehralo to v nom... Ono to malo prehrat na mesh-i co?
nepisalo ziadnu chybu. Robil som to vo win Xp, py 2.4 a blender 2.41
V prvej verzii som skusal .avi a .WMV, oboje to iste...

Stránka 13 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/