Světla v XNA

Vývoj her v XNA
Post Reply
BlackBull
nováček
nováček
Posts: 11
Joined: Thu Sep 23, 2010 20:16
Zařízení: htc desire

Světla v XNA

Post by BlackBull »

Zdravím,

chci se zeptat jestli někdo neví jak udělat effekt světla. Na internetu jsem našel akorát tutorialy pro 3d ,ale ja bych to potřeboval udělat ve 2d :-( .
[youtube]http://www.youtube.com/watch?v=J1xr9kbQXKI[/youtube]
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Posts: 264
Joined: Wed Aug 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Světla v XNA

Post by Tomáš Slavíček »

Ahoj, a chceš to dělat pro Windows Phone, nebo pro PC/Xbox? Obávám se, že tohle je přesně ideální příklad pro pixel shader (na Windows Phone nejde), viz např. další video. Jak to přesně udělat, by se mělo dát najít někde na netu, nebo v knížkách. Na mobilu by se něco podobného možná dalo nasimulovat pomocí stencil bufferu, depth bufferu...

Ale zatím mě nic nenapadá, zkusím se zamyslet :) Už aby ty zpropadené shadery na WP7 umožnili, od října 2010 to stále slibují (ale oni místo toho XNA ve Win8/metro ruší celé...).
BlackBull
nováček
nováček
Posts: 11
Joined: Thu Sep 23, 2010 20:16
Zařízení: htc desire

Světla v XNA

Post by BlackBull »

No chci to dělat na wp7,ale na internetu skoro žádný tutoriál není a když je tak je na 3d :/
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Posts: 264
Joined: Wed Aug 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Světla v XNA

Post by Tomáš Slavíček »

Můžeš sem kdyžtak hodit nějaké odkazy na ty tutoriály na 3D? Jen tak pro info. Tam se asi bude používat efekt mlhy...
BlackBull
nováček
nováček
Posts: 11
Joined: Thu Sep 23, 2010 20:16
Zařízení: htc desire

Světla v XNA

Post by BlackBull »

http://mscerts.programming4.us/windows_ ... games.aspx

Dělá se to tam nějak přes basiceffect,ale nvm jak to použít.
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Posts: 264
Joined: Wed Aug 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Světla v XNA

Post by Tomáš Slavíček »

Tohle je něco jiného, to je popis jak nasvítit modely na scéně... Ty budeš potřebovat spíš "zakrýt objekty", příp. nějakým způsobem určit, která jejich část má být vidět a která ne. Myslím, že na Windows Phone bude potřeba použít trochu složitější techniky. Nějaký nápad mám, až budu mít chvilku času, zkusím se na to kouknout...
matoman
smartmaniak
smartmaniak
Posts: 1163
Joined: Sat Nov 10, 2007 11:56
Zařízení: Nokia Lumia 920

Světla v XNA

Post by matoman »

a neslo by tednoducho, zakryt scenu polopriesvitnou tmou :) a proste len odmaskovat tam kde je svetlo? Aspon mi to z toho videa pripada ... a ziadne "příp. nějakým způsobem určit, která jejich část má být vidět a která ne"
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Posts: 264
Joined: Wed Aug 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Světla v XNA

Post by Tomáš Slavíček »

matoman: Jo, něco takového myslím. Jenže černé kolečko plácneš na scénu jednoduše, prostě tam umístíš obrázek. Ale tady potřebuješ opak, aby vše bylo černé, kromě toho kolečka :) Otázka je, jak to udělat (právě to odmaskování)... Jít pixel po pixelu a kontrolovat to / přebarvovat podle mě moc nepřipadá v úvahu... Operace SetData a GetData na textuře jsou hrozně pomalé... Možná, že by to výkonově stíhalo, ale trochu se obávám. Je to jen mobil...

Tohle celé by chtělo ideálně provést "na grafické kartě", tj. např. právě nějak využít ty její pomocné buffery (stencil buffer apod.), kam umístím to černé "kolečko", ten buffer potom třeba nějakým způsobem zinvertuji, pak podle něj pak vykreslím... Aby se nemusela data při každém přístupu kopírovat z grafické karty zpět do paměti. Tímhle způsobem se dají na scéně např. vykreslovat stíny. Ale musel bych se na to podívat. Máte někdo nějaké jiné nápady?
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Posts: 264
Joined: Wed Aug 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Světla v XNA

Post by Tomáš Slavíček »

Tohle vypadá, že je správný postup: odkaz Opravdu bude nejlepší použít stencil buffer v kombinaci s vestavěným AlphaTestEffectem. Zkus na to kouknout a pohrabat se v tom kódu... Co jsem koukal, mělo by to fungovat i na ty "rozostřené okraje". Ale je to už docela pokročilejší technika.
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Posts: 264
Joined: Wed Aug 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Světla v XNA

Post by Tomáš Slavíček »

Další odpověď, která by se mohla hodit na danou otázku: http://stackoverflow.com/questions/2656 ... ransparent
Tomáš Slavíček
častý přispěvatel
častý přispěvatel
Posts: 264
Joined: Wed Aug 19, 2009 7:09
Zařízení: Nexus 5, Galaxy S3, Nokia X, iPad mini

Světla v XNA

Post by Tomáš Slavíček »

Případně pro úplné fajšmejkry, über-článek na Shawnově blogu :) Jak se obejít bez vlastních shaderů, když chceme ale opravdu vše počítat a vykreslovat na GPU, ne CPU: http://blogs.msdn.com/b/shawnhar/archiv ... plete.aspx
Post Reply

Return to “XNA”

Who is online

Users browsing this forum: No registered users and 0 guests