1-) 为什么在 reshape 函数中使用 gluperspective 函数?
因为这样的代码通常是由不懂 OpenGL 的白痴编写的。设置矩阵(全部)属于绘图代码。
2-) reshape 函数的真正作用是什么?当我使用重塑功能运行程序时,没有它,什么都没有真正改变。
reshape函数的正确使用是执行一次窗口大小变化时需要做的操作。例如,在后处理 FBO 等中重新初始化用作目标的纹理。如果您只是在屏幕上绘制一个三角形,则不需要重塑处理程序。
3) 何时调用 reshape 函数?如果仅在我们更改窗口大小时调用它,(...)
在创建窗口时也会调用它,因为这可以有效地将窗口从无到有调整为某个矩形。
这意味着如果我不更改窗口的大小,则不会调用 reshape 函数,因此不会调用 gluperspective。
创建一个新窗口也会(重新)调整它的大小。
但是不需要至少调用一次 gluperspective 吗?
如果您的愿望是 gluPerspective 投影,那么可以。从技术上讲,您必须做的是设置一些投影变换,这也可能是一个身份。
但不要在重塑处理程序中设置它。这样做属于绘图代码。
和愚蠢的问题
其实这些都是很好的问题。它们表明您实际上在考虑代码。我希望更多的人这样做:) 继续努力。