草庐IT

c++ - 用于桌面 Gui 应用程序的 Qt 4.x/5.x 和 OpenGL : What module to choose?

我正在为Linux/Windows桌面使用Qt和OpenGL开始一个新的GUI应用程序项目。到目前为止,我的假设是:使用QtGUI(C++...而不是QML/QtQuick2)和OpenGL4.1或更高版本(要求)。阅读之后,我完全不知道选择什么路径。什么途径可以使我的应用程序在支持和库方面永不过时。Qt4.x还是Qt5.x?标准OpenGL或QGL或QOpenGL或QtOpenGL包装器?QWidget/QGLWidget(Qt4.x)或QWindow(Qt5.x)?该应用程序旨在在桌面环境中运行,并将执行大量文件(几何)打开/保存、实例化3D绘画和​​一些成像。如果可能的话,有人可

c++ - 最接近three.js的完整原生库是什么?

我正在寻找最好的原生库,它在结构和简单性方面类似于three.js,但也具有足够的可扩展性以支持glsl着色器。要求:开放源代码或为可能的扩展/增强提供了很好的文档允许商业衍生/使用可以包含在物理库中,也可以轻松地与物理库配对。速度足以支持现代游戏图形。基于OpenGL或Mantle。(我不想被window困住。)Windows支持支持类似于three.js本地/世界坐标系的系统。光线转换支持进行碰撞检测。巨额奖金:支持Linux和OSX以及Windows。我正在寻找与Three.js尽可能接近的匹配项,它是用C++编写的,类似于three.cpp但已完成功能并且处于较低的beta/a

c++ - 行进立方体实现 - 网格中缺少三角形

我目前正致力于通过在OpenGL中渲染示例数据集来理解和使用C++实现MarchingCubes算法。我一直遇到渲染的网格缺少三角形的问题。我看到几乎一半的三角形缺失,如下所示。填充三角形和创建四边形是否是解决问题的正确方法,还是我遗漏了一些明显的东西?我用过的边交表来自以下链接:http://paulbourke.net/geometry/polygonise/我没有使用12位条目的边缘标志数组,而是有12个if语句(显示了其中的2个)。我使用3D数组中的索引来根据边缘值(0-11)确定x、y、z的值if((edge.point1==0&&edge.point2==1)||(edge

c++ - 镜面反射分量不正确的法线贴图和 phong 着色

我正在世界空间坐标中实现法线/凹凸贴图(我发现它们更容易使用)并且我的照明在没有法线贴图的情况下也能正常工作,但是当引入法线贴图(以及使用TBN矩阵计算的新vector)时我的照明的镜面反射组件已关闭。镜面反射分量不在相机和灯光之间,所以有些地方是错误的。但是,查看我的代码我找不到任何问题。切线和双切线来自ASSIMP对象加载器,eyePos和lightPos也在世界坐标中。由于光照在镜面反射部分看起来是正确的(显示了凹凸贴图),我认为它与切线空间变换有关?这是一张展示问题的图片:顶点着色器:#version330layout(location=0)invec4vertex;layou

c++ - 不同的 OpenGL 行为取决于所使用的 Maya 视口(viewport)

我有在Maya中显示简单OpenGL形状的cpp代码。如果使用旧视口(viewport),那么我就得到了我想要的:沿x轴的箭头:但是,如果我在ViewPort2.0中使用相同的代码,则箭头会跟随相机移动:只有当我应用glTranslatef(我需要使用它)时才会发生这种情况。这是一段代码:for(inti=0;i我怎样才能在"new"Maya视口(viewport)中有正确的行为? 最佳答案 根据我的评论,这看起来像翻译发生在与渲染不同的坐标系中,这向我暗示绑定(bind)了不同的矩阵堆栈。因此,在旧视口(viewport)中(您的

c++ - OpenGL Sprite 绘制质量低

我正在尝试使用openglglsl和glm库渲染Sprite。当我使用glBegin、glEnd在旧管道中渲染Sprite时,一切都很好,但是当我使用着色器时,在旋转Sprite后,它的绘制质量非常差,如图所示:http://sm.uploads.im/t/I3lpf.png我的渲染代码:GLuintp;GLuintvertex_shader,fragment_shader;GLuintVBO,VAO;glm::mat4projection_matrix=glm::ortho(0.0F,640.0F,480.0F,0.0F,-1.0F,1.0F);voidsprite_init(){p

c++ - OpenGL 渲染与自己的 Phong 照明实现

我已经使用以(0,0,0)为中心并直接注视球体基元的相机实现了Phong照明方案。以下是使用OpenGL查看场景以及使用自己实现渲染场景的场景文件的相关内容:ambient010dir_light111-3-4-5#Aredspherewith0.5greenambiance,centeredat(0,0,0)withradius1material00.501001000000001010sphere00001OpenGL生成的结果图像。我的渲染应用程序生成的图像。如您所见,两者之间存在各种差异:我的图像上的镜面高光比OpenGL中的小。漫反射表面似乎没有以正确的方式漫射,导致我的图像

c++ - OpenGL 中的 GUI 工具包

我想开发一个类似于PureData的应用程序(用C++),但有一个很酷的GUI和一个更好的文档......是的,类似于Max/MSP或Reaktor,但免费且开放!为了创建一个吸引人的、响应式的和可移植的界面,我正在考虑使用OpenGL。在我看来有类似BlenderGUI的东西.在开始开发我的自定义GUI工具包之前,我四处搜索以了解是否存在我可以使用的东西,我发现:Juce:它似乎很受支持,但我不明白你是否只能在你的界面中嵌入OpenGLCanvas,或者是否可以使用OpenGL呈现所有小部件。nUI:它看起来真的很酷而且便携,但是......它的论坛是一片沙漠,而且真的很难找到教程!

c++ - 将 C++ OpenGL 游戏移植到 iPad

我们有一款游戏,是用C++和OpenGL为Windows和Mac开发的。现在我们要将游戏移植到iPad。有没有比用Objective-C编写整个程序更好的方法来让我们的游戏在iPad上运行?现在我是iPhone/iPad菜鸟,如果问题很愚蠢,请原谅。 最佳答案 您可能只需要在Obj-C中编写直接处理iOS的一小部分(创建gl表面、输入等)。休息应该没问题。您只需确保您将仅使用OpenGLES中的OpenGL子集。 关于c++-将C++OpenGL游戏移植到iPad,我们在StackOve

c++ - OpenGL GL_POLYGON_SMOOTH 二维抗锯齿从四边形创建三边形

更新:我在安装NVIDIAControlPanel时找到了它,如果我卸载它它会正常工作。当您在OpenGL中旋转四边形时,边缘会变得参差不齐。如果我调用glEnable(GL_POLYGON_SMOOTH),边缘会变得平滑,但OpenGL然后会在我的所有图像中绘制一条白色对角线,就好像它正在创建我的四边形的三元组一样。它是这样的:有没有办法禁用那条线,或者我可以用另一种简单的方法获得抗锯齿功能吗?我尝试了GL_MULTISAMPLE,但没有任何反应。在我的代码中还有:glShadeModel(GL_SMOOTH);glMatrixMode(GL_PROJECTION);glLoadId