0

我是OpenGL的新手。我读了简单的代码。我有三个问题。

1-) 为什么在 reshape 函数中使用 gluperspective 函数?

2-) reshape 函数的真正作用是什么?当我使用重塑功能运行程序时,没有它,什么都没有真正改变。

3) 何时调用 reshape 函数?如果仅在我们更改窗口大小时调用它,这意味着如果我不更改窗口大小,则不会调用 reshape 函数,因此不会调用 gluperspective。但是不需要至少调用一次 gluperspective 吗?

抱歉英语不好,还有愚蠢的问题。

4

1 回答 1

0

1-) 为什么在 reshape 函数中使用 gluperspective 函数?

因为这样的代码通常是由不懂 OpenGL 的白痴编写的。设置矩阵(全部)属于绘图代码。

2-) reshape 函数的真正作用是什么?当我使用重塑功能运行程序时,没有它,什么都没有真正改变。

reshape函数的正确使用是执行一次窗口大小变化时需要做的操作。例如,在后处理 FBO 等中重新初始化用作目标的纹理。如果您只是在屏幕上绘制一个三角形,则不需要重塑处理程序。

3) 何时调用 reshape 函数?如果仅在我们更改窗口大小时调用它,(...)

在创建窗口时也会调用它,因为这可以有效地将窗口从无到有调整为某个矩形。

这意味着如果我不更改窗口的大小,则不会调用 reshape 函数,因此不会调用 gluperspective。

创建一个新窗口也会(重新)调整它的大小。

但是不需要至少调用一次 gluperspective 吗?

如果您的愿望是 gluPerspective 投影,那么可以。从技术上讲,您必须做的是设置一些投影变换,这也可能是一个身份。

但不要在重塑处理程序中设置它。这样做属于绘图代码。

和愚蠢的问题

其实这些都是很好的问题。它们表明您实际上在考虑代码。我希望更多的人这样做:) 继续努力。

于 2013-02-16T18:49:13.833 回答