数学

線分と点の距離

線分ABと点Pの最短距離と交点を求めるには内積を使う。片方のベクトルが正規化されていた場合、内積の値が投影した長さになることを利用する。Aと点Pを結んだベクトルAPと、ベクトルABを正規化したベクトルabの内積はdになる。これによってA+a...
数学

表面積の計算

外積を使うことで三角形の表面積を計算することができる。Divide SOPですべてのプリミティブを事前に三角形に分割しておく。// Run Over: Detailfloat sum = 0;for(int i = 0; i < nprim...
テクスチャー

テクスチャーの転写

UVのジオメトリの違うメッシュにテクスチャーを転写する方法Simple Baker SOPを使う。左にローモデル(転写先)、右にハイモデル(転写元)をつなぐ。転写元にはマテリアルを設定しておく。
Polyline

点と多角形の内外判定(Winding-Numberアルゴリズム)

概要点が多角形に含まれているか否かはWinding Numberアルゴリズムを使って判定できる。多角形の各頂点を周回して得られる角度の合計が、もし内側にある場合は360度になり、外側の場合は0度になる。コード調べるポイントごとの処理。inp...
VEX

VEXでの文字列操作

文字が含まれているかチェックstring name = "abcdefghijk";int flag = find(name, "cdef");printf(sprintf('%g', flag) + '\n');// 2find関数で文字...
Python

フォルダ内のFBXファイルを一括で読み込む

GeometryノードにUIをつくる。パスとコードとボタンを配置する。Multi-Line Stringにチェック。Callback Scriptにコードを書き込むexec(hou.node(".").parm("code").eval()...
VEX

バウンディングボックス

ExpressionD_XMIN: X軸の最小値D_YMIN: Y軸の最小値D_ZMIN: Z軸の最小値D_XMAX: Z軸の最大値D_YMAX: Y軸の最大値D_ZMAX: Z軸の最大値D_XSIZE: X軸のサイズD_YSIZE: Y軸...
Python

FBXの連番書き出し

Null SOPなどを使い、ボタンを押すとPythonコードを実行できるようにする。Pythonコードを実行するノードの作成node = hou.pwd()geo = node.geometry()import hounode = hou....
Python

WEBから画像を読み込む

WEBのURLから画像を読み込んで画素をポイントとして並べるPythonコード。Pythonの画像処理ライブラリPillowを使って上の画像を読み込む。Python SOPをつくり、以下のコードを書く。node = hou.pwd()geo...
Polyline

プリミティブのアトリビュートとグループを転写する

プリミティブのアトリビュートを転写する//// アトリビュートのコピー//// RunOver:Primitive//int targetPrim = 0; // コピー先のインデックスint sourceInput = 1; // 参照す...
スポンサーリンク