2011年12月31日土曜日

メモ:Basics : Volumes II (ビデオチュートリアル)by Peter Quint

Basics : Volumes II by Peter Quint


Houdiniのボリュームへの入門、第二部ではVolume Ramp(SOP)をボリュームの値を調整するために使います。
また同様にVOPコードを使うためにVolume VOPを使います。



--------------
<<Volume Ramp(SOP)>>
1)volumeramp(SOP)を作成
2)isoSurface(SOP)を作成
Implicit Function:  ($Y+1)*0.5
Build Volume: On

$Y値に伴う値の変化 
0 > (0+1)*0.5 = 0.5
1 > (1+1)*0.5 = 1.0
2 > (2+1)*0.5 = 1.5
3 > (3+1)*0.5 = 2.0
4 > (4+1)*0.5 = 2.5
5 > (5+1)*0.5 = 3.0
6 > (6+1)*0.5 = 3.5
7 > (7+1)*0.5 = 4.0
8 > (8+1)*0.5 = 4.5
9 > (9+1)*0.5 = 5.0
10 > (10+1)*0.5 = 5.5

これは下から上に向けての濃度グラデーションで表現される。

3)iso1(SOP)出力を、volumeramp1の入力へ接続
※iso1からのフローは1つのVolumeしなかいことに注意。

4)volumeramp1(SOP)
NewName:Cd
Scalar Ramp:適当に二つの山谷を作る。
(谷となったところは透明に山の所は濃くなる)
Use Color Ramp: オン

「User Color Ramp」をオンにしたことでここからのVolumeは3つになる。
Red、 Green、 Blueのカラーの3つのボリュームになる。
入力されるボリュームはカラースプライン(Color Ramp)にフィードされ、色情報が付加されて出力される。

--- カラーを確認するにはレンダリングする必要がある。
5)カメラとディレクショナルライトを作成して設定。
6)Material Paletteで「Basic Smoke」マテリアルを作成
7)/objレベルでgeo1を選択
Materialタブ
Material > Chooser > basicsmoke
8)Create Render Node >Mantra
レンダリングしてみる。

Color Rampの左側の色が下部に右側の色が上部に適用されることがわかる。


<<Volume VOP(SOP)>>
1)isoSurface(SOP)を作成
Implicit Function:  ($Y+1)*0.5
Build Volume: On

2)isosurface(SOP)のアウトプットに、volumeVOP(SOP)作成
※エラーが起きる。
Warning: Cannnot find primitive attribute 'name' , binding volume as 'density'.
これはisoSurfaceはデフォルトではname(名前)を持っていないからである。

3)isosurface(SOP)とvolumevop(SOP)の間にname(SOP)を作成
作成した時点でエラーは消える。
Group: 0 (現在入力されるプリミティブは1つで番号は「0」である)
プリミティブ番号「0」に以下のNameをつける)


もう一つの方法は、
4)volumevop(SOP)
Volume Bindingsタブ
Autobind by Name オフにする。
Number of Bindings: +ボタンをおして1にする。
primitiveはひとつなので、「0」を入力。
Name : density

これでプリミティブはDensityにバインドされる。
このDensityをベースに計算が行われ、ボリュームに対してフィードバックされる。
※Autobind by Nameはオンに戻して次へ進む

5)volumevop(SOP)にダイブする。
parameterノード作成
ノード名:myvol_in
parameter Name: myvol
Invisible: オン

6)myvlo_inノードをデュプリケート
ノード名:myvol_out
デフォルトでは同じパラメータ名(ここではmyvol)は一つのノード内では使えないので、myvol_outのパラメータはグレイアウトしている。

Use This Node to Set Parameter Attributes : オンにする。
Export: Never > Alwaysに変更

7)Turbulent Noiseノード作成
volumevopglobal1のポジション(p)を turbnoise1(Position)に接続

8)multiplyノード作成
turbnoise1のノイズ(Noise)をMultiply1の入力(inpupt1)に接続

9)myvol_inのmyvolをmultiply1のinput2へ接続

10)multiply1の出力(product)をmyvol_outのinputへ接続

11)volumevopglobal1のdensityとvolumevopoutput1のdensityの接続を解除

