// Introduction to Computing II // - Animation script syntax // - World and camera // // version.a 2010/10/25 kameda[at]iit.tsukuba.ac.jp // ----------------------------------------------------------------- // [1] 物体モデル記述ファイルの仕様書 (例:ic2-object.txt) // // 1行で1つのデータを表現する。 // 2行以上に跨るデータ表現はないものとする。 // 以下,各行のフォーマットについて説明する。 // // --- space and comment --- // // 空白行 // 空白行は何も実行に影響しない. // // #: // コメント (その行は行端まで無視される) // # You can write any comments after #. // // --- object --- // // O: [Object] // O // 物体のデータのはじまりを宣言 // 登録順に基いて1からObjectIDを付与 // (ObjectID=0は「直前の物体」を示す特別予約番号) // // L: [Line] // L x0 y0 z0 x1 y1 z1 r g b w // 線分の登録 // x0, y0, z0: 始点 // x1, y1, z1: 終点 // r,g,b : 色(R,G,B)は0.0-1.0で指定 // 線の太さはwで指定(基本は1.0) // // P: [Patch] // P x0 y0 z0 x1 y1 z1 x2 y2 z2 r g b // 三角形の登録 // x0, y0, z0: 頂点0 // x1, y1, z1: 頂点1 // x2, y2, z2: 頂点2 // パッチの外側(法線ベクトル)は0,1,2の順で右ネジの法則により決定 // // ----------------------------------------------------------------- // [2] アニメ―ション記述ファイルの仕様書 (例:ic2-animation.txt) // // 行の記述と空白行、コメント行については[1]と同じ。 // // --- animation --- // // A: [Animation] // A ObjectID step interval tx ty tz rx ry rz sx sy sz // 世界座標系に対する物体座標系の移動・回転・伸縮の操作を示す // tx,ty,tz: 平行移動 // rx,ry,rz: 回転(軸回り) [degree] // sx,sy,sz: 拡大縮小 // step : アニメーションにかける回数 // interval: (アニメーション1ステップにかける時間) // 同時指定した場合の演算はプログラム上の出現順序で // 平行移動、回転(X,Y,Z軸周りの順),拡大縮小 // の通り // (物体座標系から世界座標系への変換は逆順) // // C: [animation Continued] // C ObjectID step interval tx ty tz rx ry rz sx sy sz // 世界座標系に対する物体座標系の移動・回転・伸縮の操作に加えて、 // 物体の変形を表現する // (1) 移動・回転・伸縮 // A:と同じ // (2) 変形 // ObjectIDが前のAnimation(A行ないしC行)と異なる場合は、 // 変形操作を表す // 変形操作時の物体間の対応関係は、LとPのそれぞれの出現順 // なお、この(1)(2)は同時に行われる。 // // ----------------------------------------------------------------- // [3] 光源記述ファイルの仕様書 (例:ic2-light.txt) // // 行の記述と空白行、コメント行については[1]と同じ。 // // --- light --- // // S: [light Source] // S px py pz dr dg db sr sg sb // 光源を規定する(OpenGLの仕様によりここでは最大で8個まで) // px,py,pz 世界座標内の光源位置 // dr,dg,db 拡散反射光の強さ(Red,Green,Blue)で0.0-1.0 // sr,sg,sb 鏡面反射光の強さ(Red,Green,Blue)で0.0-1.0