3d-graphics-opengl-problems-f
全部标签 我目前正在编写一个OpenGL渲染器,并且正在编写一些类来枚举在下拉列表中使用的显示适配器、设备和模式。我正在使用EnumDisplayDevices获取适配器,然后为每个设备获取EnumDisplaySettings,为我提供bpp、宽度、高度和刷新率。但是我不确定如何找出哪些模式可用全屏(在DEVMODE结构中似乎没有它的标志)。我可以假设列出的所有模式原则上都可以全屏实例化吗?作为后续问题,这种设备枚举方法通常是在Windows上获取所需信息的最佳方式吗? 最佳答案 OpenGL在窗口模式和全屏模式之间没有这种区别。如果您希望
我正在考虑将3D功能添加到我的应用程序中。为此,我可能会使用QtOpenGl库,但尚不完全清楚这是否需要在我客户的PC上进行任何特殊操作。我的客户需要OpenGL视频卡吗?我的客户需要OpenGL驱动程序吗?是否需要最低Windows版本?或者是否需要在客户的PC上安装其他东西(除了Qt本身)还是开箱即用?谢谢 最佳答案 WillmycustomersneedanOpenGLvideocard?不一定,总有软件光栅化器回退。WillmycustomersneedanOpenGLdriver?最好。但总有软件光栅化器回退。Isamin
我的代码中出现了这个奇怪的错误,它不允许我绘制任何东西...voidrender(void){glClear(GL_COLOR_BUFFER_BIT);glLineWidth(4.0);glPointSize(4.0);glColor3i(0,1,1);glBegin(GL_POINTS);glVertex2i(0,0);glVertex2i(2,2);glVertex2i(3,3);glEnd();glutSwapBuffers();}intmain(intargc,char**argv){intLargura,Altura;//widthLargura=(abs(Plano::Mi
我们有一个用C++编写的桌面Windows应用程序,它使用OpenGL渲染View。在某些AMD卡上,如果您打开CatalystControlCenter并强制启用三重缓冲和垂直同步,它会破坏我们的应用程序:根本没有任何渲染,它只是一个灰色屏幕(在其他一些驱动程序版本上,它会在创建时崩溃而不是上下文)。关闭三重缓冲或V-sync将其恢复正常。我们使用wglSwapIntervalEXT在我们的应用程序中启用垂直同步。认为它可能会冲突,我删除了它的代码;没有变化。这绝对是一个驱动程序错误,还是我们必须做一些不同的事情来处理三重缓冲? 最佳答案
是否可以通过windows8sdk或directxsdk使用direct3d11?作为一名学习者,不清楚这种选择有什么影响。directx11是用windowssdk学还是directxsdk学,有什么区别? 最佳答案 directxsdk(最后一次是2010年6月,三年前)已弃用。Windows8套件包含最新版本的直接xheader和库。基本API和文档大部分相同,但缺少最近的更改。D3DX已弃用,数学移至directxmath.h,着色器编译移至d3dcompiler.hPix不再适用于最新的Windows,因此您必须坚持使用v
我刚刚开始使用openGL,这是我从一本书中自学的。在我的书中,我被告知要使用三角形strip构建四边形,因为它更有效。本书使用这些顶点来创建四边形。vertices.push_back(-0.5f);vertices.push_back(0.0f);vertices.push_back(0.0f);vertices.push_back(0.5f);vertices.push_back(0.0f);vertices.push_back(0.0f);vertices.push_back(-0.5f);vertices.push_back(0.0f);vertices.push_back(
我使用Graphics.MeasureString来计算文本的大小。EG:10像素=7.5点。我的问题:大小是根据Graphics.MeasureString点值还是像素值计算出来的? 最佳答案 来自MSDNpage:ThismethodreturnsaSizeFstructurethatrepresentsthesize,intheunitsspecifiedbythePageUnitproperty,ofthestringspecifiedbythetextparameterasdrawnwiththefontparameter
此程序每帧绘制一个点,直到屏幕上布满点为止。#include#includeintSCREEN_WIDTH=500,SCREEN_HEIGHT=500;intmain(intargc,char**argv){SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION,3);SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION,3);SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK,SDL_GL_CONTEXT_PROFILE_CORE);SDL_GL_SetA
上周我一直在尝试在正方形上绘制纹理,但无济于事。正方形绘制但没有纹理。我正在使用OpenGL、DelphiXE3和Windows10。问题是glGenerateMipmap函数。我的旧版opengl没有MipMap函数。所以我用更新的东西(OGL4.6)替换了我的卡,它现在具有这些功能。但它仍然不起作用。问题是,旧的opengl32.dll没有改变,它仍然没有这些功能。所以问题是:程序如何找到MipMap函数?是否有可能以某种方式使用新功能更新opengl32.dll?或者我的程序是否需要引用其他一些dll?还是应该更新winapi.opengl单元?根据khronos,除非设置了Mi
我想让用户能够选择双缓冲和三缓冲,因为在某些卡(或操作系统?)上默认启用三缓冲,这会导致一些性能问题。我该怎么做? 最佳答案 您不能从OpenGL本身执行此操作,因为OpenGL仅处理绘图调用等。您需要为此使用供应商特定的调用。在Windows中,有用于处理上下文创建等的WGL。 关于c++-OpenGL:如何控制我的窗口将使用哪种缓冲方法?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest