Houdini: The comparison operators


Comparisons

The comparison operators (==, !=, <, <=, >, >=) are defined when the left hand of the operator is the same type as the right hand side, for string, float and integer types only. The operations result in integer types.
The logical (&&, ||, and !) and bitwise (& |, ^, and ~) operators are only defined for integers.

Houdini13⇒MAYA2013 abc:”Warning:UVs aren't per-vertex or per-polygon per-vertex, skipping”


■Houdini to MayaのAlembicコンバート、チェック項目
1、Detail View -> Vertices attributeにUVのデータが格納されていることを確認。
2、Rop Alembic Output setting:
    format->HDF5
    etc・・。

■UVが渡らないとき。
1、Houdiniのネットワークの中でFuse nodeを使用している場合は、OFFってみる。
2、vertex attributeからpoint attributeへUV情報を移動してみる。

MayaにUVデータを渡すときは、最悪、Point attributeに"attribute promote"をかけると確実に渡せるが、ポリゴンに対してfuse等を利用している場合は、注意が必要。理由は、promote時には、セパレートされたポリゴンのアイランドが必要で、連続したポリゴン&UV情報は、適していない。

連続したポリゴン&UV情報では、uv情報が伸びたりひしゃげたりと、使用できないような状態で渡ってしまう。なので、下手に頂点を集約せず、孤立してる状態の方がデータをいじり倒すのに適している模様。

今回は、fuse nodeを使用しないようにnet workを組みなおすことでエラーを回避できたので、”point attribute”へのUV情報の移行は行わなかった。

参考URL:
Method Studiosの方の書き込みで解決。助かりますね。


■副産物:
alembicのbug fixの様子が見れるHPをみつけた。変えてますねー。これだと、最新のバージョンで古いファイルを開いても開かないのでは。いつもbug fixレポートしか読まないので、実際にコードを見れるのは新鮮。2012年の話なので、現状仕事をする分には特に問題ないと思う。

Houdini:Dopnetworkに渡すことができるもの一覧表。


■Dopnetworkに渡すことができるもの一覧表。

http://www.sidefx.com/docs/houdini12.0/nodes/obj/dopnet
  ”Provide Data Hints” 項目を参照。
  許可されたシミュレーションデータとの関係を管理する規則は、scriptsディレクトリに
  dophints.cmdと呼ばれるファイルに格納されています。

■iceberg break-up reference (Link)


■iceberg break-up (reference)

Houdini: exhelp clamp


clamp: クランプ機能。最小値より値が小さければ、最小値が適応され、最大値より値が大きければ、最大値が適応される。

float clamp (float value, float minimum, float maximum)

houdini:exhelp detail


detail: 上流で作成した"measure"ノードで任意の値を算出後、"AttribPromote"(Detail,Primitive,Point,Vertexのどれかに設定) で名前とClassを指定。その"AttribPromote"で指定した名前でアトリビュートの中身を呼び出す。

        EXAMPLES
              detail("/obj/geo1/attribpromote1", "area", 0)
              detail( attribpromoteの場所, 左記で作成したアトリビュート名, 指定アトリビュートの配列番号指定)


Houdini:exhelp fit


fit:  任意の変数を古い範囲指定を基に、新規の範囲に再計算する。もし、古い範囲指定の値が、任意の変数より外にはみ出していた場合は、クランプされる。

float fit (float num, float oldmin, float oldmax, float newmin, float newmax)