描画に関係しないシステム的な部分。変更が無いので、出番無し。ロードのインターフェイス。(点を打つときに使う)あと、実行ファイル及び、プロジェクトファイルが入っています。■頂点シェーダーぼかすために、4つのテクスチャーを重ねています。中心に基準となる1つと、ピクセルを1つ分ずらして、正三角形になるように配置しました。頂点シェーダーは、透視変換済みの頂点をコピーし、テクスチャー座標は固定レジスタを使って基準の位置からずらし、4つおけるようにします。c23■ピクセルシェーダーピクセルシェーダープログラムですが、入力の型情報とプログラムで成り立っています。r0さて、ここが曲者です。0.05(t3-t0)に見えます。実はそうではありません。上の計算では、周りの色が暗い限り散逸が発生するので、最終的には均一な色になるからです。今回の計算は、アンダーフローを積極的に利用しています。ビットと決まっています。(将来的には精度は上がるでしょうから、そのときにはシェーダーを変更しなくてはなりません)。-1~1の間の8ビットなので、実質、7ビットが小数の値として使えます。それぞれの値は、2^-1=0.52^-2=0.252^-3=0.1252^-4=0.06252^-5=0.031252^-6=0.0156252^-7=0.0078125です。値が、2^-3以下だったら、その積は、2^-7よりも小さいので、アンダーフローを起こして0になります。色にすると、2^-3=0.125に128倍して、16が有効な色の差になります。隣との色の差が16以内だったら、同じ色として扱われて、散逸は発生しなくなります。色が256段階とすると、16段階の階層分けが行われます。1テクセル1段階とすると、16テクセルになります。墨絵の絵のにじみの大きさも、大体そんな具合ではないでしょうか。考えているけど、ほんとかなぁ?何にせよ、短くまとめてしまうと、散逸して黒い部分が消えてしまうので、絶妙なバランスをとっていることは確かです。ほんとは、別の方法で実装しようと考えていたのですが、命令数が足りなくなって、この方法に落ち着きました。■最後にまた、一発芸をしました。今回の方法のように、座標をずらしたテクスチャーを重ねれば、「波」が作れます。この墨絵をCg言語で記述したものを応募してみました(結果は芳しくありませんでしたが)。(墨絵シェーダーのソース:Cg言語)内容は似たようなもんです。