Polyline

ポリラインの高さを滑らかにする

環境:Houdini 20.0.751ターンが1つだけのシンプルなカーブポリラインを3次ベジェ曲線を使って高さだけ整えます。元のポリラインカーブ。ポイントのアトリビュートにフォワードベクトルのNが設定されていることが前提です。ノードネットワ...
Mesh

Sweep形状のUV

クロス側のポリライン断面形状にuvが0~1までの範囲に収めるようにする。各ポイントに0~1にスケールした距離を記録する。//// UVのパラメトリック座標を計算する// Run Over: Primitives//float curveLe...
ツール

ViewerStateで動的なハンドルを使う

ViewerStateでハンドルを利用する時のサンプルコードを書いてみました。構成HDAを作成し、UIにはMultiparm Block(list)を「points」という名前で追加し、ここにFloat Vector3を「pt_#」という名...
ツール

UIのパラメータが変更された時のコールバック

Viewer StateのHDAでUIのパラメータの値が変更された時に呼び出される関数をつくる。コードではaddEventCallback()を使い、UIパラメータのshowCollisionというトグルをオンオフするたびにonParmCh...
数学

ベジェ曲線の仕組み

ベジェ曲線の特徴・ベジェ曲線は制御点によって定義される・曲線は必ず制御点の内側に描画される制御点の線形補完を繰り返すことで滑らかな曲線を生成します。1次のベジェ曲線P = (1-t)P0 + tP11次のベジェ曲線は一本の直線です。tはパラ...
数学

角度を0~360°に正規化する

オイラー角でよく使うけど忘れがちな計算のまとめ。随時追加していきます。0~180°の角度を0~360°に正規化するXZ平面にてベクトル同士の成す角度を内積とアークコサインで計算すると、0~180°に収まるが、これを0~360°にしたい場合、...
Python

カメラの注視点をあわせる

環境:Houdini 20.0.751ツール作業では必須のカメラ注視点を特定の座標に移動させる動作をPythonで再現してみます。以下のコードはカメラの注視点を(1.0, 0.5, -1.5)に移動させる例です。カメラと注視点の座標関係はそ...
Mesh

メッシュの四角形化

環境:Houdini 20.0.751平面的なメッシュの三角プリミティブを四角形にする。三角形プリミティブの一番長い辺が隣り合っているペアを探し、プリミティブをひとつに作り直している。//// 三角形ポリゴンの長いエッジから隣り合うプリミテ...
Mesh

ポリライン間をメッシュで埋める

2本のポリラインの間を縫合するようにメッシュを生成します。ポリライン同士が同じ方向に並んでおり、交差していないことが前提となります。処理の流れ2本のポリラインを用意して、上下のポイントを左から順につないでいきます。下のラインを基準に処理を行...
Mesh

三角形プリミティブの対角線の向きを変える

三角形ポリゴンのペアを探し、対角線の向きを変える。極端に伸びている三角形を減らし、均一化することができる。For-Loop SOPで何回も繰り返すと、さらに整う。処理の流れWrangleをつなぎ、一番長い辺が隣り合う三角形のペアをつくり、イ...
スポンサーリンク