opengl相关内容

OpenGL 纹理 ID 的范围是多少?

我有一个拥有 Texture_ID 属性的对象.我需要在构造函数中初始化 Texture_ID 的值,所以我想要一些 OpenGL 未使用的值来表示尚未设置纹理. 我不知道零 (0) 是否合适?如果有一个 OpenGL 适用于纹理 ID 的范围,我想要一个超出这个范围的值.有什么想法吗? 解决方案 0 是您要查找的值(表示未设置的纹理 ID/未创建的纹理),因为 0 永远不是有效的纹 ..
发布时间:2021-12-19 18:36:08 C/C++开发

如何持续更新 glut 窗口?

我有一个真正的机器人,它在 open gl 中订购我的虚拟机器人.我想在线显示我的主机器人(真实机器人)在从属机器人(open gl 中的虚拟机器人)中的每一个动作,所以我需要不断更新我的 glut 窗口,实际上只要真实机器人也移动我的虚拟机器人,所有这些运动应该在线. 我总是使用 get data 函数从 master 获取数据,但我不知道应该如何更新窗口. 这是我的代码: * ..
发布时间:2021-12-19 18:36:01 其他开发

从 Cygwin 下的 OpenGL 开始

是否可以在 Cygwin 下编译和运行 OpenGL 程序?如果是,如何? 解决方案 可以在 Cygwin 下编译和运行 OpenGL 程序.我在这里说明了基本步骤: 我假设您了解 OpenGL 编程.如果没有,请获取红皮书(OpenGL 编程指南).无论如何,这是 OpenGL 的必读内容. 我假设你已经安装了 Cygwin.如果没有,请访问 cygwin.com 并安装它. ..
发布时间:2021-12-19 18:35:53 其他开发

与基本逻辑代码相比,OpenGL glDrawElements() 调用的繁重程度如何?

我打算对我的 OpenGL 程序做一些优化(它不需要优化,但我这样做是为了它).出于好奇,与基本逻辑代码相比,OpenGL 绘图函数的成本有多高?目前,我正在开始一个游戏,其中屏幕上布满了正方形,以表示 2D 块状景观.这意味着正方形(两个三角形)的绘制调用被多次调用.目前,我打算添加一些代码来查看当前帧中块的位置,并将它们组合在一起.例如,如果有一列高 7 个块,而不是执行 7 个单独的 dra ..
发布时间:2021-12-19 18:35:38 C/C++开发

OpenGL围绕一条线旋转对象

我正在使用 OpenGL 和 C++ 进行编程.我知道 1 条线上的 2 个点(一条对角线)并希望围绕该对角线旋转一个对象.我该怎么做呢?我知道如何使用 glrotatef 围绕 x、y 或 z 轴旋转它,但我不确定这一点. 解决方案 glRotate 的 x、y 和 z 参数可以指定任意轴,而不仅仅是 x、y 和 z 轴.要找到穿过您的线的轴,只需减去线的端点即可获得轴向量:如果两个点是 ..
发布时间:2021-12-19 18:35:24 C/C++开发

3D 应用程序中的 OpenGL 2D hud

我一直在尝试在我的 OpenGL 应用程序中创建一个平视显示器.环顾四周,似乎使用正射投影的方法是这样做的,但到目前为止,我还无法使程序正确呈现.发生的事情不是在我的显示器顶部渲染,而是出现奇怪的图形故障,如下所示: 如果我注释掉 hud 代码,一切都会完美呈现. glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LESS);//设置投影矩阵glMatrixMo ..
发布时间:2021-12-19 18:35:14 C/C++开发

OpenGL 顶点数组/缓冲对象

问题 1 在某个 VAO 下创建的顶点缓冲对象会在该 VAO 被删除后删除吗? 示例: glGenBuffers(1, &bufferObject);glGenVertexArrays(1, &VAO);glBindVertexArray(VAO);glBindBuffer(GL_ARRAY_BUFFER, bufferObject);glBufferData(GL_ARRAY_BU ..
发布时间:2021-12-19 18:34:58 其他开发

在 Cygwin 下编译最小的 GLEW 应用程序

让我们考虑下面的程序,并尝试在 Cygwin 下编译它: #include int main(int argc, char** argv){glutInit(&argc, argv);glLoadIdentity();} 它编译并运行得很好.-I/usr/include/opengl 似乎非常重要. g++ -I/usr/include/opengl -I../include/cygwin ..
发布时间:2021-12-19 18:34:40 其他开发

用于 OpenGL 的 2D 矢量图形渲染器

我想在 OpenGL 游戏中使用矢量图形.我想使用矢量图形,因为它们可以在不损失质量的情况下进行廉价缩放. 当然,绘图应该是硬件加速的,所以我不想在软件中绘制纹理. 现在我想知道是否已经存在这样做的图书馆.是否有一个库,可以加载一些矢量图形格式并使用 OpenGL 显示它? 解决方案 我不会理会任何 OpenVG,甚至不会使用 MonkVG,这可能是最现代但不完整的实现.Ope ..
发布时间:2021-12-19 18:34:31 其他开发

最小无窗口 OpenGL 上下文初始化

如何用最少的代码初始化一个无窗口的 OpenGL 上下文? 我读过这里,您可以使用wglCreateContextAttribsARB创建无窗口上下文,但它没有解释如何? 解决方案 来自链接: 创建一个没有窗口的上下文,用于离屏渲染.这实际上可能行不通. 第二句话很重要.来自 WGL_ARB_create_context 规范: 4) 是否应该有一种方法可以在不绑定 ..
发布时间:2021-12-19 18:34:23 C/C++开发

