Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!

log

2013.03.21 C++:GLSLの移植

ファイル 425-1.jpg

去年当たりから、定期的にGLSLSandboxを徘徊していたりするのですが、今回は
そんなGLSLのエフェクトをHLSLに移植したりしていました。

実装したのはノイズ生成各種、ボロノイ、疑似コースティクス、太陽シェーダといった感じです。
ちなみに画像はGLSLSandboxではお馴染みのSimplex Noiseというものを適応
させてみたものです。テクスチャでノイズなんて実装できるのに何故わざわざノイズ生成
なんて実装しているのかと聞く人がいそうですが、テクスチャからサンプリングするより
レジスタ内だけで処理できるノイズ生成の方が高速化する場合があるんじゃないかな、
と思った訳です。というか現に前の記事のSSAOでは既に使ってたりするんですが笑。

それと今回、HLSLに移植していて気付いたことですが、どうもGLSLのmod()とHLSLの
fmod()では結果が異なることがあることに気が付いたのでネットで調べてみると、
どうやら負値の場合に結果が変わるようです(注:英文)。

他にもsaturate()しなくてもいいはずの所をHLSLではしなければならなかったり。微妙に
違いが発生するのが謎だったりします。GLSLというよりWebGLとの違い…なのかなあ。