×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。

光学迷彩


 1.はじめに…
前々からやってみたかった、光学迷彩のエフェクトです。




 2.概要
光学迷彩といえば、メタルギアソリッドや攻殻機動隊なんか有名なあれです。物体が透明になったかのように背景に溶け込むエフェクトです。
さて、光学迷彩エフェクトの実装ですがいたってシンプルです。
テクスチャに背景を描画し、描画したテクスチャをモデルに適用させます。あとは、背景とテクスチャを適用したモデルを描画させれば完成です。(下図参照)



射影テクスチャリングがわかっていれば、そんなに難しいもんでもないと思います。
背景との溶け込み具合ですが、法線ベクトルを用いてテクスチャ座標の位置を少しずらす処理をしています。勿論、法線ベクトルを用いてずらす処理がなくなれば、通常の射影テクスチャリングと同じ状態になるので、背景と同化します。 ちょっとだけずらしてやるといい感じに下の図のようにわかりづらくなります。



プログラムの方は、大した処理をしていないのでソースコードを見ればわかると思いますので、コードの説明は省略します。


 Download
本ソースコードおよびプログラムを使用したことによる如何なる損害も製作者は責任を負いません。
本ソースコードおよびプログラムは自己責任でご使用ください。
プログラムの作成にはMicrosoft Visual Studio 2008 SP1 Professional,およびXNA Game Studio 3.1を用いています。







Flashを利用するためにはPluginが必要です。 <!-- <div id="ninja-hp-inactive-footer" style="clear:both;margin:15px;padding:0;text-align:center;position:relative;z-index:9999"><div style="padding:5px;margin:0 auto;background:#fff;display:inline-block;"><span onclick="closeHpInactiveCmFooter()" style="border:1px solid #dedede;display:block;width:12px;height:12px;font-size:16px;line-height:0.75;margin:0 0 5px;padding:0;color:#aaa;float:right;cursor:pointer;font-family:'arial','Osaka','MS Pゴシック',sans-serif;">×</span><div style="clear:both"></div><script type="text/javascript" charset="utf-8" src="//asumi.shinobi.jp/encount"></script><script type="text/javascript" charset="utf-8" src="//asumi.shinobi.jp/fire?f=434"></script><p style="font-size:10px;padding:3px;margin:0;text-align:center;color:#aaa;background:#fffffc;">[PR]この広告は3ヶ月以上更新がないため表示されています。<br>ホームページを更新後24時間以内に表示されなくなります。</p></div></div><script type="text/javascript">var headerCookieName="e0aafee963b5fb33e053128e5df5f907",footerCookieName="fb89761dd82a0c988e0b7b0f758ae55b",inactiveCmView_header=getInactiveCmViewCookie(headerCookieName),inactiveCmView_footer=getInactiveCmViewCookie(footerCookieName);function closeHpInactiveCm(){document.getElementById("ninja-hp-inactive").style.display="none";setInactiveCmViewCookie(headerCookieName,(new Date).getTime(),3600)} function closeHpInactiveCmFooter(){document.getElementById("ninja-hp-inactive-footer").style.display="none";setInactiveCmViewCookie(footerCookieName,(new Date).getTime(),3600)}function setInactiveCmViewCookie(b,c,d){var e=location.pathname,a=[],a=e.split("/");""!=a[a.length-1]&&(a[a.length-1]="",e=a.join("/"));a=(new Date).getTime();a=(new Date(a+1E3*d)).toUTCString();b=""+(b+"="+escape(c));b+="; path="+e;document.cookie=d?b+("; expires="+a+"; "):b+"; "} function getInactiveCmViewCookie(b){var c="",d="";return 0<document.cookie.length&&(c=document.cookie.indexOf(b+"="),-1!=c)?(c=c+b.length+1,d=document.cookie.indexOf(";",c),-1==d&&(d=document.cookie.length),unescape(document.cookie.substring(c,d))):""};</script><script type="text/javascript" charset="utf-8" src="//asumi.shinobi.jp/encount"></script> <ul class="tdftad"> <li><a href="http://www.ninja.co.jp/hp/">忍者ホームページ</a></li> <li class="tdftlink"><a href="http://sandbox.shinobi.jp/" target="_blank">電子出版目指すなら!?忍者サンドボックス</a></li> <li class="tdftpr"><a href="http://xr.shinobi.jp/homepage?code=cb63528e02c96b3c95bf2080ce3aaf8e&encrypt=aUee3I2CCaYzB0G27EUBgjXxvBQthNyPE1%2FWyqHYxqM%3D" rel="nofollow" target="_blank">忍者ツールズ</a></li> <li class="tdftlink"><a href="http://www.ninja.co.jp/admax/" target="_blank" rel="nofollow">最短5分であなたのサイトに広告配信【忍者AdMax】</a></li> <li class="tdftlink"><a href="http://www.ninja.co.jp/" target="_blank" rel="nofollow">忍者ツールズ</a></li> <style> .asumi_ad_frame{display:inline-block;} .asumi_ad_frame div{display:inline-block;} </style> <li class="tdftpr"><div class="asumi_ad_frame"><script type="text/javascript" charset="utf-8" src="//asumi.shinobi.jp/fire?f=184"></script></div></li> </ul></body> -->