GLUT:如何制作半径大于1的球体



我正在尝试使用OpenGL制作一个太阳能系统。由于我也有其他行星和卫星,我想让我的太阳半径大于1,地球半径大于1——因为略小于0.18,球体几乎看不见,卫星也无法以适当的大小差绘制。

下面是我的代码,如果我试图制作一个半径>1,它变成了环形。有人能指导我如何使用半径为>的gluSphere制作球体吗;1.

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluOrtho2D(-5.0, 5.0, -5.0, 5.0);
GLUquadric *quad;
quad = gluNewQuadric();
gluQuadricDrawStyle(quad, GLU_FILL);
//Sun
glColor3f(2,1.65, 0);
glPushMatrix();
gluSphere(quad, 1, 20, 20);
glPopMatrix();
//Earth
glColor3f(0, 0, 1);
glTranslated(2.f, 0.f, 0.f);
glPushMatrix();
gluSphere(quad, 0.18, 20, 20);
glPopMatrix();

球体由观察体积的近平面和远平面剪裁(正交投影(。使用glOrtho而不是gluOrtho2D,并增加到近平面和远平面的距离:

gluOrtho2D(-5.0, 5.0, -5.0, 5.0);

glOrtho(-5.0, 5.0, -5.0, 5.0, -5.0, 5.0);

使用正交投影时,视图空间坐标将线性映射到片段空间坐标。观看体积由6个距离(左、右、下、上、近、远(定义。左、右、下、上、近和远的值定义长方体(长方体(。盒子体积内的所有几何体都被投影到二维视口上;可见";。此体积外部的所有几何体都将被剪裁。

相关内容

  • 没有找到相关文章

最新更新