C++中的扫描线填充OpenGL/GLUT算法

我正在尝试学习在 OpenGL/GLUT 中实现的扫描线填充算法.我无法围绕这个概念进行思考.有人能用一种相当简单的方式向我解释算法吗?算法如下: #include浮动 x1,x2,x3,x4,y1,y2,y3,y4;void draw_pixel(int x,int y){glColor3f(0.0,1.0,1.0);glPointSize(1.0);glBegin(GL_POINTS);gl ..
发布时间:2021-12-19 18:34:15 C/C++开发

如何实现地面雾 GLSL 着色器

我正在尝试为我的地形渲染引擎实现地面雾着色器.该技术在这篇文章中有描述:http://www.iquilezles.org/www/articles/fog/fog.htm 这个想法是考虑从相机到片段的光线,并沿着这条光线整合雾密度函数. 这是我的着色器代码: #version 330 核心在 vec2 紫外线中;在 vec3 中;出 vec3 颜色;均匀采样器2D tex;统一的 ..
发布时间:2021-12-19 18:34:03 其他开发

如何让 VBO 工作

我尝试使用本教程http://nehe.gamedev.net/data/lessons/lesson.asp?课程=45 我在我的 Visual Studio 2008 中加载它,编译它,它说缺少文件:“GLES/glplatform.h"所以我谷歌这个文件......然后它抱怨缺少文件:“KHR/khrplatform.h",所以我也用谷歌搜索......然后它会抱怨一切可能,“GLDo ..
发布时间:2021-12-19 18:33:53 C/C++开发

GLSL:用缓冲区或纹理替换大型统一整数数组

现在我正在尝试将一个整数数组传递到片段着色器中,并通过一个统一数组执行此操作: uniform int myArray[300]; 并在着色器外用 glUniform1iv 填充它. 不幸的是,大于 ~400 的统一数组失败了.我知道我可以使用“统一缓冲区"代替,但似乎无法找到将大型一维数组传递到带有缓冲区或其他方式的片段着色器的完整示例. 谁能提供这样的例子? 解决方案 ..
发布时间:2021-12-19 18:33:40 C/C++开发

如何在 3dsMax 中实现相机平移?

实现 3ds max 中使用的相机平移效果所需的数学是什么? 在 3ds max 中,光标和网格之间的距离在整个移动过程中始终保持不变(mouse_down+mouse_motion+mouse_up). 我尝试使用 dt(帧时间)乘以一些硬编码常量来尝试在 XY 平面上移动相机,但结果非常丑陋且不直观. 到目前为止我得到的代码是: def glut_mouse(self, b ..
发布时间:2021-12-19 18:33:29 Python

#error gl.h 包含在 glew.h 之前

所以我试图将我的 OpenGL 代码从 Main() 移动到一个特定的类中,该类仅在必要时处理 3D 图形.以前,我的 main.cpp 文件的顶部是这样的: #define GLEW_STATIC#include #include #include #include #include #include "Game.h" 这很有效.我试图做的是将所有与 OpenGL 相关的代 ..
发布时间:2021-12-19 18:33:18 C/C++开发

从 GPU 获取完整的桌面截图

我一直在使用 Windows API 的 BitBlt 函数来执行屏幕抓取. 但是有很多缺点: DWM 和 Aero 会导致大幅减速(3 毫秒 --> 35 毫秒只是调用 BitBlt)——要解决这个问题需要禁用 Aero,而我宁愿不这样做.屏幕闪烁,东西移动. 必须将数据重新传输到 GPU 才能将数据作为纹理加载 如果没有 CAPTUREBLT 标志,则无法捕获分层 Window ..
发布时间:2021-12-19 18:33:00 其他开发

如何在 OpenGL 中创建一个带三角形的均匀球体?

是否有一个公式可以生成一组顶点位于球体上的三角形坐标? 我可能正在寻找与 gluSphere 类似的东西.然而,我需要以特定颜色为不同的三角形着色,这样看来我不能使用 gluSphere. 另外:我确实理解 gluSphere 沿着具有相同经度和纬度的线绘制边缘,这使得三角形在极点处比在赤道处的大小要小.现在,如果这样的公式可以生成三角形,使得它们的大小差异最小,那就太好了. 解 ..
发布时间:2021-12-19 18:32:50 其他开发

gpu蒙皮的矩阵计算

我正在尝试在 OpenGL 中使用 Assimp 作为我的模型导入库来制作骨骼动画. 对于骨骼的 offsetMatrix 变量,我到底需要什么?我需要乘以什么? 解决方案 让我们以这段代码为例,我用它来为我工作的游戏中的角色设置动画.我也使用 Assimp 来加载骨骼信息,并且我自己阅读了 Nico 已经指出的 OGL 教程. glm::mat4 getParentTransfo ..
发布时间:2021-12-19 18:32:42 C/C++开发

如何在 JavaFX 中使用 OpenGL?

我想编写一个非常简单的 Java 3D 编辑器(用于实验).我知道基本的 JavaFX 用法,并且我知道足够的 OpenGL 知识.但我所有的 OpenGL 经验都来自于使用 C/C++. 我可以在 JavaFx 应用程序中制作一个“画布"并在其上映射 OpenGL 视口吗? 解决方案 JavaFX 在内部可以使用 OpenGL 作为渲染管道,因此需要注意两者之间的集成以避免冲突. ..
发布时间:2021-12-19 18:32:35 Java开发