2015年11月25日Unityでシェーダーを書く機会は中々ありませんでしたが、今後のためにもGLSLでシェーダーを書いてみます。GLSLの特徴はOpenGLに使えるという点です。いうことは、スマートフォンゲームやWebGL(ブラウザ)に応用することもできます。言語的には、ほぼCに近い、ポインタのないC言語といった印象があります。(今回、細かな言語仕様の説明は割愛させていただきます。純粋にGLSLのフラグメントシェーダーだけを書いて試してみたいと思います。Sandboxというサイトを使います。このサイトでは、WebGL経由でシェーダーのGLSLコードをリアルタイムプレビュー、さらにjsdoitのようにギャラリーやフォークなどもできます。先にここで書く理由は、ちょっと寄り道してみたかったからです。WebでもUnityでもどっちでも動くと良いですし。Sandboxの開発にはthree.jsの@mrdoob氏など、著名開発者が名を連ねています。凝ると際限がないと思いますが、そこそこ見栄えしてきたら次のステップへいきます。ソースは以下の通りです。ポイントは(というほどではありませんが・・)時間経過を元にして三角関数を動かしているところです。2015年3月4日GDC2015にて、Unity5の正式リリース発表がありました。プラグイン不要ってすごい。タップでCubeが出てくるようにしています。ライトが非常に綺麗になりましたね。WebGLということはiOSでも表示できるわけですよね。対応してないようでした。186iOS8にWebGLが搭載されたこともあり、three.jsにあらためて注目しています。順を追ってコードのメモを書いていきます。iが縦軸、jが横軸になるように、2回ループを使って配置していきます。座標を10ずつずらしているのは、ボックスのサイズが10だからです。図示するとこんな感じです。即時関数で再帰的にメインループを呼びますので、ぐるぐるループして呼ばれます。その際「requestAnimationFrame()」でフレームごとに呼ぶのがポイントですね。処理が重たいなら、ここでフレーム調整するといいと思います。2014年9月18日iOS8から、ついに解禁となったWebGL(3Dの描画エンジンへJavaScriptからアクセスできる機能)。そこで、早速以前作ったプログラム(three.js+WebGL)を動かしてみました。機種はiPhone5(無印)です。three.jsでロゴも動かしてみました。three.jsのサンプルロゴも「Mankind,inc.」にして動かしてみました。three.jsも動きますね。Unity5ではWebGLへの対応も決定しています。