0
私のプロジェクトでは球を描く必要があります(半球は大丈夫かもしれません)。この目的のために、sin()とcos()メソッドを使って(x、y)座標の角度を計算しました。しかし、この方法に従えば、自分のプロジェクトのパフォーマンスに打撃を与えていると感じます。誰でも簡単なgl関数を使って球体を描く手助けができますか?OpenGL:gl関数を使って球/円を描くのに役立つ
Iは、構造定義以下のように:I(x、y)は座標を格納する配列を作成する以下の方法で
typedef struct
{
float x;
float y;
}Semi_Sphere;
Semi_Sphere Sky_SemiSphere[180000], Grnd_SemiSphere[180000];
を。このメソッドはmain()関数で呼びます。
void createSemi_Sphere_Table (void)
{
float angle_d = 1.1f, angle_r=0.0;
float const Gl_Pi = 3.14;
int i = 0;
while (angle_d < 11.0)
{
angle_r = Gl_Pi/angle_d;
Sky_SemiSphere[i].y = 1.0f + (((3.50)*sin(angle_r)));
Sky_SemiSphere[i].x = ((3.7)*cos(angle_r)) - 0.52f;
angle_d = angle_d + 0.001;
i = i+1;
}
}
次に、以下の方法でこれらの(x、y)座標を使用して球を描画します。 drawScene()メソッドのdrawSemi_Sphere_Grnd()メソッドを呼び出します。
void drawSemi_Sphere_Grnd (void)
{
int L_Index = 0;
glPushMatrix();
for (L_Index = 0; L_Index < 9750; L_Index++)
{
glBegin(GL_LINES);
glVertex2f(Grnd_SemiSphere[L_Index].x, Grnd_SemiSphere[L_Index].y);
glVertex2f(-1.0f, -2.1f);
glEnd();
}
glPopMatrix();
}
上記の手順では球が得られます。しかし、パフォーマンスは遅いです。
お返事ありがとうございます。私は "バッファオブジェクト"に関するいくつかの詳細を教えてくれますか? –