LoginSignup
6
3

More than 3 years have passed since last update.

TouchDesignerでShaderToysを使う方法

Last updated at Posted at 2019-07-11

最近にわかに盛り上がっている感の『TouchDesigner』。

一方熊本で『TouchDesigner』に詳しい人がいないということで始まった

『KumaMCN』勉強会。

会を重ねるに連れ、少しずつ『GLSL』の話がでてくるようになり、

ぜひともヌルヌル動かしたいなということでググりにググり、

『ShaderToys』に書かれたコードの使い方の動画(全編英語)を見つけたので、

メモ書きしつつ画像キャプチャすることにしました。

詳細+画像キャプチャ版はブログにまとめてます。

ブログ もんプロ

オリジナルのYoutubeはこちら。
YouTube

もってきたコードはこちら。
ShaderToys marble

変更点は下記。

  1. uniform変数の定義
  2. Cube対応(sTDCubeInputs)
  3. mainImage関数→main関数に変更
  4. fragColor設定(main関数外に出す)
  5. fragCoord設定
  6. マウス入力設定

1. uniform変数の定義

ShaderToysはデフォルトで変数定義されているものの、
コピーしたコードには含まれないので追記します。

uniform float iTime;
uniform vec2 iResolution;
uniform vec3 iMouse;

2. Cube対応(sTDCubeInputs)

TouchDesignerのマニュアル『Write a GLSL TOP』の中で、

cubeで検索すると、

どうやらcubeの場合は、

『sTD2DInputs』ではなく、『sTDCubeInputs』 を使うようです。

#define iChannel0 sTDCubeInputs[0]

360度撮影された画像を使い、

『Movie File In』 -> 『Projection』 とつないで、
『Projection』のInput/Outputを下記に変更します。

  • Input・・Equirectangular
  • Output・・Cube Map

3. mainImage関数→main関数に変更

//void mainImage( out vec4 fragColor, in vec2 fragCoord )
void main()

4. fragColor設定(main関数外に出す)

out vec4 fragColor;

void main()
{
    vec4 fragCoord = gl_FragCoord;

5. fragCoord設定

fragCoordも追加します。

//void mainImage( out vec4 fragColor, in vec2 fragCoord )

out vec4 fragColor;

void main()
{

    vec2 fragCoord = vec2(vUV.s*iResolution.x, vUV.t*iResolution.y);

6. マウス入力設定

『Mouse In CHOP』→『Null CHOP』とつないで

『Null CHOP』を

『GLSL TOP』->Vectors1->iMouse の箇所にドラッグドラップします。

ドラッグドラップ時に『Export CHOP』を選択すると、

マウス座標が『GLSL TOP』に反映されるようになります。

ググってみてもなかなか見つからなかったので助かりました。

一方、
コードによっていろいろ対応必要そうで、
なかなか一筋縄ではいかないようです。

ブログ もんプロ

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3