●三角形の例(図11.1-8) triangle{<-1,-1,0>,<1,-1,0>,<0,1.23,0> pigment{checker White*1.2, color rgb<1,0.2,0.2>*1.2 scale 0.5} finish{phong 1 reflection 0.2} rotate <30,30,0> translate z*1 } |
triangle { <CORNER1>, <CORNER2>, <CORNER3> [ OBJECT_MODIFIERS... ] } |
||
triangle | 3角形を指定するキーワード | |
<CORNER1> 〜 <CORNER3> |
3角形の各頂点のx, y, z座標 | |
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |
●スムーズ3角形と普通の3角形の例(図11.1-9a) union{ smooth_triangle{ x, x, y, y, z, z} smooth_triangle{ y, y,-x,-x, z, z} smooth_triangle{-x,-x,-y,-y, z, z} smooth_triangle{-y,-y, x, x, z, z} rotate z*45 translate x*0.8 } union{ triangle{ x, y, z} triangle{ y,-x, z} triangle{-x,-y, z} triangle{-y, x, z} rotate z*45 translate -x*0.8 } |
smooth_triangle { <CORNER1>, <NORMAL1>, <CORNER2>, <NORMAL2>, <CORNER3>, <NORMAL3> [ OBJECT_MODIFIERS... ] } |
||
smooth_triangle | スムーズ3角形を指定するキーワード | |
<CORNER1>〜<CORNER3> | 3角形の各頂点のx, y, z座標 | |
<NORMAL1>〜<NORMEL3> | 各頂点における面の法線ベクトル | |
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |
●多角形の例(図11.1-10) polygon{ 4, <-0.5,-0.5>,<0.5,-0.5>,<0,1.23>,<-0.5,-0.5> pigment{color rgb<0.8,0.8,0.4>*2} rotate x*30 translate <-2,0,1> } polygon{ 13, <-0.2,0.05>,<-0.05,0.05>,<-0.05,0.2>,<0.05,0.2>, <0.05,0.05>,<0.2,0.05>,<0.2,-0.05>,<0.05,-0.05>, <0.05,-0.2>,<-0.05,-0.2>,<-0.05,-0.05>,<-0.2,-0.05>, <-0.2,0.05> pigment{White*2} rotate x*30 translate <-1,0,1> } polygon{ 4, <-0.5,0.5>,<0.5,0.5>,<0,-1.23>,<-0.5,0.5> pigment{color rgb<0.8,0.8,0.4>*2} rotate x*30 translate z*1 } polygon{ 10, <-0.2,0.15>,<0.2,0.15>,<0.2,0.05>,<-0.2,0.05>,<-0.2,0.15>, <-0.2,-0.15>,<0.2,-0.15>,<0.2,-0.05>,<-0.2,-0.05>,<-0.2,-0.15> pigment{White*2} rotate x*30 translate <1,0,1> } polygon{ 8, <-0.5,-0.5>,<0.5,-0.5>,<0,1.23>,<-0.5,-0.5>, <-0.5,0.5>,<0.5,0.5>,<0,-1.23>,<-0.5,0.5> pigment{color rgb<0.8,0.8,0.4>*2} rotate x*30 translate <2,0,1> } |
polygon { TOTAL_NUMBER_OF_POINTS, <A_1>, <A_2>, ..., <A_na>, <A_1>, <B_1>, <B_2>, ..., <B_nb>, <B_1>, <C_1>, <C_2>, ..., <C_nc>, <C_1>, ... [ OBJECT_MODIFIERS... ] } |
||
polygon | 多角形を指定するキーワード | |
TOTAL_NUMBER_OF_POINTS | 多角形を描く点の総数 | |
<A_1>, ..., <A_na>, <A_1>, <B_1>, ..., <B_nb>, <B_1>, <C_1>, ..., <C_nc>, <C_1>, ... |
多角形の各頂点のx, y, z 座標 <A_1>,...、<B_1>, ... 、<C_1>, ... はそれぞれ別の要素図形を描く。 各図形は最初と最後の点を一致させて閉じなければならない。各点は同一平面上に指定しなければならない。2次元ベクトルで指定した場合はx-y平面上に描かれる。偶数個の図形が重なった部分は穴になる。 |
|
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |
●メッシュの例(図11.1-11) mesh{ triangle{x,y,z texture{T_2}} triangle{y,-x,z texture{T_3}} triangle{-x,-y,z texture{T_1}} triangle{-y,x,z texture{T_4}} scale z*0.5 rotate x*30 translate z*0.5 } |
mesh { triangle{ ITEM_V [uv_vectors ITEM_UV] [texture { TEXTURE_IDENTIFIER } ] } | smooth_triangle{ ITEM_VN [uv_vectors ITEM_UV] [texture { TEXTURE_IDENTIFIER } ] } [ inside_vector <direction> ] [ hierarchy on|off ] [ OBJECT_MODIFIER... ] } ここで ITEM_V : <Corner_1>, <Corner_2>, <Corner_3> ITEM_UV : <uv_Corner_1>, <uv_Corner_2>, <uv_Corner_3> ITEM_VN: <Corner_1>, <Normal_1>, <Corner_2>, <Normal_2>, <Corner_3>, <Normal_3> |
||
mesh | メッシュを指定するキーワード | |
triangle | 3角形の指定。 ⇒「11.1-8 3角形」 | |
smooth_triangle | スムーズ・トライアングルの指定 ⇒「11.1-9 スムーズ3角形」 | |
uv_vectors | UVマッピング用の2次元ベクトルの指定 | |
texture | テクスチャの指定 | |
inside_vector | CSG論理演算における内外判定用ベクトルの指定 | |
hierarchy | 階層バウンディングをon/offにするスイッチ、[ディフォルト:on ] | |
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |
●メッシュ2の例(図11.1-12) mesh2 { vertex_vectors { 9, <0,0,0>, <0.5,-0.2,0>, <0.5,0.5,0.3>, <1,0,0>, <1.2,0.5,0>, <1,1,0>, <0.5,1.2,0>, <0,1,0>, <-0.2,0.5,0> } face_indices { 8, <0,1,2>, <1,3,2>, <3,4,2>, <4,5,2>, <5,6,2>, <6,7,2>, <7,8,2>, <8,0,2> } texture {T_Grnt23} } |
mesh2{ vertex_vectors { ITEM_VERTEX } [ normal_vectors { ITEM_NORMAL_V } ] [ uv_vectors { ITEM_UV_V } ] [ texture_list { ITEM_TLIST } ] face_indices { ITEM_FACE } [ normal_indices { ITEM_NORMAL_I } ] [ uv_indices { ITEM_UV_I } ] [ inside_vector <direction> ] [ OBJECT_MODIFIERS... ] } ここで ITEM_VERTEX:number_of_vertices, <vertex1>, <vertex2>, ... ITEM_NORMAL_V:number_of_normals, <normal1>, <normal2>, ... TEM_UV_V:number_of_uv_vectors, <uv_vect1>, <uv_vect2>, ... ITEM_TLIST:number_of_textures, texture { Texture1 }, texture { Texture2 }, ... } ITEM_FACE:number_of_faces, <index_a, index_b, index_c> [,texture_index [, texture_index, texture_index]], <index_d, index_e, index_f> [,texture_index [, texture_index, texture_index]], ... ITEM_NORMAL_I:number_of_faces, <index_a, index_b, index_c>, <index_d, index_e, index_f>, ... ITEM_UV_I:number_of_faces, <index_a, index_b, index_c>, <index_d, index_e, index_f>, ... |
||
mesh | メッシュ2を指定するキーワード | |
vertex_vectors | 3角形の頂点となる各点の指定 | |
normal_vectors | 各点の法線ベクトルの指定 | |
uv_vectors | 各点のUVマッピング用の2次元ベクトルの指定 | |
texture_list | テクスチャリストの指定 | |
face_indices | 各点の番号で各3角形を指定 | |
normal_indices | 各点の番号でスムージングする各3角形を指定 | |
uv_indices | 各ベクトル番号で各3角形のUVマッピング用ベクトルの指定 | |
inside_vector <direction> | CSG論理演算における内外判定用ベクトルの指定 | |
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |
●簡易回転体の例(図11.1-13) sor{ 13, <0,0><0.5,0.01>,<0.5,0.1>,<0.4,0.11>,<0.4,0.2>, <0.3,0.21>,<0.3,1.89>,<0.4,1.9>,<0.4,1.99>, <0,2>,<0.3,2.2>,<0,2.4>,<0,2.5> sturm pigment{color rgb<1.0,0.8,0.3>} finish{phong 1 reflection 0.2} rotate x*90 } |
sor { NUMBER_OF_POINTS, <POINT_0>, <POINT_1>, ..., <POINT_n-1> [ open ] [ sturm ] [ OBJECT_MODIFIERS... ] } |
||
sor | 回転体を指定するキーワード | |
NUMBER_OF_POINTS | 曲線を描く点の数を指定 | |
<POINT_0> 〜 <POINT_n-1> |
曲線を描く各点のx, y座標の指定をする。 x は回転の半径、y は高さとなる。元になる曲線は、3次スプラインで描かれる。 スプライン曲線については「11.1-14 回転体:スプライン曲線について」を参照。最初の点と最後の点は、曲線の始まりと終わりの傾きの制御点となる。ある高さに2つ以上の半径を指定することはできない。つまり、y座標の値は常に増加しなければならない。 | |
open | 回転体の両端面を取り除く指定、openを使用した回転体はCSGでは適切に描かれない場合がある。 | |
sturm | 形状が正しく描かれない場合に、時間をかけて正確に計算をする指定 | |
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |
●回転体の例(図11.1-14a) lathe{ linear_spline 10, <1,0>,<1,0.1>,<0.5,0.4>,<1,1.5>,<0.5,2>, <0.4,2>,<0.9,1.5>,<0.4,0.4>,<0.8,0>,<1,0> pigment{color rgb<1,0.8,0.3>} finish{phong 1 reflection 0.1} rotate x*90 scale<0.5,0.5,1> translate x*-1.5 } lathe{ quadratic_spline 11, <1,0>,<1,0.1>,<0.5,0.4>,<1,1.5>,<0.5,2>, <0.4,2>,<0.9,1.5>,<0.4,0.4>,<0.8,0>,<1,0>,<1,0.1> pigment{color rgb<0.8,1,0.3>} finish{phong 1 reflection 0.1} rotate x*90 scale<0.5,0.5,1> } lathe{ cubic_spline 12, <1,0>,<1,0.1>,<0.5,0.4>,<1,1.5>,<0.5,2>, <0.4,2>,<0.9,1.5>,<0.4,0.4>,<0.8,0>,<1,0>,<1,0.1>,<0.5,0.4> pigment{color rgb<0.3,0.8,1>*1.5} finish{phong 1 reflection 0.1} rotate x*90 scale<0.5,0.5,1> translate x*1.5 } |
lathe { [ linear_spline | quadratic_spline | cubic_spline | bezier_spline ] NUMBER_OF_POINTS, <P_1>, <P_2>, ..., <P_n> [ sturm ] [ OBJECT_MODIFIERS... ] } |
||
lathe | 回転体を指定するキーワード | |
linear_spline | 1次スプラインの指定、すべての点が直線で結ばれる。 | |
quadratic_spline | 2次スプラインの指定、曲線の始まりの傾きを制御できる。 | |
cubic_spline | 3次スプラインの指定、曲線の始まりと終わりの傾きを制御できる。 | |
bezier_spline | bezierスプラインの指定 | |
NUMBER_OF_POINTS | 曲線を形成する点の個数 | |
<P_1> 〜 <P_n> | 曲線を形成する各点のx, y座標 | |
sturm | 形状が正しく描かれない場合に、時間をかけて計算を正確にする指定(2次スプラインのみ) | |
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |
●角柱の例(図11.1-15) prism{linear_sweep linear_spline 0,2,14, <-1,-1>,<-0.5,-0.5>,<0.5,-0.5>,<1,-1>, <1,1>,<0.5,0.5>,<-0.5,0.5>,<-1,1>,<-1,-1>, <-0.75,-0.3>,<0.75,-0.3>,<0.75,0.3>,<-0.75,0.3>,<-0.75,-0.3> translate <-2.5,-1,2> } prism{linear_sweep quadratic_spline 0,2,16, <-1,-1>,<-0.5,-0.5>,<0.5,-0.5>,<1,-1>,<1,1>,<0.5,0.5>,<-0.5,0.5>,<-1,1>, <-1,-1>, <-0.5,-0.5>,<-0.75,-0.3>,<0.75,-0.3>,<0.75,0.3>,<-0.75,0.3>,<-0.75,-0.3>,<0.75,-0.3> translate <0,-1,2> } prism{linear_sweep cubic_spline 0,2,18, <-1,-1>,<-0.5,-0.5>,<0.5,-0.5>,<1,-1>,<1,1>,<0.5,0.5>,<-0.5,0.5>,<-1,1>,<-1,-1>, <-0.5,-0.5>,<0.5,-0.5>,<-0.75,-0.3>,<0.75,-0.3>,<0.75,0.3>,<-0.75,0.3>,<-0.75,-0.3>, <0.75,-0.3>,<0.75,0.3> translate <2.5,-1,2> } prism{conic_sweep linear_spline 0.5,1,14, <-1,-1>,<-0.5,-0.5>,<0.5,-0.5>,<1,-1>,<1,1>,<0.5,0.5>,<-0.5,0.5>,<-1,1>,<-1,-1>, <-0.75,-0.3>,<0.75,-0.3>,<0.75,0.3>,<-0.75,0.3>,<-0.75,-0.3> rotate x*-90 rotate z*-15 translate <-2.3,-2,1> } prism{conic_sweep quadratic_spline 0.3,1,16, <-1,-1>,<-0.5,-0.5>,<0.5,-0.5>,<1,-1>,<1,1>,<0.5,0.5>,<-0.5,0.5>,<-1,1>,<-1,-1>, <-0.5,-0.5>,<-0.75,-0.3>,<0.75,-0.3>,<0.75,0.3>,<-0.75,0.3>,<-0.75,-0.3>,<0.75,-0.3> rotate x*-90 rotate z*-15 translate <0,-2,1> } prism{conic_sweep cubic_spline 0,1,18, <-1,-1>,<-0.5,-0.5>,<0.5,-0.5>,<1,-1>,<1,1>,<0.5,0.5>,<-0.5,0.5>,<-1,1>, <-1,-1>, <-0.5,-0.5>,<0.5,-0.5>,<-0.75,-0.3>,<0.75,-0.3>,<0.75,0.3>,<-0.75,0.3>, <-0.75,-0.3>, <0.75,-0.3>,<0.75,0.3> rotate x*-90 rotate z*-15 translate <2.3,-2,1> }< |
prism { [ linear_sweep | conic_sweep ] [ linear_spline | quadratic_spline | cubic_spline | bezier_spline ] HEIGHT1, HEIGHT2, TOTAL_NUMBER_OF_POINTS, <POINT_1>, <POINT_2>, ..., <POINT_n> [ open ] [ sturm ] [ OBJECT_MODIFIERS... ] } |
||
prism | 角柱を指定するキーワード | |
linear_sweep | 直線スイープ、スイープの間、要素図形のサイズは変わらない。[デフォルト:linear_sweep ] | |
conic_sweep | 円錐スイープ、スイープの間、要素図形のサイズを縮小していき、角錐状の物体を作る。 | |
linear_spline | 2次元図形に対する1次スプラインの指定、各点は直線で結ばれる。[デフォルト:linear_spline ] | |
quadratic_spline | 2次元図形に対する2次スプラインの指定、曲線の始まりの傾きを制御できる。 | |
cubic_spline | 2次元図形に対する3次スプラインの指定、曲線の始まりと終わりの傾きを制御できる。 | |
bezier_spline | 2次元図形に対するbezierスプラインの指定 | |
HEIGHT1 | スイープの始点のy座標、角柱の底部の高さ | |
HEIGHT2 | スイープの終点のy座標、角柱の頂部の高さ | |
TOTAL_NUMBER_OF_POINTS | スプラインに使用する点の総数 | |
<POINT_1>〜<POINT_n> | スプラインに使用する各点のx, y座標 | |
open | 角柱の両端面を取り除く指定 | |
sturm | 形状が正しく描かれない場合に、時間をかけて正確に計算をする指定(3次スプラインのみ) | |
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |
●球スイープの例(図11.1-16) sphere_sweep { linear_spline, 4, <-0.5,0,0>, 0.1 <-0.5,0,1>, 0.1 < 0.5,0,0>, 0.1 < 0.5,0,1>, 0.1 } |
sphere_sweep { [ linear_spline | b_spline | cubic_spline ] NUM_OF_SPHERES, <CENTER>, RADIUS <CENTER>, RADIUS ... <CENTER>, RADIUS [ tolerance DEPTH_TOLERANCE ] [ OBJECT_MODIFIERS... ] } |
||
sphere_sweep | 球スイープを指定するキーワード | |
linear_spline | 1次スプラインの指定。 各点は直線で結ばれる。 | |
b_spline | B-スプラインの指定 | |
cubic_spline | 3次スプラインの指定。 曲線の始まりと終わりの傾きを制御できる。 | |
NUM_OF_SPHERES | 点数 | |
<CENTER> | 球の中心のx, y, z座標 | |
RADIUS | 球の半径 | |
tolerance DEPTH_TOLERANCE | 許容誤差の設定 [デフォルト:10.e-6 ] | |
OBJECT_MODIFIERS... | 物体の変形・テクスチャなどの指定 |