TouchDesignerでGLSLを使う為の基礎の基礎知識
TouchDesignerでGLSLを使う為の基礎の基礎知識です。
3次元でシェーダーを利用する
他の方法もありますが、以下ではGLSL MATを利用しています。 GLSL MATのVertex Shader、Pixel Shaderに頂点シェーダー(Text Data)、フラグメントシェーダ(Text Data)を設定します。
Vertex Shader
TDWorldToProjはプロジェクション座標変換用の関数で、 TDDeformはモデル、ビュー座標変換用の関数なのかな。。。 PにはGeometoryの頂点情報が入ってくるのだと思います。
void main(){ gl_Position = TDWorldToProj(TDDeform(P)); }
Pixel Shader
通常はgl_FragColorを利用するとおもうのですが、うまくいかず以下のような処理になるようです。
out vec4 fragColor;//変数名はなんでもよい void main(){ fragColor = vec4(1.0); }
2次元でシェーダーを利用する
GLSL TOPを利用することで、2次元のシェーダーを利用することができます。 内部てきには、1枚の板ポリゴンが画面全体にはられている状態です。
その為、Pixel Shaderのみ指定が可能となります。
テクスチャの情報をGLSLにおくる
テクスチャの情報をGLSL側で受け取るやり方です。
テクスチャの情報をGLSLで受け取るためには、GLSL MATのSample 1タブのTOPにテクスチャ用のTOPオペレーターを設定します。そしてSampler Nameにシェーダー側で値を受け取るための変数名を設定します。
設定したSampler Nameをシェーダー側で受けるとことができるようになります。
エディタを利用する
オペレーターでGLSLを書くのは少々書きづらいので、外部エディタ利用してみます。
ツールバーのTouchDesigner > Preferencesを選びます。 あとはDATsのタブからエディタを選択します。
オペレーターの上で右クリックをして、Edit Contentsを選ぶとエディタが立ち上がります。