草庐IT

c++ - 如何为 OpenGL ES 重写 2D OpenGL 应用程序?

我正在开发一款带有Sprite图形的OpenGL2D游戏。最近有人建议我应该使用OpenGLES调用,因为它是OpenGL的一个子集,可以让我更轻松地将它移植到移动平台。大部分代码只是调用draw_image函数,其定义如下:voiddraw_img(floatx,floaty,floatw,floath,GLuinttex,floatr=1,floatg=1,floatb=1){glColor3f(r,g,b);glEnable(GL_TEXTURE_2D);glBindTexture(GL_TEXTURE_2D,tex);glBegin(GL_QUADS);glTexCoord2f

c++ - opengl 3D 编程中的 SDL 与 GLUT

我正在开始一系列关于SDL的教程。在深入挖掘之前,我想知道SDL为我提供了哪些类型的控制来应对GLUT?此外,是否支持网络摄像头访问(用于面部跟踪或运动检测),或者最好通过OpenCV进行管理? 最佳答案 SDL和GLUT都没有任何网络摄像头功能。它们完全与网络摄像头无关。关于您的其他问题:GLUT未得到维护。十多年来,它没有看到任何更新。它已被FreeGLUT(二进制兼容的替代品)部分取代,但GLUT和FreeGLUT都不支持OpenGL3.0+。它们也不具备声音支持等功能。SDL和许多其他库(如GLFW、SFML等)支持较新版本

c++ - 在 Xcode 4 中添加 OpenGL 框架

我正在使用Xcode4进行C++编程。我想添加一个框架,特别是一个OpenGL框架,但我还不太习惯其中的内容。它在帮助文档中说我应该选择目标,然后从那里我得到了夏季Pane,我可以在其中添加一个链接的框架/库。当我这样做时,夏季Pane不会出现。当我的目标是cocoa应用程序时它确实会出现,但由于我使用C++编程,所以我选择命令行工具,然后从那里选择语言。那么,我究竟应该如何将OpenGL框架添加到我的目标中呢? 最佳答案 也许进入“buildphases”(而不是“summary”),然后单击“LinkBinaryWithLibr

c++ - 将 3d 模型加载到 OpenGL 场景中

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我需要在我的项目中加载和存储3d模型,并在OpenGL场景中渲染它们。我可以选择要导出的模型类型。dwg、max、step和其他一些格式可用。刚刚发现OpenGL是低级API,不包含任何解析3d模型文件的工具。我正在寻找一些库/API来将3d文件结构转换为OpenGL原语(或其他一些原始数据)并将它们存储回具有指定格式的文件中。例如我想加载一个step文件,旋转和缩放

c++ - 在 opengl 中混合固定功能管道和可编程管道

好的,这是我的问题。我有一个学校使用的可视化框架,我一直在尝试将其设置为进行3d图形处理。问题是,该框架目前仅使用固定功能管道进行绘制。为了不搞砸,我一直在尝试解决仍然需要使用固定功能管道的旧代码,并且我一直在设置设施以允许创建着色器和着色器程序。我有一个简单的颜色着色器可以编译,我还制作了一个测试顶点数组(一个绿色三角形)。现在,当我尝试渲染它时,屏幕变黑了。之前,有很多2dSprite和屏幕上没有移动的东西,但是通过我添加到渲染函数的代码,我发现在我调用glUseProgram时屏幕变黑了。如果我注释掉glUseProgram,以及我设置制服和绘制的部分,一切正常。glUsePro

c++ - 用于 OpenGL3.1+ 上下文的分层 COLLADA 加载器

哪些层有助于有效地实现这一点?最好是这样我能够将下面列出的这三个组件与早期层放在一起,并在我进行时对其余部分进行编码。我正在编写一个COLLADA加载库以与我的图形引擎一起使用。所以当然,一开始我就注意到这似乎是一项相当大的任务。我现在打算编写库以使用不同的层。我不还不了解COLLADA。我假设可能有:几何层着色器层纹理层即使是我不确定的这些,也可能需要成为另一种分层方案的一部分。旁注,我很可能会使用irrXML或者这个interestingXMLlibrary我刚读到here除非另有说明,否则阅读文件。 最佳答案 您是否知道开放A

c++ - OpenGL glLinkProgram 返回 false 但信息日志为空;检查了一切

我必须承认这是我第一次实现着色器,之前我只使用固定功能管道;然而,尽管我确信我所做的一切都是正确的——但肯定有错误。glLinkProgram(program)-在查询GL_LINK_STATUS时返回GL_FALSE。此外,信息日志是空的(当我查询日志长度时-它是1,根据文档这是空终止符,它会checkout)。所以链接器错误,没有日志。此外,我刚刚发现,只要我在顶点着色器中使用gl_Position变量,就会出现链接器问题,无论是在分配期间还是在我将其用于计算时。我尝试了各种着色器变体,它出错但无法生成日志-它似乎只是在每次触摸gl_Position时返回GL_FALSE。有趣的是

c++ - Opengl 渲染到具有部分透明度(半透明)的纹理,然后将其渲染到屏幕

我找到了一些被问到这个问题的地方,但我还没有找到一个好的答案。问题:我想渲染到纹理,然后我想将渲染的纹理绘制到屏幕上,如果我跳过渲染到纹理步骤并且直接渲染到屏幕,它会如何显示。我目前正在使用混合模式glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)。我也有glBlendFuncSeparate可以玩。我希望能够将部分透明的重叠项目渲染到此纹理。我知道混合函数目前正在根据Alpha弄乱RGB值。我已经看到了一些使用“预乘alpha”的模糊建议,但关于这意味着什么的描述很差。我在photoshop中制作png文件,我知道它们有一个半透明位,你不

c++ - OpenGL glGetError 1281 错误值

我正在使用带顶点和着色器的OpenGL,屏幕上没有显示任何内容,所以我使用glGetError进行调试:我在一个名为color_array_buffer的缓冲区上收到错误1281(错误值),这是我正在谈论的部分:GLenumerror=glGetError();if(error){cout这是我将缓冲区链接到数组的代码:if(textured){texture=newsf::Texture();if(!texture->loadFromFile("textures/simple.jpeg"/*,sf::IntRect(0,0,128,128)*/))std::cout和我的uvs值:u

c++ - 退出 OpenGL 应用程序时清理

我有一个正在尝试修改的OSXOpenGL应用程序。当我创建整个应用程序时调用了一堆初始化函数——包括我可以指定我自己的鼠标和键盘处理程序等的方法。例如:glutInit(&argc,argv);glutInitDisplayMode(GLUT_DEPTH|GLUT_DOUBLE|GLUT_RGBA);glutInitWindowPosition(100,100);glutInitWindowSize(700,700);glutCreateWindow("MapAbstraction");glutReshapeFunc(resizeWindow);glutDisplayFunc(rend