第4回 SOP とレンダリング基礎

Tuesday, May 9, 2023

今回は 3D の形状などを扱う SOPs (Surface Operators)とレンダリングの基礎の勉強をしていきます!

サンプルファイル

chimanaco/takara-univ-media-programming-2022
04が本日のディレクトリです。

SOP を構成するもの

SOP Structure: /project1/Structure

SOP を構成するものとして PointVertexPrimitive というデータ構造があります。ちょっとややこしいのですが、以下のように考えることができます。

NameSummary
Point3D 空間上の座標で表される点。
Vertex (Vertices)Point を使ってどのように Primitive を形作っているかの情報。
PrimitivePoint と Vertices を使ってレンダリングできるようにしたもの。

Network

SOP Primitive types: /project1/Primitives_Types

SOP Primitives types2: /project1/Primitives_Types2

Primitive と呼ばれるものには以下のものがあります。

TypeSummary
Polygon三角ポリゴンの集まりで構成されている形状。よく使う。
Mesh四角ポリゴンの集まりで構成されている形状。よく使う。
NURBSNon-Uniform Rational B-Spline(非一様有理Bスプライン)の略で、曲線や曲面を生成する数学的モデル。計算負荷が高い。
Bezierベジエ曲線を使って生成する数学的モデル。計算負荷が高い。
Particleなどを使用した粒子のシミュレーションや、ポイントクラウドの描画。
Metaball2個以上になると互いに融合し合って複雑な形状になる球。Metaball SOP。

Network

Particle は Particle SOPConvert SOP などで作成することができます。

Network

SOP Primitives: /project1/Basic_Primitives

また Primitive というと、Circle、Box, Sphere、Tube などのシンプルな形状のもののことも指します。これらは CG ソフトウェアの方で用意されているものです。

Network

よく使う操作

Viewer を Active にした状態で以下の操作ができます。

LMB + ドラッグで回転、RMB + ドラッグで横移動、MMB + ドラッグでズームができます。

Hキーでデフォルトの位置にリセットできます。

Wキーで wireframe を表示します。

Pキーで Display Option を表示します。

よく使う SOPs

Merge: /project1/Merge

Merge SOP は2つ以上の SOP をマージします。

Network

Boolean: /project1/Boolean

Boolean SOP は2つの SOP の加工をします。計算式によって結果が変わります。 例えば、Union は2つの SOP を合体させて、内側のポリゴンを削除し、Intersection は外側のポリゴンを削除します。パラメーターを変えたり入力している SOP をいろいろ変えて試してみてください!

Network

Clip: /project1/Clip

Clip SOP は立体を平面で切り取ります。

Network

Trace & Extrude: /project1/Trace_Extrude

Trace SOP は TOP から SOP を生成します。Threshold などの値を変更して色々な画像で試してみてください。 また、ここでは Extrude SOP を使って立体の押出をしています。Depth Scale でどのくらい押し出すか調整することができます。

Network

Copy: /project1/Copy

1つ目の SOP の入力をコピーします。Number of Copies でコピーする回数を変更できます。

Network

2つ目の input に指定した SOP の形状にコピーすることもできます。

Network

Obj: /project1/Obj

ここでは obj を読み込んでいます。読み込めるファイル形式は File Types - Derivative を参照して下さい。

Network

ドラッグ&ドロップでネットワークに追加することもできます。

レンダリング

レンダリングとは、3DCG ソフト上で形状や、マテリアル、テクスチャ、ライティングなどの計算を行い、最終的に2Dのイメージ出力を行うプロセスのことです。

TouchDesigner では以下のオペレーターを組み合わせてレンダリングしていきます。

NameSummary
Geometry COMP実際にレンダリングされるもの
Camera COMPカメラを通して映し出されるものが出力される
Light COMPライティング
MATマテリアル、質感
Render TOP出力結果

はじめてのレンダリング: /project1/Render_fundamental

Network

まず Geometry COMP を追加。 中を見てみるとデフォルトで Torus SOP が入っています。

次に Render TOP を追加。そうするとカメラが無いと Warning が出ますので、 Camera COMP を追加。 形状がそれらしいものが出てくるのですが真っ黒になっています。ここで Light COMP を追加。無事 Torus が照らされました。 これが TouchDesigner のレンダリングの基本形です。

3D 空間で各コンポーネントを確認できる Geometry Viewer を開いてみましょう。alt + [ でネットワークエディターを分割し、左端の矢印ボタンから Geometry Viewerを選択すると以下のような画面になると思います。

SOP の Active Viewer と同じように操作することができます。

このように Geometry、Camera、Light が配置されているのが分かるかと思います。これらを動かしてみて、Render TOP の出力結果がどのように変わるか試してみてください!

Network

Geometry の中の SOP の紫のボタンは render、青のボタンは display のトグルボタンになっています。表示がおかしい時はここをチェックしてみるといいかもしれません。

SOP と Geometry をつなぐ: /project1/Render_fundamental_2

SOP のアウトプットの上で右クリックして Geometry をつなぐと 内部に InSOPOutSOP を自動で作成し、入力した SOP と同じものを Geometry 内に入れることができるのでおすすめです。

本日の課題: SOPs を使って顔をモデリングする

SOP を使用して顔を作成してください。人でもロボットでも動物でも何でも構いません。.toe ファイルや画像などの入ったプロジェクトフォルダごと Teams に提出してください。

顔参考: /project1/Example

TouchDesigner でモデリングをしてみましたが、複雑なモデリングをするなら別のモデリングを得意とするソフトウェアを使った方がいいと思います。Blender や Maya など授業でやられている方も多いと思いますので是非ご自身で作成したモデルを読みこんで使ってみてください!

参考

第5回 MAT と Instancing 基礎

第3回 CHOP 基礎