12)ノードの接続をVEXコードで確認
turbnoise1ノードを右クリックして「View VEX Code...」を選択

View Code画面で
// Code produced by : multipoly1
myvol = noise * myvol;
となっている。



--------------
※ Volume マテリアルのボクセルについては
SideEffectsのMantra Master Classでカバーされている。


(注)このメモはビデオチュートリアルを見ての私的なメモで、完全な記録ではありません。
各自の利用は自己判断でお願いします。
抜け落ち、間違いの指摘は歓迎です。

2011年12月11日日曜日

メモ:Basics : Volumes I (ビデオチュートリアル)by Peter Quint

Basics : Volumes I by Peter Quint


HoudiniのVolumeに関する入門
まずVolumeを見ていきます。
- Volume IsoOffset(SOP)を使って作り、それらの値を調整します。



--------------
<Volume (SOP)>
簡単なボリュームの作成
1)Geometry(OBJ)ノード作成 
2)file(SOP)を削除
3)Volume(SOP)を作成
Name: myvol
Initial Value X:0.5


Rank
どのような種類の値をボリュームで使用するのか

「Uniform Sampling」はノード中クリックで表示される詳細にある「Volume Resolution」と同じである。

例:
Volumeのsizeが1,1,1のとき、Uniform Samplingが10のときVolume Resolutionは[10,10,10]となる
Volumeのsizeを1,2,1にして、Uniform Samplingを10にすると、Volume Resolutionは[5,10,5]になる。

※ようするに最大sizeの分割数がUniformSamplingと同じになる。


Rankを「Vector」にすると3つのボリュームをオーバーラップして持つことになる。
それぞれ違う名前をもつことになる。
0:myvol.x
1:myvol.y
2:myvol.z



--------------
<IsoOffset(SOP)>
ジオメトリをコンバートしてボリュームを作成する。
1)Sphere(SOP)を作成する
2)isooffset(SOP)を作成する。
デフォルトではサーフェイスを作るだけなのでボリュームにするにはOutput TypeでFog Volume, SDF Volumeを設定する必要がある。
(ここではFog Volumeを選択)

Fog Volume:オブジェクトの中にある各ボックスは値1、外のボックスは値0となる。

SDF(Sign Distance Field) Volume:中心から最も近いサーフェイスまでの距離の情報を使う。
サーフェイスから中はネガティブ値になり、サーフェイスから外はポジティブ値になる。
※内部がスフィアの形状に雲がない状態になるので外からはわかりにくい。


Offset:入力ボリュームのサーフェイスをオフセットする。

Laser Scan:カップなどの中がへこんだ形状では正しく計算されない。その場合はこれをOffにしてみる必要があるかも知れない。


--------------
<IsoSurface (SOP)> 
インプットジオメトリ無しでボリュームを作る事が出来る方法

実際には、入力ジオメトリを接続することは出来るが、ボリュームサイズは形状を使うことができるがいろいろと問題がある(ヘルプ参照)
例:
1)Isosurface(SOP)を作成
Implicit Function:noise($X,$Y,$Z)
Build Volumeをオンにしてボリュームを表示する。



--------------
<Volumemix(SOP)>
ボリュームを変更したり、結合する。

例1)二つのインプットがあるが1つだけのインプットでもいい。
1)先ほどのiso1(SOP)を左のインプットに接続
IsoSurfaceを
Mix Method:User
Value:$V(デフォルト)*0.5
ボリュームのノードを半減させる。

例2)二つのボリュームを混合することが出来る。
isooffset1を右のインプットに接続
Mix Method:Multiplay

結果としてノイズのボリュームがスフィア内部にだけ存在するようになる。



(注)このメモはビデオチュートリアルを見ての私的なメモで、完全な記録ではありません。
各自の利用は自己判断でお願いします。
抜け落ち、間違いの指摘は歓迎です。

2011年11月22日火曜日

メモ:Basics:選択(Selection) (ビデオチュートリアル)by Peter Quint

Basic Selection by Peter Quint

- オブジェクトの選択
- ポイント、エッジ、フェイスの選択
- ループ
- 選択の拡張と縮小



--------------
grid(SOP)
sphere(SOP) ->polygon
box(SOP)

