三角形を作成する

プリミティブを理解する上での基本ですね。

VEXで作成する

// Run Over: Detail

// プリミティブを作る
int prim = addprim(0, "poly");
 
// ポイントを生成
int pt1 = addpoint(0, set(-1,0,0));
int pt2 = addpoint(0, set(0,2,0));
int pt3 = addpoint(0, set(1,0,0));
 
// ポイントにアトリビュートを設定
setpointattrib(0, "N", pt1, set(0,0,1));
setpointattrib(0, "N", pt2, set(0,0,1));
setpointattrib(0, "N", pt3, set(0,0,1));
 
// ポリゴンにポイントを加える
addvertex(0, prim, pt1);
addvertex(0, prim, pt2);
addvertex(0, prim, pt3);

addprimの引数”poly”を”polyline”にすればポリラインに変わる。時計回りで描くとポリゴンが表になる。

Python SOPで作成する

同じ内容をPythonで書くとこのようになる。

# pointに新しくアトリビュートをつくる
geo.addAttrib(hou.attribType.Point, "N", (0,0,0))

prim = geo.createPolygon()
#prim = geo.createPolygon(False) # ポリラインならFalse

pt1 = geo.createPoint()
pt1.setPosition((-1,0,0))
pt1.setAttribValue("N", (0, 0, 1))

pt2 = geo.createPoint()
pt2.setPosition((0,2,0))
pt2.setAttribValue("N", (0, 0, 1))

pt3 = geo.createPoint()
pt3.setPosition((1,0,0))
pt3.setAttribValue("N", (0, 0, 1))

prim.addVertex(pt1)
prim.addVertex(pt2)
prim.addVertex(pt3)

環境:Houdini 19.5.752

タイトルとURLをコピーしました