OpenGL、コンピュータグラフィックに詳しい方宜しくお願いします。
頂点の位置情報から正二十面体を描きたいです。
http://www.h6.dion.ne.jp/~ooya/Suugaku/Seitamentai.pdf
上記のページを参考に頂点12個と三角形20個から正二十面体を作成しようとしました。
しかし、三角形は頂点で結びつくことなく、交差してしまっています。
上のスクリーンショットのようになりました。どこが問題なのか教えて下さい。
宜しくお願いします。
・座標の問題でしょうか?
・描画方法の問題でしょうか?
以下、OpenGLのソースコードの一部です。
//12個の頂点 float x = 1.618f;//((1 + Math.sqrt(5)) * 0.5) private final float[] VertexData = new float[]{ 0.0f, -1.0f, -x, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 1f,0f, //#0 //最初の3つが頂点座標 0.0f, 1.0f, -x, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 1f,0f, //#1 0.0f, -1.0f, x, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 1f,1f, //#2 0.0f, 1.0f, x, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 0f,1f, //#3 -x, 0.0f, -1.0f, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 0f,0f, //#4 -x, 0.0f, 1.0f, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 1f,0f, //#5 x, 0.0f, -1.0f, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 1f,0f, //#6 x, 0.0f, 1.0f, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 1f,1f, //#7 -1.0f, -x, 0.0f, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 0f,1f, //#8 1.0f, -x, 0.0f, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 0f,0f, //#9 -1.0f, x, 0.0f, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 1f,0f, //#10 1.0f, x, 0.0f, 0.0f, 0.0f,-1.0f, 1f,0f,0f,1f, 0f,1f //#11 };//position(x,y,z) normal color texcoord //20個の三角形 private final int[] ElementData = new int[]{ 1,2,7, 2,1,5, 3,4,6, 4,3,8,// 5,6,11, 6,5,9, 7,8,10, 8,7,12,// 9,10,3, 10,9,1, 11,12,2, 12,11,4,// 1,7,10, 1,9,5, 2,5,11, 2,12,7,// 3,6,9, 3,10,8, 4,8,12, 4,11,6 };
注意:GLUTなどの関数は用いずに作成したいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。