box(OBJ)内部に入り
torus(SOP)を作成しtransformで移動、mergeでboxとマージする。

※ これでビュー上では4つのオブジェクトがあるように見える。
しかしながらHoudiniではboxとtorusは一つのオブジェクトとして認識されており、

objレベルでこれらを別々に選択する事は出来ない。


<選択>
選択(Selection)モード(ショートカット:s
Show Handleモード(現在選択している状態でEnterを押すとこのモードになる)


<選択モードの種類>
何を選択しているかを決めるのは左端ツールバーの上4つで決められる。
●オブジェクト:Object Select Mode(ショートカット:
●コンポーネント:Geometry Select Mode(ショートカット:2(ポイント)、3(エッジ)、4(フェイス)、5(バーテックス)
●パーティクル・システム:Particle Selct Mode(ショートカット:6
●ダイナミック・オブジェクト:Dynamics Select Mode(ショートカット:


<オプション>
●オプションはこれらのアイコンを右クリックして表示。
●3Dビュー内で右クリックすると選択状態を切り替えるオプションが表示される。
●PreferenceでPopup Menu Selectionを設定する事も出来る。
TreeビューでFilterにオブジェクト名(例:boxを入れて)リストからオブジェクトを選択することも可


<選択方法の違い(オブジェクトモードでの説明>
オブジェクト選択モード(ショートカット:1
選択ツール(ショートカット:

※選択ツール・アイコンを右クリックで選択方法のオプションが表示される。
Box Picking: クリックして選択もしくは、ドラッグで矩形を描いて複数選択できる。
選択に追加(Add to Selection): Ctrl + Shift  (追加のみ、選択解除不可)
選択をトグル(Toggle Selection): Shift (追加/選択解除可能)
選択から除く(Remove from Selection): Ctrl (選択解除のみ、追加不可)
選択を入れ替える(Replace Selection): (ショートカット無しの通常モード)


<右クリック・オプション(ビュー内)>
全オブジェクト/ジオメトリ選択(Select All Objects): a または Ctrl+a
全オブジェクト/ジオメトリ選択解除(Select No Objects): n
オブジェクト選択反転(Invert Object Selection): Ctrl+i
境界選択(Select Boundary): Shift + B (選択範囲の境界のみ選択)
選択範囲縮小(Shrink Selection): Shift + S 
選択範囲拡張(Grow Selection): Shift + G
-- ループ選択機能 --
※エッジ、ポイントを選択すると赤い矢印が現れる。
●矢印の向きを変える: Shift+R
●矢印方向の次のコンポーネントを選択: F
●ループ選択: L


<コンポーネント(Geometry Select)モード>
2: ポイント
3: エッジ
4: プリミティブ(フェイス)
5: バーテックス

●コンポーネントは1度に1オブジェクトのコンポーネントのみ選択できる。
●通常、ジオメトリ選択モードの時、オブジェクトレベルでオブジェクトを選択すれば(自動的に)ジオメトリ・レベルへ降りる。
●あるモード(例:エッジ)でコンポーネントを選択した状態で、別のモード(例:ポイント)へ切り替えたとき、選択されたコンポーネントに含まれるものが選択状態になる。(例:エッジ1つ選択状態 →その両端のポイントが選択状態)

※ フェイス選択モード
フェイス・ノーマルをビュー表示すれば、フェイスを直接選択する代わりにノーマル

をクリックしてそのフェイスを選択することが出来る。

一つのオブジェクトコンテナで複数のジオメトリがあるときに一つのジオメトリを

全選択するには。(例:box(OBJ)内のTorus(SOP)の全ポイント選択)
Select Connected Geometry(ショートカット:0でトグル)


(ショートカット:bで切り替え)
Select Front and Back Facing (正面と背面のフェイスを選択)
Select Front Facing Only (正面フェイスのみ選択)
Slect Back Facing Only (背面フェイスのみ選択)


(注)このメモはビデオチュートリアルを見ての私的なメモで、完全な記録ではありません。
各自の利用は自己判断でお願いします。
抜け落ち、間違いの指摘は歓迎です。

2011年11月18日金曜日

メモ:Basics: Polygons II (ビデオチュートリアル)by Peter Quint

Basics: Polygons II  by Peter Quint

<Subdivde(SOP)の使用>
1)Box(SOP)
2)フェイスを全選択
3)Facetを適用
Unique Pointsをオン
4)Subdivideを適用

※各面が分割されるが、平面の形状は保っている。

5)FacetをOffにする。

※各面が分割され、球体に近い形になる。
これは元のBoxの頂点がつながったままだからである。

6)「Override Crease Weight Attribute」をオンにして「Crease Weight」のスライダを動かしてみる。

※Weightの数値が大きくなると折り目が鋭角になってくる。



<Consolidate>
以下の説明で使用されるネットワーク
box(SOP) -- Point(SOP) -- facet(SOP)
Point(SOP):  Add Normal
Facet(SOP): Unique Points オン


1)Facet(SOP)のUnique PointsをOnにする。

「Consolidate」の説明
バラバラのポイントを一つにまとめたければConsolidateを使う事もできる。
しかしConsolidateを使うよりは「Fuse(SOP)」を使った方がよい。



<エッジラインの中程に残ったポイントを削除する>
以下の説明で使用されるネットワーク
box(SOP) -- Point(SOP)
Point(SOP):  Add Normal

1)EdgeLoopツールを使いboxを分割する。(Polysplit SOPが作成される)
2)選択(Select)モード(sキー)でエッジ二つを選択し、Dissolveツールをクリック
エッジが削除されdissolve(SOP)が作成される。
※エッジの真ん中にポイントが残る。

