16Houdini xyzdistとprimuvについて
xyzdistとprimuvについて調べました。
xyzdistはジオメトリと指定した座標から一番近いprimitive番号・面までの距離・UVが取得できます。
primuvは指定したジオメトリとアトリビュート名とprimitive番号とuvからアトリビュート名で指定された値を取得できます。
xyzdistとprimuvを使うと、指定した座標から最近点のprimitive情報が取得できます。
以下がリファレンスです。
http://www.sidefx.com/docs/houdini15.0/vex/functions/xyzdist
http://www.sidefx.com/docs/houdini15.0/vex/functions/primuv
0番目のPointが任意の点で1番目の点が最近点です。
wrangleのコードはこのようになっています。
int NearPrim=-1;
vector NearPrimUV;
float dist=xyzdist(@OpInput2, @P,NearPrim,NearPrimUV);
vector near_pos = primuv(@OpInput2, "P", NearPrim, NearPrimUV);
addpoint(geoself(),near_pos);
printf("%d %g\n",NearPrim,NearPrimUV);