gpt4 book ai didi

OpenGL:如何在 glVertex3i 中使用整数

转载 作者:行者123 更新时间:2023-12-04 20:03:38 26 4
gpt4 key购买 nike

glBegin(GL_TRIANGLES);
glVertex3i(100,100,0);
glVertex3i(100,80,0);
glVertex3i(80,80,0);
glEnd();

这些调用不起作用。
只有 glVertex3f 有效,只是不知道为什么。
但在 glVertex3f 中,我只能将浮点数小于 1。
因为如果我放一些大于 1 的浮点数,顶点将超出屏幕。

所以我的问题是,为什么上面的调用不起作用?
我认为primitves超出了边界,但不知道为什么。

最佳答案

如果您没有做任何移动设置投影或 View (例如 gluPerspective/glTranslate etc ),那么默认情况下,您的视口(viewport)将从 x(-1,+1) 到 y(-1,+1),即表示您的屏幕如下所示:

                  y (+1)
+------------------------+
| |
| |
x(-1) | | x(+1)
| |
| |
| |
+------------------------+
y (-1)

屏幕的中心是(0,0)。

如果您的模型的坐标超出 (-1,+1) 范围,那么您需要将其缩小到该范围。所以如果你在 glBegin 之前调用它,你的三角形应该会出现。 :
glScalef(0.01, 0.01, 0.01);

这意味着“使一切 1/100 小倍,因此您的三角形将适合 (-1,1) 视口(viewport)”。

您应该阅读转换/投影等。您可以在 google 上搜索,或尝试以下链接之一:
  • http://glprogramming.com/red/chapter03.html
  • http://www.falloutsoftware.com/tutorials/gl/gl5.htm
  • 关于OpenGL:如何在 glVertex3i 中使用整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772312/

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