JSLのすべてのシーンは、少数のグラフィック基本要素から作成されます。これらの基本要素は、複雑なシーンを組み上げるブロックとして機能します。
グラフィックの基本要素はすべて、頂点を指定して実行します。頂点は、単独の点として描かれる場合も、結合されて多角形を構成する場合もあります。基本要素を描くには、基本要素のタイプ、座標、および含まれる頂点のプロパティを指定する必要があります。JSLでは、これらはBeginステートメントとEndステートメントの間に指定します。
scene<<Begin(primitive type);
...(頂点とそのプロパティを指定するコマンド)...
scene<<End();
頂点の座標を指定するには、vertexコマンドを使います。
scene<<Begin(primitive type);
scene<<Vertex(x, y, z);
...
scene<<End();
primitive typeには次のオプションがあります。次の例では、v0、v1などは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();
primitive type=POINTS |
各頂点に点を描きます。 |
|
primitive type=LINES |
複数の線分(連結されていない)を描きます。線分は、v0とv1、v2とv3、以下同様に結んで描かれます。nが奇数の場合、最後の頂点は無視されます。 |
|
primitive type=POLYGON |
点v0、...、vnを頂点とする多角形を描きます。3個以上の頂点がないと、多角形は描かれません。また、指定する多角形は、線が交差しない、凸状の多角形である必要があります。頂点がこれらの条件を満たしていない場合、結果は予期しないものとなります。 |
|
primitive type=TRIANGLES |
頂点をv0、v1、v2、次にv3、v4、v5、以下同様に結んで複数の三角形(それぞれ分離している)を描きます。頂点の数が3の倍数ではない場合、最後の1個または2個の頂点は無視されます。 |
|
primitive type=LINE_STRIP |
v0からv1、次にv1からv2、以下同様に結んで連結する線分を描きます。したがって、n個の頂点を指定するとn-1本の線分が描かれます。頂点が2個以上ないと何も描かれません。線分を指定する頂点に関する制限はないので、線が交差する場合もあります。 |
|
primitive type=LINE_LOOP |
LINE_STRIPとほとんど同じですが、最後の線分は最後の頂点から最初の頂点を結んで描かれ、完全に閉じられます。 |
|
primitive type=QUADS |
頂点をv0、v1、v2、v3、次にv4、v5、v6、v7、以下同様に結んで複数の四辺形(4辺の多角形)を描きます。頂点の数が4の倍数でない場合、最後の1~3個の頂点は無視されます。 |
|
primitive type=QUAD_STRIP |
頂点をv0、v1、v3、v2、次にv2、v3、v5、v4、その次にv4、v5、v7、v6、以下同様に結んで複数の四辺形(4辺の多角形)を描きます。頂点の数が少なくとも4個ないと何も描かれません。頂点の数が奇数の場合、最後の頂点は無視されます。 |
|
primitive type=TRIANGLE_STRIP |
頂点をv0、v1、v2、次にv2、v1、v3(順序に注意)、その次にv2、v3、v4、以下同様に結んで複数の三角形(3辺の多角形)を描きます。三角形が同じ方向に向かってすべて描かれ、正しい面が形成されるためには、頂点の順序を適切に指定する必要があります。頂点が少なくとも3個ないと何も描かれません。 |
|
primitive type=TRIANGLE_FAN |
TRIANGLE_STRIPとほとんど同じですが、頂点をv0、v1、v2、次にv0、v2、v3、その次にv0、v3、 v4、以下同様に結びます。 |