3)真ん中のポイントを選択して移動(tキー)する。
edit(SOP)が作成される。

4)edit1(SOP)が選択された状態で、Facetノードを作成
「Remove Inline Points」をオンにする。
※しかし何も起きない。(ポイントは消えない)

5)これは角にあるポイントからの閾値が低すぎるからで
Distanceの数値を上げてやるとポイントが削除できる。
※例:0.2



<ノーマルが反転したフェイスを修正する>
1)Box(SOP)でトップのフェイスのみを選択し、3DビューでTabメニューから「reverse(SOP)」を作成
※トップのフェイスのみNormalが反転する。(NormalをDisplay表示するとよい)
このフェイスの反転はモデリング時などに時々みかける現象である。

2)全フェイスを選択する。
※これにより全てのノーマルの方向を比較しどちらの方向を向いているのかを判断できる。

3)Facet(SOP)を作成し、「Orient Polygons」をオンにする。
※これでノーマルの反転が戻る。




<ポリゴンを平面化する>
※モデリング時に非平面ポリゴンが発生することはよくある。
これを修正する。
1)Box(SOP)で選択モードで一つのポイントを移動して非平面ポリゴンにする。

2)非平面のポリゴンを選択し、Facetツールをクリックするか、3DビューでTabメニューから「Facet(SOP)」を作成

3)「Make Planar」をオンにする。

※ビデオでは、全プリミティブ(フェイス)を選択しているがエラーが起き、フェイスを1つだけ選択しなおしている。

※複数の平面を選択して平面化するには、Divide(SOP)を使い三角ポリゴンに変えたほうがよい。


(注)このメモはビデオチュートリアルを見ての私的なメモで、完全な記録ではありません。
各自の利用は自己判断でお願いします。
抜け落ち、間違いの指摘は歓迎です。

ヘルプ(翻訳): エディット(Edit) SOP



Edit (SOP)

ポイント、エッジ、フェイスをインタラクティブに編集する。

Edit(SOP)はカーブ/サーフェイス上のフェイス/エッジ/ポイントをトランスフォームまたはスカルプとさせてくれます。

他の大半のHoudiniのオペレータと違い、Editは累積的です。
一つのEditノード内で(たくさんの選択肢に対して)複数のEdit操作を実行する事が出来ます。

Editは作業に当たり二つの主な方法をサポートします。
edit(マニピュレータを使用)
sculpt(ブラシツールを使用)

Note:
Editノードはアニメートできません。
トランスフォームをアニメートするには、Point, Transform, Soft Transform, Peak, Soft Peakオペレータや他のタイプのデフォーメーションを使います。


設定
● Editがインタラクティブに使えるのはビューワーの中だけです。
● ビューワー・ペインでツールを使っている間もパラメータ・ペインにEdit(SOP)のパラメータを見えるようにしておきます。パラメータにはビューワー内でツールの振る舞いを調整するコントロールが含まれています。

