// 球(中心,半径,色, 反射屈折の種類, 屈折率) OR 三角形(点a,点b,点c,色, 反射屈折の種類, 屈折率) OR 平面(平面上の任意の1点a,法線ベクトル,色, 反射屈折の種類, 屈折率) OR 円錐(底面の円の中心,法線ベクトル,底面半径,高さ,色, 反射屈折の種類, 屈折率) のオブジェクトを作成
// 反射屈折の種類は 0ならどちらもなし,1なら反射,2なら屈折することを表している
// 屈折率としては ,空気: refr_air,水: refr_water,氷: refr_ice,ガラス: refr_glass,ダイヤモンド: refr_diamond を設定可能だが,自由に1以上の浮動小数点数を入れてもよい
// 色は反射屈折の種類が 1,2 の場合は関係ないので no_color と設定し,屈折率は屈折の場合以外は関係ないので no_refr と設定する
objects[0] = create_plane(vec3(0,0,-5),vec3(0,0,1),vec3(0.7,0.5,0.4),0,no_refr); // 地面
objects[1] = create_plane(vec3(20,0,-5),vec3(-1,0,1),vec3(0.7,0.5,0.4),0,no_refr); // 地面の延長
objects[2] = create_plane(vec3(-10,0,0),vec3(3,0,-1),background_color,0,no_refr); // 空の背景
objects[3] = create_plane(vec3(-10,0,0),vec3(1,0,0),no_color,1,no_refr); // 鏡
objects[4] = create_triangle(vec3(4,5,0),vec3(4,-3,2),vec3(0,0,-1.1),vec3(1,1,0),0,no_refr); // 黄色の三角
objects[5] = create_triangle(vec3(-1,-8,-1),vec3(-4,-6,-5),vec3(-1,-7,-3.5),vec3(1,0,0),0,no_refr); // 赤の三角
objects[6] = create_sphere(vec3(vec2(0.5-mouse.y,mouse.x-0.5)*10.0,-3.5),1.0,vec3(0.8,0.8,0.8),0,no_refr); // 動く球
objects[7] = create_sphere(vec3(2,3,-3),0.5,vec3(0,0,1),0,no_refr); // 青の球
objects[8] = create_sphere(vec3(1,-2,-0.5),1.0,no_color,1,no_refr); // 水面に浮かぶ鏡の球
objects[9] = create_sphere(vec3(1,-6,-1),2.0,no_color,2,refr_ice); // 水面に浮かぶ氷の球
objects[10] = create_sphere(vec3(2,3,-2.5),2.0,no_color,2,refr_glass); // 水中にあるガラスの球
objects[11] = create_sphere(vec3(9.134,0,-4),1.0,no_color,2,refr_glass); // カメラが通るガラスの球
objects[12] = create_cone(vec3(1,1,-0.5),vec3(0,2,4),3.0,4.0,vec3(0,1,0),0,no_refr); // 緑の円錐
objects[13] = create_cone(vec3(-9,0,0),vec3(0,0,-1),22.0,30.0,no_color,2,refr_water); // 水中
objects[14] = create_cone(vec3(5,-4,-5),vec3(0,-2,4),2.0,3.0,no_color,2,refr_air); // 水中の気泡
objects[15] = create_cone(vec3(6 ,2,-2),vec3(0,0,1),1.0,0.5,no_color,2,refr_diamond); // 水中のダイヤモンドの上側
objects[16] = create_cone(vec3(6 ,2,-2),vec3(0,0,-1),1.0,1.5,no_color,2,refr_diamond); // 水中のダイヤモンドも下側