まずglutSolidCubeを忘れてしまいます。 GLUTはOpenGLの一部ではありませんが、それはちょっとした便利なライブラリです。
OpenGLの点、線、トランラングルのみの取引を理解する必要があります。シーンを維持するのではなく、単に点、線、三角形を描画するだけです。トポロジーの意味を一切持たない独自のものです。また、数学ライブラリではOpenGLを混同しないでください。関数glTranslate、glRotate、glScaleなどは純粋な遺産であり、現在のOpenGLバージョンから削除されています。言われて...
が、私は(角度でだから)0,0,0の方に見て、5,5,20にカメラを持っていたし、5でキューブを配置したかったと言う
2,10、次に-5、-2,20である。これらの絶対的なポジションはどのように使用しますか?また、どのように私は絶対的なサイズを使用すると、私は-5と-2,20のサイズを20,5,10にしたかったと言います。私はOpenGLでこれをどのようにしますか?
私はあなたがすでに(旧OpenGLの-1.1とGLUTをMANSた)知っているものと一緒に行くよ:
void draw()
{
/* Viewport and projection really should be set in the
drawing handler. They don't belong into the reshape. */
glViewport(...);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
your_projection();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(5, 5, 20, 0, 0, 0, 0, 1, 0);
glPushMatrix();
glTranslatef(5, 2, 10);
draw_cube();
glPopMatrix();
glPushMatrix();
glTranslatef(-5, -2, 20);
draw_cube();
glPopMatrix();
glPushMatrix();
glTranslatef(-5, -2, 20);
glScalef(20, 5, 10);
draw_cube();
glPopMatrix();
}
ああ、完璧。ありがとう。私はちょうどglTranslatefを使っていました。それはなぜうまくいかなかったのでしょうか、Translate3fは正しく見えます。ありがとう! – user1150512
glTranslate3fもglRotate3fもありません。 – datenwolf
おっと、私の間違い...多分私は 'glColor3f()'やそれに似たものと混乱しているかもしれません。 – 0605002