# TouchDesigner Summit 2019 Montréal  https://2019.touchdesignersummit.com/ ## Workshop 受けてきたワークショップは以下の3つです! 三つともAdvancedレベルです。 + [SOP on GPU v 2.0](https://2019.touchdesignersummit.com/workshops/sop-on-gpu-v-2-0) + [Advanced Techniques in Media Management, Sequencing and Playback](https://2019.touchdesignersummit.com/workshops/advanced-techniques-in-media-management-sequencing-and-playback) + [External Python Libraries ](https://2019.touchdesignersummit.com/workshops/external-python-libraries) --- ### SOP on GPU v 2.0 08/18 Sun. Fullday Teacher : Stanislav Glazov Level : Advanced SOPはCPU処理だからShader書いて処理軽くしようねって話 ワークショップの内容はGeometryShaderを最初からガッツリ書いていきましょう!って感じでしたが数10~100行以上確認しないで書いていって、タッチ戻ってエラー直すっていう進め方でした... ファイル https://www.dropbox.com/sh/h78wzbfqxi83wld/AAA75nX2wUHxkpybfRuDVooQa?dl=0 00_SOPonGPU Point, Vertex, Primitiveとは? Vertex? Primitive?って人はこちらの記事をどうぞ http://satoruhiga.com/post/tdsw010/ 01_SOPonGPU GeometryShaderでPrimitiveを複製、移動 02_SOPonGPU vtxというStructとmake_vtxという関数を作ってmainを簡単に書けるようにしている ``` geometory.glsl vtx get_vtx(int i){ vtx PT; PT.Cd = iVert[i].color; PT.wP = iVert[i].worldSpacePos; PT.N = iVert[i].worldSpaceNorm; PT.uv = iVert[i].texCoord0; PT.ci = iVert[i].cameraIndex; PT.P = gl_in[i].gl_Position; return PT; } void make_vtx(vtx PT){ oVert.color = PT.Cd; oVert.worldSpacePos = PT.wP; oVert.worldSpaceNorm = PT.N; oVert.texCoord0 = PT.uv; oVert.cameraIndex = PT.ci; gl_Position = TDWorldToProj(PT.P, PT.ci); EmitVertex(); } void main() { for (int i = 0; i < 3; i++){ make_vtx(get_vtx(i)); } EndPrimitive(); } ``` SOPonGPU advanced.toe SOPの頂点をCHOPの情報にしてSamplerBufferにしてGeometryShaderに渡して、その点と閾値よりも近くなったら線をひくもの ※Macでちゃんと絵が出ないことなどがあります --- ### Advanced Techniques in Media Management, Sequencing and Playback 08/19 Mon. Half day Teacher : Peter Sistrom Level : Advanced 大規模のShowコントロールシステムをタッチでつくっている人の講座 システムの内容をみんなで見ていくというもので、ファイル公開はありませんでした。 TDAbletonでタイムラインにリンクしていて、進みすぎたり戻った時にその場所までジャンプする MIDIClockとのリンク opBrowserやlisterとかをベースにしてUIを作っていた  Extensionを使ってクラスを作っていく。 Coreとなるクラスを作ってそこからMovieやAudioといったものに継承していく クラスの作り方は以下のリンクを参考にするといい https://docs.derivative.ca/Creating_Custom_TDAbleton_Components System Compsと称して、すべてProjectCompの外に出しておいて、どのプロジェクトでも使えるようにしている。 複数で作業するときは特に、GlobalShortcutをプロジェクト内で使うと訳が分からなくなるので、SystemCompsに限定して使用 `project.paths`でパスのショートカットを保管し使用していた https://docs.derivative.ca/Project_Class Tagを使うとopFindDATで検索もかけられて見つけやすい。各種検索やタイムライン表示にTagを使っているらしい。 後半からはこういう作り方をしていったらいいのではないかというディスカッション。 ベストは結局人それぞれ  タイムラインにはRenderPickやinstancingを使っているらしく(中身は見れなかった)大変そう --- ### External Python Libraries 08/19 Mon. Half day Teacher : Matthew Ragan Level : Advanced https://mir.works/td-summit-2019-external-python-libraries --- #### 準備 ##### 動作環境 [TouchDesigner](https://www.derivative.ca/099/Downloads/) [Python 3.5.1](https://www.python.org/downloads/release/python-351/) ##### Github リンク https://github.com/mir-lab/touchdesigner-summit-2019-external-python ##### 推奨ツール(外部エディタ) + [Visual Studio Code](https://azure.microsoft.com/ja-jp/products/visual-studio-code/) + [Sublime Text](https://www.sublimetext.com/) など ##### 準備事項 + 最新バージョンの TouchDesigner 099 にアップデート + Python 3.5.1 をPCにインストール + Githubのレポジトリをダウンロード --- #### 概要 WebサービスからIoT、データ分析などまでPythonでできることはどんどん拡大しています。 これらのことをゼロから始めることは可能ですが、大体の場合、公開されているライブラリを使用する方が簡単で手軽にできます。 TouchDesignerでは既に。OpenCVやNumpyなどのいくつかの追加ライブラリがインストールされており、Pythonを自由に扱えるようになるとどんどん自分の思い通りに作業ができるようになります。 しかし、自分のPCで作業してたものを他のマシンで動作させるとなったときにスムーズにいかず、イライラすることが起きることが多々あります。 このワークショップではそのプロセスを限りなくスムーズに行うために何ができるかを学んでいきます。 #### 導入 (なぜ外部ライブラリを使うのか) 外部ライブラリは、制作を行う人にとってとても大きな利点を提供してくれます。 探し求めていること、やりたいことを実装するには数日から一生の時間を費やすことになることがあります。 外部ライブラリを使えば、メールを送信したり、天気をチェックしたりといったありふれたものから、WebサービスやIoTデバイスとの通信などの様々な素敵な可能性がひろがります。そういったライブラリを使用することで、機能を実装するための技術的に深いところではなく、自分の作りたいものへの作業に集中することができます。また、複雑なプロジェクトのために限られた時間を最大限に活用することもできます。 #### 手順 baseComp (iparExtPython) Custom Par + External Python + File -> Python requirements(Pyreqs) + Folder -> Install target(Target) requirements.txt作成 #### tips + Custom Par + ipar + tdu.expand() + sys.path + tags --- ### おわり
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up