gpt4 book ai didi

c++ - Opengl - 为什么 glTranslatef 在编码时首先出现,然后是 glutwiresphere

转载 作者:行者123 更新时间:2023-11-30 02:50:59 25 4
gpt4 key购买 nike

在开始之前,我要感谢 stackoverflow 社区成员提供的 super 快速和准确的答案。

我看到了一个示例,并在此处附加了代码的摘录

   glPushMatrix();
glTranslatef (0.0, 0.0, -5.0);


/* clip lower half -- y < 0
glClipPlane (GL_CLIP_PLANE0, eqn);
glEnable (GL_CLIP_PLANE0);
/* clip left half -- x < 0
glClipPlane (GL_CLIP_PLANE1, eqn2);
glEnable (GL_CLIP_PLANE1);
*/

glRotatef (90.0, 1.0, 0.0, 0.0);
glutWireSphere(1.5, 20, 15);
glPopMatrix();
glFlush ();

我怀疑在实际形成线球之前我们正在“平移”和“旋转”什么。确切地说,为什么 glRotate()glTranslate() 出现在 glutWireSphere 之前?

最佳答案

OpenGL 不是场景图。其中没有“对象”之类的东西。没有什么可以“形成”的。 OpenGL 只知道绘制到像素帧缓冲区 Canvas 上的点、线和三角形。 (为什么我没有存储该序言的模板,我会在每个第二个 OpenGL 答案中写下它。)

您已经使用 OpenGL 绘制了一些东西,仅此而已。 OpenGL 不会记住它。所以 OpenGL 所做的是,它将通过变换步骤绘制的点、线或三角形的坐标和结果数字告诉在屏幕上的何处绘制。显然必须在绘制之前设置转换。

关于c++ - Opengl - 为什么 glTranslatef 在编码时首先出现,然后是 glutwiresphere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20016996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com