Editモードでは、パラメータは現在の選択肢に影響を及ぼします。
新しいポイント/フェイスを選択したとき、パラメータはリセットされます。
スカルプト・モードでは、これから描かれるストロークに影響します。

●ポイントを選択する前に、ビューワー・ペインの(ビューワーの右側にある)ディスプレイ・オプション・ツールバーのポイント・アイコンをオンにします。
(もしディスプレイ・オプション・ツールバーが表示されていないときは、ビューワー・ペインの右端にある格納バーをクリックして表示します。)

作業

目的...行うこ
ポイント/フェイスのトランスフォーム
  1. パラメーターで、「Edit」そして「Transform」をクリックする
  2. 3Dビューワーの左端にあるツールバーで、セレクション・タイプを設定する。もしくは「Select」 >「Selection Type」サブメニューを使用する
  3. トランスフォームしたいポイント/フェイスを選択する
  4. 下記のどれかを行う
ポイントやフェイスをそのノーマルに沿って移動する
  1. パラメーターで、「Edit」そして「Peak」をクリックする。
  2. そのノーマルに沿って選択したアイテムを移動するためにマニピュレータを使う。Editツールに作用させるには上記「ポイント/フェイスのトランスフォーム」を参照
  3. Extrude SOPも参照の事
ブラシでなでることによりポイントを押したり、引いたり、スムースにする
  1. パラメータで「Sculpt」を選択する
  2. そのタブのコントロールでブラシの機能を制御します。
    これらのコントロールはHoudiniの全ブラシ・ツール共通です。
    ブラシ・ツールの使い方」を参照

 

メモ

●ビューワーで作業しているときにツールオプションのメニューを表示するにはRMBをクリックします。 例えば、マウス・ボタンに異なる機能をアサインする事が出来ます。

●ポイントをトランスフォームするときに、ポイントの周囲に対して「比例修正ツール(Proportional Modification)」を行うためにSoft Radiusオプションを使います。

●Editはリファレンスジオメトリ用に二つ目の入力を持っています。
2つ目の入力が接続される時、Editノード編集するジオメトリとリファレンス・ジオメトリ間の違いに関連付けてトランスフォームを編集します。

●ジオメトリの一部にある各ポイントやバーティックスの位置を編集するために「Detailペイン」を使う事が出来ます。

●リファレンス・ジオメトリによって影響されるのは確定された(Committed)編集作業のみです。
Commit Transform/Peak Changes」ボタンを押すことで編集作業を確定することができます。
現在の編集は新しい編集を始めたとき、もしくはスカルプトの操作を始めたときに自動的に確定されます。

パラメータ

Group 編集作業を行うグループ。
ここが空欄の場合は、第一入力にある全てのジオメトリに対して編集が適用されます。
グループを作り、編集をマスクするためにこのパラメータを使うことができます。
その編集は、このグループ内のポイントかフェイスにのみ適用されます。
Group type グループ内で使うジオメトリのタイプ。
もしそのグループがたった一つのジオメトリ・タイプしか持たない場合(例えばポイント)は、「Guess from group」を使う事が出来ます。
Houdiniはそのグループの中身からジオメトリ・タイプを推測します。

Edit

Transform

このタブにあるパラメータの情報はオンラインヘルプの「Transform SOP」を参照して下さい。

Peak

このタブにあるパラメータの情報はオンラインヘルプの「Peak SOP」を参照して下さい。
Soft radius 直接編集するポイント/フェイスに追随する他のポイント/フェイスまでの距離
Soft type ソフト修正(Soft Modifications)のロールオフ・タイプ。
これは、直接の編集が「Soft Radius」で、他のポイント/フェイスに及ぼす影響を、その距離を元にきめます。
Linear リニア・ロールオフ:影響力が距離に応じてリニアに減衰します。
Quadratic スロー・フォールオフ: 直接の編集はキュービックよりは多くの距離までポイント/フェイスに影響を及ぼします。
Cubic クイック・フォールオフ: 直接の編集はQuadraticよりは少ない距離までしかポイント/フェイスに影響しません。
Metaball Kernal function」パラメータで設定したメタボール密度関数に応じたフォールオフを計算します。
Tangent angles キュービック・ロールオフ関数の接線角度
最初の値はソース・ポイントから最も離れた接線に適用されます。
二番目の値はソース・ポイントに最も近い接線に適用されます。
Kernal function 「Soft Type」が「Metaball」のときに使われる密度関数です。

 Wyvill model
