- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经在简单的即时模式下使用 OpenGL 一段时间了,并且正在尝试转到带有显示列表的保留模式(遗憾的是我得知它已经被弃用了一段时间)。我想知道的是,我何时输入:
glNewList(list, GL_COMPILE);
glBegin(GL_TRIANGLE_FAN);
glVertex2f(0.0f, 0.0f);
for (int i = 0; i < 10; i++)
{
glVertex2f(radius * cos(i * 2.0f * PI / 9.0f), radius * sin(i * 2.0f * PI / 9.0f));
}
glEnd();
glEndList();
OpenGL是否预先计算好for循环中的所有10个顶点,然后将它们发送给baked的显卡,如:
glVertex2f(0.5f, 0.0f);
glVertex2f(0.499f, 0.0055f);
//so and so forth 10 times...
或者它是否尝试对每一帧都执行 for 循环(以及许多 sin/cos 操作)?换句话说,在显示列表中存储这样一个圆形是否合理(其余的使用 glTranslatef、glRotatef 等...)以避免在每个帧更新中进行三角函数运算,还是根本没有性能提升?
编辑:为了避免混淆,我打算使用 for 循环创建一次此显示列表,然后在每个帧更新中通过 glCallList(list) 调用它(即 glutDisplayFunc( ))。我不会为每一帧都创建一个列表。
最佳答案
显示列表(以及它所提供的即时模式渲染)是古老的弃用功能,底层机制取决于驱动程序,有些人可能会将其返回到绘制数组调用中,而其他人只会使用它的参数重播调用明白了,实际上没有重新执行您的代码。
相反,您应该通过将数据放入 VBO 并使用 glDrawArrays
来明确地进行烘焙。
关于c++ - OpenGL 显示列表是否烘焙 glVertex 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28048881/
所以我最近开始学习 JOGL,因为我对 Vanillla Java 感到无聊,因为我没有想到任何想法。我已经学会了如何画三角形、线条和一切简单的东西,但还有一些我不明白的地方。什么是 opengl 测
Imagen 我有一个 2D 点 (x,y) 列表,它们在我的简单游戏中描述了 2D 地形。 然后我让 glVertex() 在 GL_POINTS 模式下绘制所有这些点。 然后我有一个球,它也有它的
我已经在简单的即时模式下使用 OpenGL 一段时间了,并且正在尝试转到带有显示列表的保留模式(遗憾的是我得知它已经被弃用了一段时间)。我想知道的是,我何时输入: glNewList(list, GL
我是一名优秀的程序员,十分优秀!