The Asylum
https://darthasylum.blog.hu/atom
blfr3@https://blog.hu
©2024 blog.hu
https://darthasylum.blog.hu/2023/12/13/light_space_perspective_shadow_mapping_838
Light Space Perspective Shadow Mapping
2023-12-13T16:50:53+01:00
2023-12-13T16:50:53+01:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Ehhez a bejegyzéshez most nincs külön cikk, mert a lényeget néhány mondatban össze lehet foglalni.</p>
<p style="text-align: justify;">Az Archicad 27 megjelenésével experimental feature-ként bekerült a <em>physically based rendering</em>, ennek kapcsán kezdtem el foglalkozni CAD-ben használatos shadow mapping módszerekkel (Archicad 28-ra ütemezve). A modellek nagy mérete miatt a szakirodalom az ún. <em>perspective warp</em> alapú technikákat javasolja, aminek a lényege, hogy egy extra projekciós mátrixxal a modellt úgy torzítja, hogy a kamerához közel eső részeken legyen jobban kitöltve a shadow map.</p>
<p><img src="https://m.blog.hu/da/darthasylum/image/lispsm.jpg" alt="lispsm.jpg" class="imgnotext open-in-modal" width="400px" /></p>
<p style="text-align: justify;"><br />A neten elérhető implementációk közül szinte mindegyik bugos, vagy nehézkes kipróbálni. Hosszas küszködés után arra jutottam, hogy az eredeti dolgozatok is kihagytak bizonyos speciális eseteket. Mivel csak irányított fényforrással foglalkoztam, a hackelések jelentős részét el tudtam kerülni úgy, hogy a near/far clipping-et kikapcsolom (egyéb megközelítések még több hibát hoztak be). Ez teljesen valid megoldás, mivel a shadow map-nek úgyis minden árnyékvetőt tartalmaznia kell.</p>
<p style="text-align: justify;">A <a class="orange" href="https://github.com/asylum2010/Asylum_Tutorials">kódban</a> található még módosított GTAO implementáció is, amihez nem kell <em>temporal filtering</em>. Videó a <a class="orange" href="https://www.youtube.com/watch?v=i8g0s1k5afs">szokott helyen</a>.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2023%2F12%2F13%2Flight_space_perspective_shadow_mapping_838%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2023%2F12%2F13%2Flight_space_perspective_shadow_mapping_838%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2023%2F12%2F13%2Flight_space_perspective_shadow_mapping_838%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Light Space Perspective Shadow Mapping"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2023/12/13/light_space_perspective_shadow_mapping_838#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/18280441" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
https://m.blog.hu/da/darthasylum/image/lispsm.jpg
https://darthasylum.blog.hu/2021/12/07/monte_carlo_modszerek
Monte Carlo módszerek
2021-12-07T11:08:52+01:00
2021-12-07T11:08:52+01:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Brit tudósok kimutatták, hogy minél több a matek egy cikkben, az emberek annál könnyebben megértik, sőt késztetést éreznek arra, hogy ők is megtanulják (bár így lenne).</p>
<p style="text-align: justify;">Akik követnek Facebook-on, azok tudják, hogy az implementáció lényegi része már 2020 végén elkészült; akkor mégis mi tartott ilyen sokáig? A válasz egyszerű: a munka még mindig prioritást élvez, szóval ha baj van, akkor mindent félredobva azzal kell foglalkozni (és ez kétszer is megtörtént).</p>
<p style="text-align: justify;">Az elkészült <a class="orange" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch57_montecarlo.html" target="_blank" rel="noopener noreferrer">cikk</a> időhiány miatt nem lett lektorálva, szóval sajtóhibák előfordulhatnak.<br /><br /><img src="https://m.blog.hu/da/darthasylum/image/ch57_picg3.jpg" alt="ch57_picg3.jpg" class="imgnotext open-in-modal" width="400px" /><br />A korábbi cikkekkel ellentétben ez nem kimondottan valósidejű technika (merthogy offline CGI-ben használatos), viszont a <em>compute shader</em>-nek köszönhetően bizonyos megkötésekkel úgy<em> </em>is eldöcög.</p>
<p style="text-align: justify;">Forráskód a repóban, néhány videó külön Youtube <a class="orange" href="https://www.youtube.com/playlist?list=PLeqy0NBg8_sLuP8b2ciik70i0gf-IeMdn" target="_blank" rel="noopener noreferrer">playlist</a>-ben.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2021%2F12%2F07%2Fmonte_carlo_modszerek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2021%2F12%2F07%2Fmonte_carlo_modszerek%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2021%2F12%2F07%2Fmonte_carlo_modszerek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Monte Carlo módszerek"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2021/12/07/monte_carlo_modszerek#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/16775070" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
https://m.blog.hu/da/darthasylum/image/ch57_picg3.jpg
https://darthasylum.blog.hu/2018/09/17/ocean_rendering
Ocean rendering
2018-09-17T19:39:45+02:00
2018-09-17T19:39:45+02:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Ha valaki esetleg lemaradt volna róla, az idei első félévben képes voltam az egyetemen is tanítani a blogon fellelhető sült és sületlenségeket, így kutatás-fejlesztésre csak a második félév maradt.</p>
<p style="text-align: justify;">Tavaly szinte <em>Poisson</em> eloszlással megszavazta az az öt ember (akit egyáltalán érdekelt a kérdés), hogy az óceán megjelenítéséről szóljon az <a class="orange" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch56_ocean.html">új cikk</a>. Ennek ellenére arról is szól, viszont előre jelezném, hogy mélyen matekos, ami miatt ez a cikk láthatóan nagyon piros (ettől függetlenül ugyanaz vonatkozik rá, mint a normális piros cikkekre). Videó <a class="orange" href="https://www.youtube.com/watch?v=CeJCNmI-B7s&feature=youtu.be">itt</a> (ha nem HD-ben indul, akkor állítsátok át).<br /><br /><img src="https://m.blog.hu/da/darthasylum/image/ward.jpg" alt="ward.jpg" class="imgnotext open-in-modal" width="400px" /><br />Az év további részében a kód refaktorálásával fogok foglalkozni.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2018%2F09%2F17%2Focean_rendering%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2018%2F09%2F17%2Focean_rendering%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2018%2F09%2F17%2Focean_rendering%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Ocean rendering"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2018/09/17/ocean_rendering#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/14245867" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
https://m.blog.hu/da/darthasylum/image/ward.jpg
https://darthasylum.blog.hu/2017/10/25/modern_opengl
Modern OpenGL
2017-10-25T17:12:37+02:00
2017-10-25T17:12:37+02:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Nagyjából öt évvel ezelőtt írtam egy rövidke cikket az <em>OpenGL core profile</em>-ról, aminek a fele tulajdonképpen a <em>Quadron</em>-ba való beépítéséről szólt. Bár a "megrendelőknek" ez akkor teljesen megfelelt (arra voltak kíváncsiak, hogy hatékonyabb-e a réginél), a vulkán cikkem óta furdal a lelkiismeret, hogy mennyi fontos dologgal nem foglalkoztam eddig <em>OpenGL</em>-ben. Az <a class="orange" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch51_moderngl.html">új cikkel</a> ezt most bepótolom (és mostantól ez lesz az 51-es számú cikk).</p>
<p><img src="https://m.blog.hu/da/darthasylum/image/moderngl.jpg" alt="moderngl.jpg" class="imgnotext open-in-modal" width="400px" /></p>
<p style="text-align: justify;">A régi cikket is fent hagyom, de csak szemfüles olvasók fogják megtalálni. A füst-részecskerendszerről készült videó megtekinthető <a class="orange" href="https://www.youtube.com/watch?v=nshjo99C4xI">itt</a>.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2017%2F10%2F25%2Fmodern_opengl%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2017%2F10%2F25%2Fmodern_opengl%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2017%2F10%2F25%2Fmodern_opengl%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Modern OpenGL"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2017/10/25/modern_opengl#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/13039328" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
https://m.blog.hu/da/darthasylum/image/moderngl.jpg
https://darthasylum.blog.hu/2017/04/12/ambient_occlusion
Ambient Occlusion
2017-04-12T17:43:09+02:00
2017-04-12T17:43:09+02:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">A <i>physically based rendering</i> című cikk népszerűségén felbuzdulva itt a <a class="orange" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch54_gtao.html">folytatás</a> (vagy inkább <i>spin-off</i>), amely a <i>screen space ambient occlusion</i> nevű technikával foglalkozik. Az implementáció az eddigi megoldásokhoz képest ténylegesen a megvilágítási egyenleten alapul, sőt beleszövi az ún. <em>temporal reprojection</em> nevű módszert is. Utóbbi nem sikerült tökéletesre, de a hibái viszonylag ritkán láthatóak.<br /><br /><img src="https://m.blog.hu/da/darthasylum/image/gtao_cover2.jpg" alt="gtao_cover2.jpg" class="imgnotext open-in-modal" width="400px" /></p>
<p style="text-align: justify;">A demóról készült <a class="orange" href="https://www.youtube.com/watch?v=mIE3DNbeVvY">videó</a> megtekinthető a <em>youtube</em> csatornámon.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2017%2F04%2F12%2Fambient_occlusion%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2017%2F04%2F12%2Fambient_occlusion%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2017%2F04%2F12%2Fambient_occlusion%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Ambient Occlusion"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2017/04/12/ambient_occlusion#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/12420101" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
https://m.blog.hu/da/darthasylum/image/gtao_cover2.jpg
https://darthasylum.blog.hu/2016/09/12/vulkankitores_819
Vulkánkitörés
2016-09-12T10:59:53+02:00
2016-09-12T10:59:53+02:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Kitartó megfigyelésem eredményeképpen arra a következtetésre jutottam, hogy az embereket három dolog érdekli igazán: a matematika, a <em>deferred shading</em> és a <em>shadow mapping</em>. Az, hogy a <em>Vulkan</em>-ról szóló <a class="orange" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch71_vulkan.html">cikk</a> hová fog kerülni a listában legalább annyira rejtély, mint magának az API-nak a helyes használata. Videó <a class="orange" href="https://www.youtube.com/watch?v=Kn1IIZXz7E4">itt</a>.<br /><br /><img style="display: block; margin-left: auto; margin-right: auto;" src="https://m.blog.hu/da/darthasylum/image/vulk10.jpg" alt="vulk10.jpg" class="imgnotext open-in-modal" width="400px" /><br />Készüljetek fel, mert ez kemény menet lesz...</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2016%2F09%2F12%2Fvulkankitores_819%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2016%2F09%2F12%2Fvulkankitores_819%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2016%2F09%2F12%2Fvulkankitores_819%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Vulkánkitörés"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2016/09/12/vulkankitores_819#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/11696533" border="0" /></a><br /></p>
0
2016-12-20 16:35:13
The Asylum
https://darthasylum.blog.hu
https://m.blog.hu/da/darthasylum/image/vulk10.jpg
https://darthasylum.blog.hu/2015/09/28/physically_based_rendering
Physically based rendering
2015-09-28T10:50:56+02:00
2015-09-28T10:50:56+02:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Ha valaki eddig azon morfondírozott volna, hogy miért kell progmat szakon 8 félév analízis, az most megtalálja a választ az új <a class="orange" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch53_pbr.html">cikkben</a>, ugyanis a felületi integrál analízis 7-8-as anyag. Személy szerint ezt a még ma is fejlődés alatt álló technológiát egy régi korszak végének és egy új korszak kezdetének tekintem. Elbúcsúzunk ugyanis az eddig klasszikus <em>Phong</em> modelltől és egy sokkal szigorúbb, fizikai alapokon nyugvó megjelenítési modellre térünk át. Szigorú azért, mert nem enged meg többé ilyen hackeléseket, hogy <em>"ez a fény túl világos itt, lejjebb veszem"</em>, helyette olyan szemlélettel gyártódik a jelenet, hogy <em>"ez itt egy nappali, ezt egy 50 W-os villanykörte tudja jól bevilágítani"</em>. A kvalitatív megítélést tehát leváltja egy kvantitatív megítélés (<em>"ne nekem legyen jó, hanem a fény fizikája szerint legyen jó"</em>).<br /><br /><img src="https://m.blog.hu/da/darthasylum/image/ch53_picx.jpg" alt="ch53_picx.jpg" class="imgnotext open-in-modal" width="400px" />A cikk erősen matekos, de erre szükség van. Ilyen szempontból nehezebbnek tekinthető, mint a korábbi cikkek, de igyekeztem úgy megfogalmazni a dolgokat, hogy kevésbé hozzáértők is megértsék. Videó <a class="orange" href="https://www.youtube.com/watch?v=okMUxGFjkpY">itt</a>.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2015%2F09%2F28%2Fphysically_based_rendering%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2015%2F09%2F28%2Fphysically_based_rendering%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2015%2F09%2F28%2Fphysically_based_rendering%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Physically based rendering"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2015/09/28/physically_based_rendering#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/7848396" border="0" /></a><br /></p>
0
2016-12-20 16:35:14
The Asylum
https://darthasylum.blog.hu
https://m.blog.hu/da/darthasylum/image/ch53_picx.jpg
https://darthasylum.blog.hu/2014/09/01/opengl_compute_shaderek
OpenGL compute shaderek
2014-09-01T11:10:18+02:00
2014-09-01T11:10:18+02:00
darthasylum
https://blog.hu/user/752532
<p>Eddig ez volt a legtöbb felkészülést igénylő <a class="orange" target="_blank" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch52_compute.html">cikk</a>. Nem azért, mert olyan nehéz, hanem mert egyrészt a drivertámogatás ehhez is katasztrofális (AMD), másrészt olyan elméleti dolgokba is bele kellett másznom, amire nem számítottam (NURBS). Pontosabban arra nem számítottam, hogy egy ilyen, viszonylag idős elmélet ennyire pontatlan...</p>
<p>Rossz hír viszont, hogy az említett szar driverek miatt nem tudom hol fut, hol nem fut és ahol nem fut, ott mit fog csinálni. <em>nVidia GTX 650</em>-en biztos fut, mert azon fejlesztettem. <em>Radeon 6750M</em>-en biztos nem fut <strong>ÉS</strong> le is fagyaszthatja a drivert. Szóval binárist nem is töltöttem fel, a kódot mindenki saját felelősségre fordítsa.</p>
<p><img src="https://m.blog.hu/da/darthasylum/image/fwdplus.png" alt="fwdplus.png" class="imgnotext" /></p>
<p>(A sajtóhibákat azonnal javítom, de a blog.hu teszetoszasága miatt van, hogy sokáig nem látszik...)</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F09%2F01%2Fopengl_compute_shaderek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F09%2F01%2Fopengl_compute_shaderek%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F09%2F01%2Fopengl_compute_shaderek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=OpenGL compute shaderek"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2014/09/01/opengl_compute_shaderek#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/6652027" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/image/fwdplus.png
https://darthasylum.blog.hu/2014/06/01/ojjan_nehez_ez_a_matek
Ojjan nehéz ez a matek... :(
2014-06-01T14:44:43+02:00
2014-06-01T14:44:43+02:00
darthasylum
https://blog.hu/user/752532
<p>Szörnyen nehéz... Annyira nehéz, hogy a most következő <a class="orange" target="_blank" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch32_linalg.html">cikket</a> alig lehet érteni. Pedig a jelölések nagy részével már középiskolából tisztában kéne lenni. Arról nem is beszélve, hogy a képletek a cikknek kb. a 10%-át teszik ki, a többi szöveges magyarázat (míg egy igényesebb matematikai jegyzetben ez pont fordítva van).<br /><br />Márpedig én (már csak az igényesség miatt is) nem fogok gügyögve tanítani matekot. Aki 3D grafikával akar foglalkozni, attól elvárható, hogy tudja mi az a halmaz, meg mik azok a valós számok.<br /><br />Naon, naon nehéz...naon...<br /><br /><img src="https://m.blog.hu/da/darthasylum/tutorials/data/images/ch32_pic50b.png" alt="ch32_pic50b.png" class="imgnotext" width="400" /></p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F06%2F01%2Fojjan_nehez_ez_a_matek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F06%2F01%2Fojjan_nehez_ez_a_matek%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F06%2F01%2Fojjan_nehez_ez_a_matek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Ojjan nehéz ez a matek... :("><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2014/06/01/ojjan_nehez_ez_a_matek#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/6248852" border="0" /></a><br /></p>
0
2016-12-20 16:35:16
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/tutorials/data/images/ch32_pic50b.png
https://darthasylum.blog.hu/2014/05/05/a_peldakodok_esete_a_metallal
A példakódok esete a metállal
2014-05-05T14:47:05+02:00
2014-05-05T14:47:05+02:00
darthasylum
https://blog.hu/user/752532
<p>A hosszúhétvégén a sok lustálkodás és vedelés mellett úgy döntöttem, hogy rendberakom a cikkekhez írt példakódokat. A változások főleg forráskód jellegűek, de némelyik progi ki lett egészítve, illetve sok hibát is kijavítottam (pl. thread kezelés).<br /><br />A legtöbb változás a részecskerendszeres példaprogiban történt, ahol is az eddigi <em>Rodrigo y Gabriela</em> számot lecseréltem heavy metal-ra. Ez aztán magával hozott egyéb változtatásokat is, pl. az animált mesh osztályban (így a cikkben is várható majd kiegészítés). Sajnos a tömörítés hatalmas minőségvesztést okozott, dehát a metál az akkor is metál.<br /><br /><a href="https://m.blog.hu/da/darthasylum/image/particle.png"><img src="https://m.blog.hu/da/darthasylum/image/particle.png" alt="particle.png" class="imgnotext" width="400px" /></a></p>
<p>A kódok (előre lefordított binárissal) továbbra is <a class="orange" target="_blank" href="https://github.com/asylum2010/Asylum_Tutorials">githubon</a>.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F05%2F05%2Fa_peldakodok_esete_a_metallal%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F05%2F05%2Fa_peldakodok_esete_a_metallal%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F05%2F05%2Fa_peldakodok_esete_a_metallal%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=A példakódok esete a metállal"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2014/05/05/a_peldakodok_esete_a_metallal#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/6120115" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/image/particle.png
https://darthasylum.blog.hu/2014/04/28/hdr_demo_az_uj_1_8_enginnel
HDR demo az új (1.8) enginnel
2014-04-28T21:19:09+02:00
2014-04-28T21:19:09+02:00
darthasylum
https://blog.hu/user/752532
<p>Az eredeti tervem szerint több mindent újítottam volna a demóban (pl. pálya, gameplay), de mivel mostanában az új demóval se foglalkozok, ebben is csak kevés, viszont igen látványos újítások kerültek be:<br /><br />- több fényforrás, forward rendererrel<br />- bloom effekt javításra került<br />- gamma korrekció szebb színt ad<br />- OpenGL core profile support (settings.ini-ben gl4, gl2 vagy d3d9)<br /> - immár minden shader QFX-ből fordul<br />- a menü animációja természetesebb<br />- a játékos magassága közelebb áll a normálishoz<br />- a fegyver mozgása kevésbé idióta<br />- egyéb bugfixek, amikre nem emlékszem már</p>
<p>Összehasonlító kép (katt):<br /><br /><a href="https://m.blog.hu/da/darthasylum/image/1_7_vs_1_8.png"><img src="https://m.blog.hu/da/darthasylum/image/1_7_vs_1_8.png" alt="1_7_vs_1_8.png" class="imgnotext" width="400px" /></a><br />És a demó letöltési <a class="orange" target="_blank" href="https://www.dropbox.com/s/ienjnsgiqinnmtl/Quadron_1_7_Demo_Win.zip">linkje</a> (windows 7-től fölfele, XP nem támogatott). Amennyiben nincsenek bugok fordítok Mac-re is.<br /><br />Irányítás:<br />- demó módban egérrel (bal gomb forgat, középső gomb pan)<br />- demó módban E és Q zoomolás<br />- játék módban WASD + egér<br />- játék módban Space-el ugrik<br />- Esc-el visszalép demó módba avagy a menübe</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F04%2F28%2Fhdr_demo_az_uj_1_8_enginnel%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F04%2F28%2Fhdr_demo_az_uj_1_8_enginnel%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F04%2F28%2Fhdr_demo_az_uj_1_8_enginnel%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=HDR demo az új (1.8) enginnel"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2014/04/28/hdr_demo_az_uj_1_8_enginnel#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/6096856" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/image/1_7_vs_1_8.png
https://darthasylum.blog.hu/2014/04/15/frisses_ude_tukrozodes
Friss és üde fénytörés
2014-04-15T22:18:04+02:00
2014-04-15T22:18:04+02:00
darthasylum
https://blog.hu/user/752532
<p>Régen volt már cikk... Az utóbbi időben leálltam mindenféle fejlesztéssel, még az engine-el is. Valahogy elegem lett, pedig csomó mindent lehetne még csinálni/tanulni. De most inkább fontosabb dolgokkal kezdtem el foglalkozni (pl. facebook trollkodás).<br /><br />Mindenesetre egy gyenge pillanatomban megírtam ezt a <a class="orange" target="_blank" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch44_fresnel.html">cikket</a>, mert régóta terveztem meg amúgyis terjeszteni kell az igét.</p>
<p><img src="https://m.blog.hu/da/darthasylum/image/refract.jpg" alt="refract.jpg" class="imgnotext" width="400" /><br />Ha marhaságot írtam, akkor normális hangnemben tudasd, különben ott hagyom. Beeeeeeee...</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F04%2F15%2Ffrisses_ude_tukrozodes%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F04%2F15%2Ffrisses_ude_tukrozodes%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F04%2F15%2Ffrisses_ude_tukrozodes%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Friss és üde fénytörés"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2014/04/15/frisses_ude_tukrozodes#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/6036401" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/image/refract.jpg
https://darthasylum.blog.hu/2014/01/09/shadow_volume
Shadow volume
2014-01-09T00:24:33+01:00
2014-01-09T00:24:33+01:00
darthasylum
https://blog.hu/user/752532
<p> </p>
<p style="text-align: justify;">A sztori az, hogy akartam írni cikket sok árnyékvetési technikáról (tipikusan shadow mapping-ról). Aztán gondoltam, hogy meg kéne említeni a shadow volume-ot is. Csak az úgy nagyon ömlesztve lett volna, és annyira különbözik a kettő, hogy inkább szétszedtem két külön cikkbe.</p>
<p style="text-align: justify;">Az <a class="orange" target="_self" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch42_shadowvolume.html">első rész</a> tehát a shadow volume-ról szól, sőt megcsináltam geometry shaderrel is (így az első DX10-es tutor is megszületett, de mint kiderült DX11-el kellett volna inkább).</p>
<p><a href="https://m.blog.hu/da/darthasylum/image/shadvol.png"><img src="https://m.blog.hu/da/darthasylum/image/shadvol.png" alt="shadvol.png" class="imgnotext" width="400px" /></a><br />Azt azért elmondom, hogy ezt (is) a kóddal együtt érdemes olvasni, mert nem másolok be mindent.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F01%2F09%2Fshadow_volume%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F01%2F09%2Fshadow_volume%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2014%2F01%2F09%2Fshadow_volume%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Shadow volume"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2014/01/09/shadow_volume#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/5747992" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/image/shadvol.png
https://darthasylum.blog.hu/2013/12/16/a_quadron_fenykezelese
A Quadron fénykezelése
2013-12-16T00:13:25+01:00
2013-12-16T00:13:25+01:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Kis fejszámolás: a fénykezelést a nyári szünetben kezdtem el (augusztus vége), jobb helyeken most van december. Az pongyolán számolva három hónap. És közben még egy shader fordító refaktor is volt, szóval ez elég jó idő.</p>
<p style="text-align: justify;">A fejlesztéseket összefoglaltam egy <a class="orange" target="_self" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch81_lighting.html">cikk</a>-ben. Egy kipróbálható <a class="orange" target="_self" href="https://www.dropbox.com/s/dqnbtnyc2km8eel/SandBox.zip">homokozó</a> szintén letölthető, a jelenetet leíró XML szerkeszthető.</p>
<p style="text-align: justify;"><img src="https://m.blog.hu/da/darthasylum/image/sandbox1.jpg" alt="sandbox1.jpg" class="imgnotext" width="400" /><br />Ha valami gond lenne vele jelezzétek emailben vagy facebookon.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F12%2F16%2Fa_quadron_fenykezelese%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F12%2F16%2Fa_quadron_fenykezelese%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F12%2F16%2Fa_quadron_fenykezelese%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=A Quadron fénykezelése"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2013/12/16/a_quadron_fenykezelese#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/5694556" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/image/sandbox1.jpg
https://darthasylum.blog.hu/2013/11/24/a_karbantartas_fontossaga
A karbantartás fontossága
2013-11-24T20:41:33+01:00
2013-11-24T20:41:33+01:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">A tapasztalatom az, hogy minél általánosabbra akarod megírni az engine-t, annál inkább tele lesz hackeléssel. A hétvégén néhány egyszerű hibát akartam kijavítani, de végül egy sokkal nagyobb varacskolás lett a vége.</p>
<p style="text-align: justify;">Én persze a varacskolást inkább kerülöm, még akkor is ha cserébe 5 órán keresztül kódolok. A kódolás témája a <em>unit cube clipping (UCC)</em>, azaz a közeli és távoli vágósíkok ráfittelése a modellre. Ez kis modelleknél is baromi fontos (zfight), shadow mappinggal viszont kötelező! Utóbbi szerencsére már megvolt csinálva, most viszont a jelentre is rá akartam illeszteni a kamerát.</p>
<p style="text-align: justify;">Az első probléma az volt, hogy ha két projekciós mátrixot interpolálsz, az alapvetően hibás (és UCC-vel különösen látható). A megoldás az, hogy interpolálod a view mátrixot, ezzel elvégzed el az UCC-t mindkét kamerára, majd az így kapott projekciós mátrixokat interpolálod. Ezt tök jól kitaláltam, nagy öjömbódottá közepette el is kezdtem kódolni éééééééés...bazdmeg a kamera nem tudja ezt, nem tudja azt, ez kajak hülyén van kitalálva... Pech...reggel 10-kor felkeltem, 12-re kész volt a kamera rendbeszedés.</p>
<p style="text-align: justify;">Második probléma a depth linearizálása. Máris mondom, hogy perspektív projekcióval nem lehet tisztán a mátrixban megoldani... legjobb esetben a vertex shaderbe kell egy <em>d = pos.z / farPlane</em>. Rosszabb esetben <em>opos.z *= opos.w / farPlane</em>. Ez pl. SSAO-hoz kell.</p>
<p style="text-align: justify;">Harmadik probléma szintén a UCC de most shadow mappinggal. Példának említem a causticos demót (találtok képet). A near/far rá van fittelve a sárkányra. Egyrészt ez alapból rossz, hiszen a fotonok a parkettára csapódnak, de ettől most tekintsünk el. A probléma a shadow-al van. Feltételezem mindenki eljutott odáig, hogy a shadowmap címzési módja <em>GL_BORDER</em>, a színe pedig fehér. Ennek ellenére a shadowmap körül fekete részek jelennek meg.</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">float d = cpos.z / cpos.w;</span></p>
<p style="text-align: justify;">Általában jó. Itt nem. Hiszen <em>d</em> simán a far plane mögé eshet, és akkor <em>d <= sd</em> nem teljesül, azaz árnyék keletkezik. A helyes megoldás:</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">float d = saturate(cpos.z / cpos.w);</span></p>
<p style="text-align: justify;">Nem akarok belegondolni, hogy ez mit fog okozni bizonyos meg nem nevezett Intel kártyákon. Feltételezem azért az <em>1 == 1</em> még megy neki.</p>
<p style="text-align: justify;">Negyedik gondolatként megemlíteném, hogy a shadowmapbe mindig depth-et írj! (én persze a tutoriálokban távolságot írtam, de hamarosan javítva lesz). Így elég R16F. Bár hallottam olyan kósza híreket, hogy a DX9 is tud depth textúrát, nem próbáltam ki.</p>
<p><a href="https://m.blog.hu/da/darthasylum/image/ucfitting.jpg"><img src="https://m.blog.hu/da/darthasylum/image/ucfitting.jpg" alt="ucfitting.jpg" class="imgnotext" width="400px" /></a></p>
<p>Konklózióként azt mondanám, hogy akármilyen fasza a is a progid, ne gondold azt, hogy tökéletes. Folyamatosan reviewolni, szúrós szemmel nézni és gumikacsázni kell. Regressziós teszt még fontosabb (egy éves SMAA hibát is kijavítottam).</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F11%2F24%2Fa_karbantartas_fontossaga%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F11%2F24%2Fa_karbantartas_fontossaga%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F11%2F24%2Fa_karbantartas_fontossaga%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=A karbantartás fontossága"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2013/11/24/a_karbantartas_fontossaga#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/5654211" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/image/ucfitting.jpg
https://darthasylum.blog.hu/2013/11/03/quadronfx_implementacios_reszletek
QuadronFX implementációs részletek
2013-11-03T23:02:45+01:00
2013-11-03T23:02:45+01:00
darthasylum
https://blog.hu/user/752532
<p>Az elmúlt hetek (hónapok?) témája a shader fordító refaktorálása volt. Az eredeti tervvel ellentétben sokkal nagyobb munka lett, de azt hiszem megérte. Javaslom a biztonsági övek bekapcsolását.</p>
<p>Cikk <a class="orange" target="_self" href="https://m.blog.hu/da/darthasylum/tutorials/C++/ch80_quadronfx.html">itt</a>.</p>
<p><a href="https://m.blog.hu/da/darthasylum/tutorials/data/images/ch80_pic4.png"><img src="https://m.blog.hu/da/darthasylum/tutorials/data/images/ch80_pic4.png" alt="ch80_pic4.png" class="imgnotext" width="400px" /></a></p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F11%2F03%2Fquadronfx_implementacios_reszletek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F11%2F03%2Fquadronfx_implementacios_reszletek%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F11%2F03%2Fquadronfx_implementacios_reszletek%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=QuadronFX implementációs részletek"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2013/11/03/quadronfx_implementacios_reszletek#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/5613504" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/tutorials/data/images/ch80_pic4.png
https://darthasylum.blog.hu/2013/10/26/egyszinu_hatter_kiszedese_diagramokbol
Egyszínű háttér kiszedése diagramokból
2013-10-26T18:33:56+02:00
2013-10-26T18:33:56+02:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Előfeltétel, hogy legalább két háttérszínnel ki tudjad menteni a diagramot (fehér és fekete).</p>
<p style="text-align: justify;">Meghökkentő az a tény, hogy 2013-ban nincs egy olyan normális UML szerkesztő, ami átlátszó háttérrel ki tudná menteni a diagramot. Több hétig leveleztem egy <em>Microsoft</em>-os emberrel, hogy hogyan lehet olyan <em>Visual Studio</em> plugint írni, amivel lecserélem azt a k*baszott háttérszínt. Nem jutottunk semmire. Ugyanez az <em>Enterprise Architect</em>-el is, csak az még watermarkot is berak (éljen).</p>
<p style="text-align: justify;">Úgy döntöttem, hogy elkerülendő a további szopást kidolgozok egy módszert, amivel legalább az említett feltétel mellett kihozható az eredeti szín és alfa. Nem újkeletű egyébként a dolog, a GIMP pl. tud ilyen <em>color to alpha</em> cuccost, de nem igazán felel meg a célnak.</p>
<p style="text-align: justify;">Na de mi a probléma, és miért pont fekete és fehér kell legyen a háttér? Nézzük meg először is hogyan működik az alpha blending:</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">(A, B, C) * (1 - a) + (x, y, z) * a = (r1, g1, b1)</span></p>
<p style="text-align: justify;">Ahol (r1, g,1, b1) az ismert kép, (A, B, C) pedig a szintén ismert háttér. Meghatározandó (x, y, z, a). Világos, hogy az egyenletrendszer alulhatározott, kellene még legalább egy egyenlet. Az egyszerűség kedvéért legyen ugyanez csak más háttérrel:</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">(D, E, F) * (1 - a) + (x, y, z) * a = (r2, g2, b2)</span></p>
<p style="text-align: justify;">Vadul kivonva a felsőből az alsót:</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">(A-D, B-E, C-F) * (1 - a) = (r1-r2, g1-g2, b1-b2)</span></p>
<p style="text-align: justify;">És itt kezdődnek a problémák...ugyanis az alfára most kaptunk egy túlhatározott rendszert, ráadásul vannak olyan esetek, amikor mindhárom alfa különböző. Azonban néhány észrevételt lehet tenni:</p>
<ul style="text-align: justify;">
<li>ha (r1, g1, b1) == (r2, g2, b2), akkor a = 1 és készen vagyunk</li>
<li>ha (r1, g1, b1) - (r2, g2, b2) == (A - D, B - E, C - F), akkor a = 0 és mindegy mi a szín</li>
</ul>
<p style="text-align: justify;">A második észrevétel megindokolja, hogy miért célszerű fehéret és feketét választani háttérnek. Ugyanis ha más választanánk, akkor egyéb színekkel is előállhat az egyenlőség, és akkor nem mondható meg 100%-al, hogy az mindkettőben a háttér. Sőt, az nem elég, ha ellenőrzöl a háttérszínre, ugyanis:</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">a = ((A - D) - (r1 - r2)) / (A - D)</span></p>
<p style="text-align: justify;">illetve</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">x = (r1 - A * (1 - a)) / a</span></p>
<p style="text-align: justify;">tehát x olyan színekre is szingularitásba kerülhetne, amik nem a háttérszínek. Feltehető tehát, hogy (A, B, C) = (255, 255, 255) és (D, E, F) = (0, 0, 0). Ekkor egy picit egyszerűsödik a dolog:</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">(x, y, z) * a = (r1, g1, b1)</span><br /><span style="font-family: courier new,courier;"><span style="font-family: courier new,courier;">(255, 255, 255) * (1 - a) + (x, y, z) * a = (r2, g2, b2)</span></span></p>
<p style="text-align: justify;">Most egyéb problémák jönnek. Ha alfa már ismert, akkor az első egyenletből kívánkozik kiszámolni a keresendő színt, viszont ha az alfa elég kicsi, akkor egy nem fehér színből fehéret fog csinálni (ami világos, hogy rossz). A második egyenlettel szintén hasonlóak a problémák. Továbbá az alfa még mindig nem egyértelmű. A következőt mondom: a valid alfák közül válasszuk ki a legnagyobbat. Ezzel ugyanis minimalizálni lehet a hibalehetőséget.</p>
<p>Az eredmény egyelőre elég jó. Nem vezettem le az egész elméletet, lehetnek benne hibák. Kód <a class="orange" target="_self" href="https://www.dropbox.com/sh/mbe7carnmnzawqv/z04DV4S1Ag">itt</a>.</p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;"><span style="font-family: courier new,courier;"><span style="font-family: arial,helvetica,sans-serif;"> </span></span></span></p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F10%2F26%2Fegyszinu_hatter_kiszedese_diagramokbol%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F10%2F26%2Fegyszinu_hatter_kiszedese_diagramokbol%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F10%2F26%2Fegyszinu_hatter_kiszedese_diagramokbol%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Egyszínű háttér kiszedése diagramokból"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2013/10/26/egyszinu_hatter_kiszedese_diagramokbol#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/5600571" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
https://darthasylum.blog.hu/2013/09/14/deferred_rendering_az_engine-ben
Deferred rendering az engine-ben
2013-09-14T19:54:59+02:00
2013-09-14T19:54:59+02:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Az elmúlt néhány hónapban a forward és deferred rendering integrálásával foglalkoztam, az engine így most három különböző pipeline-t tud:</p>
<ul style="text-align: justify;">
<li><i>custom:</i> ami eddig volt, minden objektum a saját materialjával rajzolódik</li>
<li><i>forward:</i> multipass lighting, minden aminek nincs saját effektje az engine-el rajzolódik és minden fény hat rá ami a közelében van</li>
<li><i>deferred:</i> ugyanez, deferred lighting-al</li>
</ul>
<p style="text-align: justify;">Ez egy elég hosszadalmas iteratív folyamat volt, mivel a lehető legkisebb memóriafoglalással kellett megoldani, hogy a fények tudják a közelükben levő objektumokat (árnyék miatt), illetve az objektumok is tudják a rájuk ható fényeket (átlátszóak miatt). Ezeket a bejegyzéseket ráadásul több szempont szerint is rendezni kell:</p>
<ul style="text-align: justify;">
<li>átlátszó objektumokat z szerint</li>
<li>minden mást shader szerint</li>
</ul>
<p style="text-align: justify;">A megjelenítő shaderek több shader kombinációjából állhatnak össze a fény típusa szerint (directional, point, spot), a normálok kiszámítása szerint (normal mapping), illetve az árnyék típusa szerint (pcf, variance). Ez így igen gáz, a következő feladatok közé tartozik a shader nyelvet úgy bővíteni, hogy könnyen lehessen kvázi-übershadert írni.</p>
<p style="text-align: justify;">Megjegyezném, hogy a shadereknek óriási overheadje van iPad-en (eleve árnyék nélkül és csak a forward rendererrel), és az optimalizálás sem nagyon segít.</p>
<p style="text-align: justify;"><a href="https://m.blog.hu/da/darthasylum/image/quadron8.jpg"><img src="https://m.blog.hu/da/darthasylum/image/quadron8.jpg" alt="quadron8.jpg" class="imgnotext" width="400px" /></a></p>
<p style="text-align: justify;">Természetesen számítani lehet majd valamikor demóra, de ez a shader nyelv bővítés valószínűleg soká tart majd. Amint a fenti képen is látható, a Doom 3 modelleket most már majdhogynem tökéletesen jeleníti meg az engine, a kontrasztvesztés a gamma korrekció miatt van (ugyanis a Doom 3 egyáltalán nem használja).</p>
<p style="text-align: justify;">A demó desktopon ~400 fps, iPad 2-n viszont csak 15... Amíg nincs kész a teljes implementáció, addig a mobil optimalizációt félrerakom.</p>
<p style="text-align: justify;">A Doom 3 modellek megjelenítéséről, illetve a lighting konkrét megvalósításáról fogok írni cikket.</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F09%2F14%2Fdeferred_rendering_az_engine-ben%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F09%2F14%2Fdeferred_rendering_az_engine-ben%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F09%2F14%2Fdeferred_rendering_az_engine-ben%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Deferred rendering az engine-ben"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2013/09/14/deferred_rendering_az_engine-ben#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/5513709" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
http://m.cdn.blog.hu/da/darthasylum/image/quadron8.jpg
https://darthasylum.blog.hu/2013/07/22/miert_nem_szabad_std_getline-t_hasznalni
Miért nem szabad std::getline-t használni?
2013-07-22T21:03:20+02:00
2013-07-22T21:03:20+02:00
darthasylum
https://blog.hu/user/752532
<p>Én is hajlamos vagyok elfelejteni ezt, pedig egyszer már rájöttem, sőt meg is írtam az engineben a helyes módszert. A probléma az, hogy Windows-on más a sorvégejel (CR/LF) mint Unix alapú rendszereken (LF). Azaz ha az egyik platformon csinálsz egy fájlt, az a másik platformon tuti rosszul fog működni, az emlegetett függvény ugyanis mindig az adott platformnak megfelelően értelmezi (vagy nem...).</p>
<p>Nekem a hiba úgy jött elő, hogy zlib-el betömörítettem egy txt fájlt, majd kitömörítés után <em>std::stringstream</em>-ből használva az <em>std::getline</em> marhaságokat adott vissza (bennehagyta a CR-t). Átírva az engines getline-ra, a probléma megszűnt.</p>
<p><span style="font-family: courier new,courier;">std::istream& qEngineHelper::GetLine(<br /> std::istream& in, qstring& out)</span><br /><span style="font-family: courier new,courier;">{</span><br /><span style="font-family: courier new,courier;"> char c = 0;</span><br /><span style="font-family: courier new,courier;"> out = "";</span><br /><br /><span style="font-family: courier new,courier;"> while( in.get(c).good() )</span><br /><span style="font-family: courier new,courier;"> {</span><br /><span style="font-family: courier new,courier;"> // win</span><br /><span style="font-family: courier new,courier;"> if( c == '\r' )</span><br /><span style="font-family: courier new,courier;"> {</span><br /><span style="font-family: courier new,courier;"> c = in.peek();</span><br /><br /><span style="font-family: courier new,courier;"> if( in.good() )</span><br /><span style="font-family: courier new,courier;"> {</span><br /><span style="font-family: courier new,courier;"> if( c == '\n' )</span><br /><span style="font-family: courier new,courier;"> in.ignore();</span><br /><span style="font-family: courier new,courier;"> }</span><br /><br /><span style="font-family: courier new,courier;"> break;</span><br /><span style="font-family: courier new,courier;"> }</span><br /><span style="font-family: courier new,courier;"> // unix</span><br /><span style="font-family: courier new,courier;"> else if( c == '\n' )</span><br /><span style="font-family: courier new,courier;"> break;</span><br /><br /><span style="font-family: courier new,courier;"> out.append(1, c);</span><br /><span style="font-family: courier new,courier;"> }</span><br /><br /><span style="font-family: courier new,courier;"> return in;</span><br /><span style="font-family: courier new,courier;">}</span></p>
<p><span style="font-family: courier new,courier;"><br /></span>Szóval erre érdemes odafigyelni...</p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F07%2F22%2Fmiert_nem_szabad_std_getline-t_hasznalni%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F07%2F22%2Fmiert_nem_szabad_std_getline-t_hasznalni%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F07%2F22%2Fmiert_nem_szabad_std_getline-t_hasznalni%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Miért nem szabad std::getline-t használni?"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2013/07/22/miert_nem_szabad_std_getline-t_hasznalni#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/5419286" border="0" /></a><br /></p>
0
The Asylum
https://darthasylum.blog.hu
https://darthasylum.blog.hu/2013/06/06/meggondolasok_kamerahoz
Meggondolások kamerához
2013-06-06T22:19:49+02:00
2013-06-06T22:19:49+02:00
darthasylum
https://blog.hu/user/752532
<p style="text-align: justify;">Kicsit gondban voltam a forgatások animációjával, ugyanis mindenki azt írja, hogy hát azt bizony csakis kvaternióval szabad blablabla. Mivel a dolog k*rvára nem működik a gyakorlatban, áttekintettem, hogy miért nincs szükség kvaterniókra.</p>
<p style="text-align: justify;"><strong>Gimbal lock:</strong> mindenki tudja mi az a gimbal, ha nem akkor megnézed wikipédián. A lényeg, hogy az FPS, TPS vagy csak egy sima modelviewer kamera is gimbal lockos <span style="text-decoration: underline;">szándékosan</span>. A hatása az, hogy ha pont fel vagy le nézel, akkor a kamera a view space beli z tengely körül forog, azaz valóban elvesztettél egy szabadságfokot (yaw helyett is rollol).</p>
<p style="text-align: justify;"><strong>Kvaternió:</strong> egy ilyen állat csak olyan elforgatást tud reprezentálni, ami <span style="text-decoration: underline;">nem gimbal lock</span>-os. Azaz ha kvaternióval próbálod interpolálni az amúgy gimbal lock-os kamerád szögeit, akkor eszméletlenül idióta eredményeket fogsz kapni (pl. elkezd sinus görbéket bejárni). Egy kvaternióval implementált kamera mindig úgy fordul, ahogy alapesetben: ha felfele nézel, akkor is a yaw jobbra-balra fog fordulni. Ami egy FPS-ben nagyon hülyén néz ki, azt hinnéd hogy elrontottál valamit, pedig nem.</p>
<p style="text-align: justify;"><strong>Mátrix:</strong> forgatási mátrixot nem lehet, illetve nem úgy kell interpolálni, hogy komponensenként interpolálsz (más mátrixokkal működhet a dolog). De ez az ami abszolút nem éri meg, még ha jól is csinálod.</p>
<p style="text-align: justify;"><strong>Euler szögek:</strong> bármily meglepő, ez a legjobb megoldás, némi meggondolással. Általában a legrövidebb úton akarsz eljutni a másik pontba. Kis számolás után erre az alábbi függvényt firkáltam:<strong><br /></strong></p>
<p style="text-align: justify;"><span style="font-family: courier new,courier;">float CurveAngle(float current, float dest, float step)</span><br /><span style="font-family: courier new,courier;">{</span><br /><span style="font-family: courier new,courier;"> if (dest - current > _Q_PI)</span><br /><span style="font-family: courier new,courier;"> dest = dest - _Q_2PI;</span><br /><span style="font-family: courier new,courier;"> else if (current - dest > _Q_PI)</span><br /><span style="font-family: courier new,courier;"> current = current - _Q_2PI;</span><br /><br /><span style="font-family: courier new,courier;"> current += (dest - current) * step;</span><br /><span style="font-family: courier new,courier;"> return current;</span><br /><span style="font-family: courier new,courier;">}</span></p>
<p style="text-align: justify;">Elég ezt meghívni mindhárom szögre és vidáman interpolál, úgy ahogy szeretnéd. Egy kisebb meggondolás az, hogy ha már összegányoltad kvaternióval a dolgot, mint én (amit most egyébként ki is gyomláltam), akkor sürgősen írd át, mert kvaternióból visszaszámolva pontatlan <em>lehet </em>(nekem speciel az <em>invSqrt()</em> miatt volt az).<span style="font-family: courier new,courier;"><br /></span></p>
<p><a title="Megosztom Facebookon!" href="https://www.facebook.com/sharer.php?api_key=120587281320910&locale=hu_HU&method=stream.share&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F06%2F06%2Fmeggondolasok_kamerahoz%3Futm_source%3Dbloghu_rss%26utm_medium%3Dfacebook%26utm_campaign%3Dblhshare"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_facebook.png" alt="Megosztom Facebookon!"></a>
<a title="Megosztom Twitteren!" href="https://twitter.com/home?status=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F06%2F06%2Fmeggondolasok_kamerahoz%3Futm_source%3Dbloghu_rss"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_twitter.png" alt="Megosztom Twitteren!"></a>
<a title="Megosztom Tumblren!" href="https://www.tumblr.com/share?v=3&u=https%3A%2F%2Fdarthasylum.blog.hu%2F2013%2F06%2F06%2Fmeggondolasok_kamerahoz%3Futm_source%3Dbloghu_rss%26utm_medium%3Dtumblr%26utm_campaign%3Dblhshare&t=Meggondolások kamerához"><img src="https://m.blog.hu/assets/frontend/img/rss/icon_tumblr.png" alt="Megosztom Tumblren!"></a>
<a href="https://darthasylum.blog.hu/2013/06/06/meggondolasok_kamerahoz#comments"><img class="item_ctp" src="https://darthasylum.blog.hu/rss/image/post/id/5348870" border="0" /></a><br /></p>
kamera
lock
kvaternió
gimbal
0
The Asylum
https://darthasylum.blog.hu