草庐IT

opengl-extensions

全部标签

windows - 可以在不同应用程序的窗口上绘制 OpenGL HUD 叠加层(不闪烁)吗?

我需要在另一个应用程序之上绘制一个由线条和文本组成的叠加层。所讨论的应用程序是3D外部世界视点,叠加层是平视显示器。我无权访问来自外部世界应用程序的任何类型的回调以在其绘制循环中执行绘制代码。直接在应用程序窗口上绘制会导致闪烁,因为绘制循环不会同步,所以对我来说这似乎不是一个选项。我能想到的一种方法是捕获外部世界应用程序的像素并将它们流式传输到我的应用程序中,这样我就可以在同一个绘制循环中在顶部绘制叠加层,但这似乎效率很低。有没有一种有效的方法可以在不闪烁的情况下绘制外部世界应用程序?是否可以在最终的显卡输出上/以显示器的刷新率绘制一些东西?附言它不一定是OpenGL,但HUD已经用O

windows - 如何在配备 Tesla 的基于 Windows 的主机上使用 OpenGL 进行渲染

之前我一直认为Tesla不会支持OpenGLAPI,但是最近了解到Tesla产品也可以通过OpenGL进行可视化。我有一个工作站,其中有2个IntelE5CPU和1个TeslaC2050。根据https://developer.nvidia.com/opengl-driver,TeslaC2050应该至少支持OpenGL版本3。现在,我想在该工作站上使用OpenGL3.3运行渲染服务程序,但没有成功。下面是我试过的。如果我通过RDP远程桌面登录,由于虚拟图形适配器,支持的OpenGL版本为1.1。在这里,我使用tsconcommond重新连接到物理控制台。结果,RDP连接丢失。当我重新

opengl - GLUT 退出重新定义错误

在我的简单OpenGL程序中,出现以下关于退出重新定义的错误:1>c:\programfiles\microsoftvisualstudio8\vc\include\stdlib.h(406):errorC2381:'exit':redefinition;__declspec(noreturn)differs1>c:\programfiles\microsoftvisualstudio8\vc\platformsdk\include\gl\glut.h(146):seedeclarationof'exit'我正在使用NateRobins的GLUTforWin32并在VisualStud

c++ - 控制台窗口有图标,但 OpenGL/GLUT 窗口没有。为什么?

我在Windows下用C/C++/OpenGL/GLUT编写程序。我想在我的程序中添加一个图标。我使用MinGW和命令提示符来编译我唯一的一个.cpp文件。我自己写了一些.bat文件,我可以将其编译为Debug模式、Release模式等。我想在我的程序中添加一个图标。所以,我做了一个新的编译bat,看起来像这样:windresresource.rcobject.osetPATH=%PATH%;c:\mingw\bing++program.cppobject.o>>>someothersettings我有一个.ico文件和一个“资源脚本”语言的资源文件。资源文件如下所示:#ifndef_

windows - OpenGL 和(缺少)glBlendFuncSeparate

我需要将几张图片混合成一张图片,就像这里描述的那样:OpenGL-maskwithmultipletextures.我使用了那里提出的解决方案,但glBlendFuncSeparate方法存在问题。原来这个方法是在后来的openGL版本中引入的,根据我的gl.h文件,我使用的版本是1.经过大量搜索和阅读后,我意识到这就是我必须处理的问题,我不能只升级我的openGL版本。我继续下载GLEW。我将glew.h和glew.c添加到我的VS10项目中,定义了GLEW_BUILD现在它终于可以编译而不会提示glBlendFuncSeparate,但是当我运行该程序时,它在尝试调用该方法时崩溃,

c++ - 在 win7 下,为 opengl 窗口捕获的图像是黑色的

我在主窗口上有几个子窗口,有的是GDI窗口,有的是opengl渲染的窗口,一个功能是用rect截取图像(可能覆盖不同的窗口组合)。此功能在windowsxp下工作正常。但是在windows7下,所有opengl渲染的窗口都是黑色的。我做了一些研究,有人说gdi不能通过窗口DC直接访问帧缓冲区,必须使用glReadPixels来组合位图。然而,这种方法很尴尬,因为我必须分别组合该矩形中的每个窗口。谁有更好的选择?这是我捕获bmp的代码:voidMainWndClass::catchBmp(constchar*path_fn,booldrawAreaOnly/*=0*/){CDC*pDC=

c++ - OpenGL:如何自动选择正确的 mipmapping 方法?

我在对不同硬件上的纹理进行纹理映射时遇到问题。我使用以下代码:char*exts=(char*)glGetString(GL_EXTENSIONS);if(strstr(exts,"SGIS_generate_mipmap")==NULL){//usegluBuild2DMipmaps()}else{//useGL_GENERATE_MIPMAP}但在某些卡上,它说GL_GENERATE_MIPMAP受支持,而实际上它不支持,因此gfx卡试图从mipamp应该所在的位置读取内存,因此卡将其他纹理渲染到那些miplevels。​​我试过glGenerateMipmapEXT(GL_TEX

windows - 用于 OpenGL 1.1 函数的 wglGetProcAddress

OpenGL网站上的这个wiki页面声称OpenGL1.1函数不应通过wglGetProcAddress加载,措辞似乎暗示如果您尝试某些系统将按设计返回NULL:http://www.opengl.org/wiki/Platform_specifics:_Windows#wglGetProcAddress(想法是只有1.2+函数值得通过wglGetProcAddress加载)。该页面没有告诉我们谁报告了这些对1.1函数的wglGetProcAddress调用失败,这是我从未亲眼见过的。谷歌搜索也几乎没有关于该问题的信息。对于足够多的用户,wglGetProcAddress()实际上会为

c++ - 去除 OpenGL 橡皮筋伪影

我正在使用一些用于科学可视化的OpenGL代码,但我在让它的橡皮筋在较新的硬件上工作时遇到了问题。该代码在现有场景上绘制一个“缩放窗口”,“缩放窗口”的一个角位于存储的左键单击位置,另一个角在鼠标移动时位于鼠标下方。在第二次左键单击场景放大到选定的窗口。当鼠标在场景中移动时,我看到的症状是:出现橡皮筋伪影,即用于创建“缩放窗口”的行未被第二个“RenderLogic”channel从缓冲区中删除(参见下面的代码)我可以清楚地看到前一个缓冲区的内容随着缓冲区的交换而闪烁和消失上述问题不会发生在低端硬件上,例如我拥有的上网本上的集成显卡。另外,我不记得大约5年前编写这段代码时遇到过这个问题

Virtualbox 虚拟机 : is it OpenGL 1. x 上的 Windows 7 兼容吗?

在Windows7客户机的VirtualBox虚拟机设置(或系统信息)中,我无法确定我的虚拟显卡是否与OpenGL1.x兼容。我需要OpenGL1.x兼容性才能使用theBlackBerry7simulator进行测试.VirtualBox默认通用显卡是否支持OpenGL1.x? 最佳答案 是的,您的guestVM将能够运行OpenGL1.x和更新版本。通过虚拟机菜单栏中的“设备”菜单安装VirtualBoxGuestAdditionsVirtualBoxhasahandymenuitemnamed"Installguestaddi