TouchDesignerとMaxの箱をちょっと比較をしてみる

前回：
[TouchDesignerとMaxの線をちょっと比較をしてみる](http://qiita.com/tatmos/items/23835a897c8bd91b7fce)
の続き。

今回はTouchDsignerが多めの話
箱の説明しつつ
起動時のチュートリアルを3D表示しようとしてみた。
（予告と少し内容違ってすみません）

# Maxでの箱
とりあえず、パッチという名前でファイルに保存できる。

p で好きな名前のサブパッチが作れる　inlet outletで入出力を箱に付けられる。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/e670a4cf-086d-1f90-bdf0-2b8b3ad4eedb.png)

pの中に入るには、実行モード（左下の鍵をロック）時にダブルクリック。

# TDでの箱
![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/e6d00f6b-e4c5-b8ca-8519-7b5c4eb268aa.png)

この起動時にでている画面が、すでに 
「project1」という名前のコンテナになっている。

どんどんズームアウト　（またはしょートカットUキー）
で、上の階層に移ることができる。

中に入る時は、コンテナにズームイン（またはコンテナ選択してIキー)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/8022e615-60ee-8d64-d85d-6230775a1156.png)

親階層にはperformとlocalがある。それぞれ中に入れる。

## Geometry

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/6d8f3470-4199-95c1-78f3-889396ad3477.png)

この新規作成時にあるものを調べてみると、
geo1ってのが　Geometry
３Dの概念を扱う入れ物。COMPにあって、
中に入ると
![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/7a7755d4-6bf8-459e-84e3-674b1014adc4.png)

inとoutでただ流しているだけ・・・
じゃなくて、
フォンシェーディングの phong1が機能している。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/6d571dda-b586-f0a4-f371-1bfa20482379.png)

## この矢印

で入ってきた紫（TOP : Texture OP)
をPhong1(MAT : Material OP)のcolormapに入れている。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/1ae25070-658c-0f92-70c2-ed83cb307adb.png)

この「Color Map」に 「in1」って書いてあることで矢印の線がつながっている。

同じ種類の箱は線で繋がるけど、異なる箱は矢印で繋がる感じ。（中のパラメータを指している感じか）

## 試しにNormal Mapを入れてみる

<img width="914" alt="スクリーンショット 2017-08-09 4.18.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/96808/012b42f2-10c6-3b57-f768-d8f4118d56af.png">

余白をダブルクリックして「Video Device In」を作るとカメラの入力のTOP(Texture OP)ができるので、この箱の名前を書いてやると、矢印線が繋がる。

## boxもいじる

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/49064563-8d2a-2d5d-d2f7-49f57a3a58ec.png)

上の方にあるbox1を選んで、Sizeの２番目を0.2に変更してみると
箱が縦に潰れます。

このbox1はtexture1とつながっている。

## Uキーで一つ上の階層に戻って確認
![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/dcd0be6c-2e3f-8414-243b-05ab7a7d072c.png)

ちゃんと潰れて、カメラに何か写すとちょっと影響うけているのが確認できる。

## 確認用にviewを表示

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/39ad7a95-95a3-fc2a-6329-364b4cd444ad.png)

geo1の右下の「+」ボタンを押して、右クリックでViewを選ぶと
windowに出力内容が表示できる。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/7bfdf6b3-79fa-52e0-ecb0-6bbf29fc479d.png)

これでgeo1の中に入る（ズームインまたはIキー）
してても出力が見れる。

## texture1もいじってみる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/e0e9f7e2-73fd-966a-464e-938ec12aaf4a.png)

Scaleを0.2とかにしてみると　boxへのテクスチャの反映の感じが変わりますね。

## 上の階層でみると・・・

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/3510fa9b-f8fb-4359-0f59-0b6173d0190a.png)

でもgeo1の結果が、out1につながってるけど、これテクスチャの内容ですね・・・

## 3D表示にする

ジオメトリというとあくまで箱を用意してシェーダー設定しただけなので、
これに
３Dの場合、カメラとライトとレンダーを追加することで
どの位置からどんなライティングでレンダリングした結果をTexture OPで受けるというイメージ。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/cc5c9982-75d6-61cb-381d-b8752ea2cd07.png)

ので、COMPからカメラとアンビエントライトを追加。
TOPからレンダーを追加　すると勝手に矢印線が伸びて繋がります。

が、右上に注意アイコンがでてますね・・・

## 注意アイコンを調べる

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/df32c665-cf9e-04c2-0880-a1774f253783.png)

クリックすると何やらワーニングがでてます。

なるほど、Normal Mappingのマテリアルで、tangent attributesがない。
って警告みたい。

でもそう言われても解決方法よくわからないので、
とりあえずさっきのNormal mapの指定を切っておきましょう。

（なんとなく、ノーマルマップをなんのエフェクトに使うのか指定が必要っぽいけど）

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/a96a6bbf-d2f8-1f26-3160-776242459f6c.png)

ということで、やっとout1のところに箱がカメラとアンビエントライトの影響をうけた形でレンダリングされた結果（Texture OP）としてとれてoutに繋がりました。

# Maxで同じことしようとすると・・・
![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/0d6ff74d-4ea1-0bb0-5ee9-6f5ea744cbd4.png)

こんな感じかな。
テクスチャのスケールとかどこで設定するのかちょっとわからなかった。

```
こうやって比較してみるとTDの方が圧倒的にビジュアルプログラミング言語ですね。
Maxは線で繋いでるけどほとんど文字とアトリビュートだらけじゃん・・・
```

Maxでいうところのjit.gl系がGeometryやcam,ambientって感じ。


render用意してgirdshape(cube)用意してtexture用意して
qmetroでrenderを駆動するところがMaxっぽい。

TouchDesignerは基本的に動きっぱなし（したのTransportで操作できる感じ）

# Cube(box)を表示するのも手間がかかるけど
これだけお膳立てをしてあげれば、あとはジェネラティブな機能を使っていろいろ表示できるようになる。


TDにどんな機能があるかはこれから調べるところなのだが、いろいろありそう。
[TouchDesigner Tutorial Particle part 1](https://www.youtube.com/watch?v=sc66u8N7UpE)
（TouchDesignerの勉強は動画を写経するのが良さそう）


単純にCube表示するだけならUnityとかの方がめっちゃ楽ですね。

ただ、Unityとかはstaticな形状の表現は楽だし超チューニング済みだけど、
頂点をいじろうとかるとシェーダーとかだし、マテリアルいじろうとか、生成しようとする機能はメインじゃないからいろいろ具合悪くなったり大変だったりする。

中身は同じくマテリアルやらテクスチャやらライトやらカメラやらシェーダーやらいろいろ用意するのはどれも一緒みたいですが。

線でつないでだけで表現するとだいたいこんな感じで複雑になりますね・・・

```
Geometryが進化してシーンエディタ（３D空間配置）や
シーケンスエディタみたいになればまた話が違うかもですが
（シーケンスはあるような気もする）
```

次回は、まだ紹介してないTDの箱があるので　そこらへん
（chop toとか・・・)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/96808/cdc51808-ff39-7b39-6f88-b67b91b06214.png)