opengl相关内容

在 MFC 中的 OpenGL 上下文上方绘制文本

我在一个包含 OpenGL 上下文的 MFC 应用程序上工作.我是 MFC 的新手,这就是我问它的原因.OpenGL 工作正常,但是当我想在 WindowProc 中使用此代码在 3D 窗口上方绘制文本时: 案例 WM_PAINT:hDC=BeginPaint(窗口,&paintStr);GetClientRect(窗口,&aRect);SetBkMode(hDC,透明);DrawText(h ..
发布时间:2022-01-12 15:21:18 C/C++开发

在 OpenGL 中的 2D 纹理顶部渲染一个带轮廓的红色矩形

我已经搜索了很多这个网站,但无法准确找到我的问题.大多数类似的问题都使用了控制台和 glut 库.但是由于我是 OpenGL 和 MFC 的新手,并且开始使用 MFC 的组合,所以他们帮不了我很多. 我正在自定义类 COpenGLcontrol 在 codeguru 中用于我自己的目的.这里是完整的自定义类 但是如果你没有兴趣下载它,没问题我会解释相关的部分.这可能需要一段时间,所以我希望你 ..
发布时间:2022-01-12 15:01:04 C/C++开发

OpenGL 抑制基于 MFC 对话框的应用程序中的异常

我有一个使用 MSVS2005 创建的 MFC 驱动的基于对话框的应用程序.这是我的问题一步一步.我的对话框和相应的点击处理程序上有按钮,代码如下: int* i = 0;*i = 3; 我正在运行调试版本的程序,当我单击按钮时,Visual Studio 捕捉焦点并警告“访问冲突写入位置"异常,程序无法从错误中恢复,我所能做的就是停止调试.这是正确的行为. 现在我在 OnInitDia ..

在窗口内安装 3d 模型

我想在一个视图中显示不同尺寸的模型,以便整个模型在屏幕内可见. 最好的方法是什么?我尝试使用此公式缩放(使用 glScale)模型 scaleFactor = (screenSize/(maxModelSize * 常数)) size 是高度还是宽度,取决于哪个更大. 常量是 1/(OpenGL 单位中一个屏幕像素的长度) 这有两个问题: 1. 进行一些转换后,我希望能够使用 Iden ..
发布时间:2022-01-12 14:46:06 C/C++开发

单个MFC对话框上的OpenGL两个不同的3d渲染图片控件不起作用

我正在使用 VC++ MFC 制作一个应用程序,其中我有两个不同的 opengl 窗口.我已经按照 在此处输入链接描述 我能够成功使用一个图片控件,其中 opengl 窗口显示正确的渲染,但如果我创建该控件的两个不同对象,则一个窗口不显示任何内容. 这里要解释更多是代码 m_WinGL 和 m_WinGL2 是 initDialog 中自定义类的两个不同对象. //获取我们之前 ..
发布时间:2022-01-12 14:37:27 C/C++开发

catch(...) 没有捕获异常,我的程序仍然崩溃

我的应用程序在初始化时崩溃的测试仪出现问题.我添加了更多的日志记录和异常处理,但它仍然崩溃并显示通用的“此程序已停止工作"消息,而不是触发我的错误处理. 鉴于我的 main() 看起来像这样并且有 catch(...) 在什么情况下不会触发? 尝试{simed::CARmApp 应用程序(0,cmd);for(bool done = false;!done;){完成 = !app.fram ..
发布时间:2022-01-12 11:54:36 C/C++开发

用于 MacOs Catalina 的 Electron OpenGL

我正在构建一个电子应用程序,但是我遇到了一个错误,导致渲染速度非常慢并导致 CPU 使用率过高 [1] 无法创建基本的加速 OpenGL 渲染器.[1] 无法创建基本的加速 OpenGL 渲染器.[1] Core Image 现在使用软件 OpenGL 渲染器.这会很慢. 我试图找出答案,但我找不到有关该问题的答案.有人对这个问题有任何想法吗? 解决方案 Apple 弃用了 OpenG ..
发布时间:2022-01-10 22:40:05 前端开发

CUDA/OpenGL 互操作,使用 CUDA 绘制到 OpenGL 纹理

我正在用 CUDA 编写一个渲染系统,并希望通过 OpenGL 快速显示结果,而无需触及主内存.我基本上做以下事情: 创建并初始化OpenGL纹理,并在CUDA中注册为cudaGraphicsResource GLuint viewGLTexture;cudaGraphicsResource_t viewCudaResource;无效初始化(){glEnable(GL_TEXTURE_2D ..
发布时间:2022-01-10 16:13:35 其他开发

Cuda 和 OpenGL 互操作

我一直在阅读 CUDA 文档,在我看来,每个需要与 OpenGL 接口的缓冲区都需要在 glBuffer 中创建. 根据 nvidia 编程指南,必须这样做: GLuint 位置VBO;结构 cudaGraphicsResource* 位置VBO_CUDA;int main() {//显式设置设备cudaGLSetGLDevice(0);//初始化 OpenGL 和 GLUT...过剩显示 ..
发布时间:2022-01-10 16:13:19 其他开发

把四边形变成长方形?

我的场景由一个任意四边形组成.我需要能够将该四边形转换为矩形.每个四边形都在 2d 坐标中,因此它们有 4 个顶点 (x_i, y_i). 转换需要有一个逆,因为这个想法是在操纵矩形后回到原来的四边形. 执行此操作的最简单方法是什么?我听说这叫做透视变换,但我发现了一些小线索,让我觉得这很容易做到. 解决方案 你知道你想要的矩形的尺寸是多少吗?如果是这种情况,您可以使用透视变换 ..
发布时间:2022-01-09 18:33:41 其他开发

类将数据成员存储在顺序内存中?

这个问题的简短版本:指向类的第一个数据成员的指针是否会导致指向其所有数据成员的指针? 讨论: 我正在阅读一些示例代码,这很有趣.当一个特定的函数(在本例中是来自 OpenGL 的 glUniformMatrix4fv C 函数)将一个数组作为参数时,它会以常用的 C 方式传递,即使用指向数组第一个元素地址的指针,如下: glUniformMatrix4fv(glvariable, ..
发布时间:2022-01-09 09:49:13 C/C++开发

OpenGL中绑定点的目的?

我不明白 OpenGL 中绑定点(例如 GL_ARRAY_BUFFER)的目的是什么.据我了解, glGenBuffers() 创建了一种指向位于 GPU 内存中某处的顶点缓冲区对象的指针. 所以: glGenBuffers(1, &bufferID) 意味着我现在有一个句柄,bufferID,指向显卡上的 1 个顶点对象.现在我知道下一步是将 bufferID 绑定到绑定点 glBi ..
发布时间:2022-01-09 09:40:42 C/C++开发

GLSL 采样器如何确定纹理的缩小以及 mipmap 级别?

我正在使用 OpenGL ES(通过 WebGL),但我认为这个问题也适用于完整的 OpenGL 配置文件. 假设我创建了一个具有完整 mipmap 级别的 OpenGL 纹理,并将其 TEXTURE_MIN_FILTER 设置为 NEAREST_MIPMAP_NEAREST.还假设我有一个片段着色器来采样这个纹理.mipmap级别是根据纹理的缩小程度来选择的,但是缩小程度是如何选择的呢? ..
发布时间:2022-01-09 09:34:50 其他开发

ld: 未找到架构 x86_64 (Xcode 4)//opengles.o 的符号

我正在使用外部库制作一个 xcode 命令工具应用程序,但出现了一些错误. 我试图解决的问题: 使用不同的编译器构建 删除 GLES 文件夹并重新添加 在 32 和 64 上构建它 我是否遗漏了有关 opengles.cpp 的内容? 如果您知道下一步可以做什么,请说出来,您可以在下面找到有关项目和错误的所有信息.如果您需要更多信息,我很乐意为您提供帮助.另外,如果您知 ..
发布时间:2022-01-09 09:29:01 移动开发

WebGL/OpenGL:性能比较

出于教育目的,我需要比较 WebGL 与 OpenGL 的性能.我有两个用 WebGL 和 OpenGL 编写的等效程序,现在我需要获取它们的帧速率并比较它们. 在 Javascript 中,我使用 requestAnimationFrame 来制作动画,我注意到它会导致帧速率始终保持在 60 FPS,并且只有在我切换选项卡或窗口时才会下降.另一方面,如果我总是递归调用渲染函数,窗口会因为明 ..
发布时间:2022-01-09 09:27:50 前端开发

滚动纹理的 GLSL 着色器

如何在平面上滚动纹理?所以我有一个带有纹理的平面,我可以使用着色器从右向左滚动(无限)它上面的纹理吗? 解决方案 使用设置纹理环绕模式 glTexParameteri(TextureID, L_TEXTURE_WRAP_S, GL_REPEAT) 将名为 Time 的浮动统一添加到纹理着色器中 在获取纹理样本时使用类似 texture2D(sampler, u + T ..
发布时间:2022-01-09 09:26:53 其他开发

获取支持的 GLSL 版本

在使用英特尔显卡的笔记本电脑上开发时,在编译顶点着色器时,我得到了这个: 0:1(10):错误:不支持 GLSL 3.30.支持的版本有:1.10、1.20、1.30、1.00 ES 和 3.00 ES 好的,所以我调整着色器以使用版本 300 ES.同时,我想检查当前驱动程序/卡支持的 GLSL 版本,所以我使用这个: glGetString (GL_SHADING_LANGUAGE_VE ..
发布时间:2022-01-09 09:26:05 其他开发

如何在 QOpenGLWidget 中渲染三角形?

我正在尝试使用 QOpenGLWidget 在 Qt 中使用 OpenGL,但我很难找到任何相关示例.我是 OpenGL 的新手,所以我正在尝试学习如何使用它,但是我发现的教程似乎不适用于 QOpenGLWidget.现在,我要做的就是渲染一个三角形开始. 这是我目前所拥有的. 标题: 命名空间 Ui {类小部件;}类 Widget:公共 QOpenGLWidget,受保护的 QOp ..
发布时间:2022-01-09 09:22:15 C/C++开发