スクリプトガイド > 3Dシーン > グラフィックの基本要素
公開日: 04/01/2021

グラフィックの基本要素

JSLのすべてのシーンは、少数のグラフィック基本要素から作成されます。これらの基本要素は、複雑なシーンを組み上げるブロックとして機能します。

グラフィックの基本要素はすべて、頂点を指定して実行します。頂点は、単独の点として描かれる場合も、結合されて多角形を構成する場合もあります。基本要素を描くには、基本要素のタイプ、座標、および含まれる頂点のプロパティを指定する必要があります。JSLでは、これらはBeginステートメントとEndステートメントの間に指定します。

scene<<Begin(primitive type);
...(頂点とそのプロパティを指定するコマンド)...
scene<<End();

頂点の座標を指定するには、vertexコマンドを使います。

scene<<Begin(primitive type);
scene<<Vertex(x, y, z);
...
scene<<End();

primitive typeには次のオプションがあります。次の例では、v0v1などはBeginコマンドとEndコマンドの間に指定されているものとします。

scene<<Begin(primitive type);
scene<<Vertex(x0,y0,z0) // 頂点v0を指定する
scene<<Vertex(x1,y1,z1) // 頂点v1を指定する
...
scene<<Vertex(xn,yn,zn) // 頂点vnを指定する
scene<<End();

表13.1 基本要素の種類

primitive type=POINTS

各頂点に点を描きます。

Image shown here

primitive type=LINES

複数の線分(連結されていない)を描きます。線分は、v0v1v2v3、以下同様に結んで描かれます。nが奇数の場合、最後の頂点は無視されます。

Image shown here

primitive type=POLYGON

v0、...、vnを頂点とする多角形を描きます。3個以上の頂点がないと、多角形は描かれません。また、指定する多角形は、線が交差しない、凸状の多角形である必要があります。頂点がこれらの条件を満たしていない場合、結果は予期しないものとなります。

Image shown here

primitive type=TRIANGLES

頂点をv0v1v2、次にv3v4v5、以下同様に結んで複数の三角形(それぞれ分離している)を描きます。頂点の数が3の倍数ではない場合、最後の1個または2個の頂点は無視されます。

Image shown here

primitive type=LINE_STRIP

v0からv1、次にv1からv2、以下同様に結んで連結する線分を描きます。したがって、n個の頂点を指定するとn-1本の線分が描かれます。頂点が2個以上ないと何も描かれません。線分を指定する頂点に関する制限はないので、線が交差する場合もあります。

Image shown here

primitive type=LINE_LOOP

LINE_STRIPとほとんど同じですが、最後の線分は最後の頂点から最初の頂点を結んで描かれ、完全に閉じられます。

Image shown here

primitive type=QUADS

頂点をv0v1v2v3、次にv4v5v6v7、以下同様に結んで複数の四辺形(4辺の多角形)を描きます。頂点の数が4の倍数でない場合、最後の1~3個の頂点は無視されます。

Image shown here

primitive type=QUAD_STRIP

頂点をv0v1v3v2、次にv2v3v5v4、その次にv4v5v7v6、以下同様に結んで複数の四辺形(4辺の多角形)を描きます。頂点の数が少なくとも4個ないと何も描かれません。頂点の数が奇数の場合、最後の頂点は無視されます。

Image shown here

primitive type=TRIANGLE_STRIP

頂点をv0v1v2、次にv2v1v3(順序に注意)、その次にv2v3v4、以下同様に結んで複数の三角形(3辺の多角形)を描きます。三角形が同じ方向に向かってすべて描かれ、正しい面が形成されるためには、頂点の順序を適切に指定する必要があります。頂点が少なくとも3個ないと何も描かれません。

Image shown here

primitive type=TRIANGLE_FAN

TRIANGLE_STRIPとほとんど同じですが、頂点をv0v1v2、次にv0v2v3、その次にv0v3v4、以下同様に結びます。

Image shown here

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).