Právě je sob lis 30, 2024 5:36 pm

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 40 ]  Přejít na stránku 1, 2, 3  Další
Autor Zpráva
 Předmět příspěvku: GameBlender plugin systém
PříspěvekNapsal: čtv dub 13, 2006 10:49 am 
Offline
....
....

Registrován: pon črc 12, 2004 1:15 pm
Příspěvky: 382
Bydliště: Bratislava
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ň.


Naposledy upravil Ash dne čtv dub 13, 2006 10:48 pm, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: čtv dub 13, 2006 10:39 pm 
Offline
.....
.....
Uživatelský avatar

Registrován: úte črc 20, 2004 6:14 pm
Příspěvky: 594
:bigups:


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pát dub 14, 2006 11:07 am 
Offline
...........
...........
Uživatelský avatar

Registrován: sob zář 18, 2004 4:13 pm
Příspěvky: 1898
Bydliště: Slovensko, Bratislava
:shocked:
Nemam slov. Ked sa ti to podari tak to bude pecka. Drzim palec.


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte dub 18, 2006 10:45 am 
Offline
....
....

Registrován: pon črc 12, 2004 1:15 pm
Příspěvky: 382
Bydliště: Bratislava
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.


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pon dub 24, 2006 5:18 pm 
Offline
....
....

Registrován: pon črc 12, 2004 1:15 pm
Příspěvky: 382
Bydliště: Bratislava
Prvá použiteľná verzia video pluginu - zatiaľ len po anglicky (na BlenderArtists to má väčší ohlas ako tu).


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pon dub 24, 2006 5:36 pm 
Offline
...........
...........
Uživatelský avatar

Registrován: sob zář 18, 2004 4:13 pm
Příspěvky: 1898
Bydliště: Slovensko, Bratislava
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...


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pon dub 24, 2006 6:32 pm 
Offline
........
........
Uživatelský avatar

Registrován: stř led 04, 2006 8:20 pm
Příspěvky: 1364
Bydliště: Doma
Caues,
¨
Tak jestli semto dobre pochopil tak do blenderu nahrajes video a ve hre ti to pojede?


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: úte dub 25, 2006 9:09 am 
Offline
....
....

Registrován: pon črc 12, 2004 1:15 pm
Příspěvky: 382
Bydliště: Bratislava
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...


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pát dub 28, 2006 5:25 am 
Offline
.......
.......
Uživatelský avatar

Registrován: stř srp 11, 2004 4:24 pm
Příspěvky: 1150
Bydliště: net
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 8145 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pát dub 28, 2006 9:19 am 
Offline
....
....

Registrován: pon črc 12, 2004 1:15 pm
Příspěvky: 382
Bydliště: Bratislava
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.


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pát dub 28, 2006 12:00 pm 
Offline
....
....

Registrován: pon črc 12, 2004 1:15 pm
Příspěvky: 382
Bydliště: Bratislava
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.


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: pát dub 28, 2006 10:12 pm 
Offline
.......
.......
Uživatelský avatar

Registrován: stř srp 11, 2004 4:24 pm
Příspěvky: 1150
Bydliště: net
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


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: sob dub 29, 2006 8:37 am 
Offline
 ...
 ...

Registrován: úte pro 27, 2005 4:55 pm
Příspěvky: 108
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:


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: sob dub 29, 2006 12:42 pm 
Offline
....
....
Uživatelský avatar

Registrován: stř bře 22, 2006 7:38 pm
Příspěvky: 359
Bydliště: Praha
:shock: :shock: :shock: wow :shock: :shock: :shock:


Nahoru
 Profil  
 
 Předmět příspěvku:
PříspěvekNapsal: stř kvě 03, 2006 6:30 pm 
Offline
...........
...........
Uživatelský avatar

Registrován: sob zář 18, 2004 4:13 pm
Příspěvky: 1898
Bydliště: Slovensko, Bratislava
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...


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 40 ]  Přejít na stránku 1, 2, 3  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz