C++ glut glew speed?
C++ glut glew speed?
好吧,所以我不知道我是愚蠢还是什么。
但当我运行我的应用程序而不画任何东西时,我会得到大约6k FPS。
当绘制大约150-200个点(从obj)时,它只有800。。。如果我添加字体渲染,它会更低。
我不知道这是否正常,但我不知道你应该如何渲染整个游戏世界。如果只有150-200分可以把它降到那个低点。我还尝试了渲染大约4k点=>FPS=80
以下是我的objs渲染方法:
void Render::RenderOBJVBO(OBJData data)
{
if(data.RenderID == 0) return;
glBindBufferARB(GL_ARRAY_BUFFER, data.RenderID);
glVertexPointer(3, GL_FLOAT, sizeof(float) * 8, (GLvoid*)(sizeof(float) * 5));
glNormalPointer(GL_FLOAT, sizeof(float) * 8, (GLvoid*)(sizeof(float) * 2));
glTexCoordPointer(2, GL_FLOAT, sizeof(float) * 8, (GLvoid*)0);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glDrawArrays(GL_TRIANGLES, 0, data.F.size() * 3);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glBindTexture(GL_TEXTURE_2D, 0);
}
这是OBJData:
class OBJData
{
public:
OBJData(void){}
~OBJData(void){}
std::vector<OBJFace> F;
std::vector<Vector3f> V;
std::vector<Vector3f> VN;
std::vector<Vector3f> VT;
int RenderID;
};
最后是OBJFace:
class OBJFace
{
public:
OBJFace(void){}
~OBJFace(void){}
Vector3f verts;
Vector3f norms;
Vector3f textures;
OBJFace(Vector3f v, Vector3f n, Vector3f t)
{
verts = v;
norms = n;
textures = t;
}
};
所以我的问题是:这正常吗?如果没有,是什么原因导致了这个问题
规格:
操作系统:Windows 8 64位
CPU:英特尔酷睿i5 760@2.80GHz
RAM:4gb
图形:ATI Radeon HD 48000系列
屏幕:1920x1080@60Hz
void Render::RenderOBJVBO(OBJData data)
应该是
void Render::RenderOBJVBO(OBJData & data)
或者更好的
void Render::RenderOBJVBO(const OBJData & data)
否则,每次调用RenderOBJVBO
都会创建一个新的OBJData
副本
相关文章:
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- 为什么需要检查 GLAD 或 GLEW 是否正确初始化?
- 现代OpenGL和GLEW Libraray的编译错误
- 使用 CMake 和 Visual Studio 2019 编译 GLEW?
- 使用 MinGW 在 Windows 上构建 GLEW 时遇到问题
- 无法链接 GLEW 库
- 将源中的 GLEW 与 cmake 静态链接
- OpenGL/Glew C++纹理不适用
- GLEW 未在 MSYS2 上定位 OpenGL 函数
- 在macOS上编译GLEW和GLUT?
- 致命错误 C1083:无法打开包含文件:"GL/glew.h":没有此类文件或目录
- 使用 glew 和 mingw 时未定义的引用?
- 三角形未绘制.C++/GLEW/SDL.
- OpenGL在使用GLEW时崩溃
- 将 glew 与 SDL2 一起使用
- Shared_ptr cast vs static_cast speed
- 将 GLEW 添加到项目 (CMake)
- 未解析的外部符号 glew实验性
- 致命错误:glew.h:使用 make 时没有这样的文件或目录
- C++ glut glew speed?