Elendit model
Blinn model
Links model
RenderMan model
Hart model
Exponential Bump
Ignore point connectivity 直接編集しているポイントにつながっているポイントだけがソフトモディファイされる。(訳注:?)

Sculpt

ブラシ・パラメータについてはオンラインヘルプの「Sculpt SOP」を見て下さい。
Use Orient Attribute もし設定されていたら、全ての編集は「Orient」と呼ばれるクォータニオン・ポイント・アトリビュートによって詳述される方向に関連付けられる。
これはオリエント・アトリビュートがWireSolver(SOP)を使ってアニメートされる時に大変便利です。
Use Mirror もし設定されていたら、すべてのオペレーションはシンメトリーの平面にそって反映されます。
Axis 反映されるシンメトリーの平面のノーマルを定義します。
訳注:
X:1 の場合はX軸方向に向かうシンメトリ
Z:1 はZ軸方向のそれとなる。
Origin 反映されるシンメトリーの平面の原点を定義します。
Distance これはシンメトリの原点からのプレーンの距離を示します。
訳注;これはOriginの操作と似ている)
Threshold
反転されるポイントの位置から反映されるポイントへの最大距離
訳注??:以下原文
This is the maximum distance from a points mirrored position to search for the mirrored point.
Recompute Point Normals ポイント・ノーマルが存在する時にそれを再計算する。
Commit Transform/Peak Changes 現在の編集を保存し、新しい編集作業を始めるためにパラメータを開始状態に再セットするする。
訳注;パラメータとは、Translate、Rotate、Scaleなど。これらがゼロになる。)
Reset All Changes ジオメトリを初期状態にレストアする。
訳注:たとえば平面を凸凹にした場合、これをクリックすると変更が全て取り消され、平面に戻る。)

Inputs

Geometry to edit Editを適用するジオメトリ
Reference geometry (任意)入力ジオメトリが接続されているとき、すべての編集はそのジオメトリとこのジオメトリ間の違いに関係する。
訳注:ジオメトリの構成(形状ポイント数など)は一致する必要があるようだ。)

Examples

Load | Launch
.../examples/nodes/sop/edit/ReferenceGeometry.otl
この例は、EditSOPにおけるリファレンスジオメトリの入力が、アニメーションされたジオメトリの編集作業にどのように適用されるかを示しています。

(注:以下の図は、このファイルを開いたもの。

 

 

向かって左側がリファレンスを使用したもの。 リファレンス未使用の右側に比べてアニメーションで曲がってもスカルプトは面からのベクトル方向を維持している。  リファレンスはスカルプトとアニメーションを適用する前のプレーン。 

Other examples that use this node

Example forExample name
FLIP SolverLoad | Launch
.../examples/nodes/dop/flipsolver/FlipColorMix.otl
Pyro SolverLoad | Launch
.../examples/nodes/dop/pyrosolver/BillowyTurbine.otl

Load | Launch
.../examples/nodes/shop/material/DownHillLavaFlow.otl

Load | Launch
.../examples/nodes/shop/material/firePitExample.otl
ConvertLoad | Launch
.../examples/nodes/sop/convert/PasteConvertVariations.otl
Edge DivideLoad | Launch
.../examples/nodes/sop/edgedivide/EdgeDivideBasic.otl
FurLoad | Launch
.../examples/nodes/sop/fur/FurTextureMap.otl
PasteLoad | Launch
.../examples/nodes/sop/paste/PasteCones.otl
RayLoad | Launch
.../examples/nodes/sop/ray/RayWrap.otl
TimeShiftLoad | Launch
.../examples/nodes/sop/timeshift/PlateBreak.otl


(注)このメモは私的にヘルプを翻訳したなメモで、完全な翻訳ではありません。
各自の利用は自己判断でお願いします。
抜け落ち、間違いの指摘は歓迎です。