opengl 相关问题

OpenGL(开放图形库)是一种独立于平台的图形标准和API,可用于桌面,工作站和移动设备。它旨在提供硬件加速渲染,因此与传统软件渲染相比,性能大大提高。 OpenGL用于CAD软件和计算机游戏等应用程序。 OpenGL标准以及OpenGL ES由Khronos集团控制。

按任意键时 GLFW 崩溃(分段错误(核心转储))

使用glfw与glad和stb_image来渲染带有纹理的矩形(遵循learnopengl.com),但是在我获得矩形渲染后,当glfwPollEvents为

回答 1 投票 0

如何确保屏幕空间导数出现在三角形边缘上?

我使用以下顶点着色器绘制一个抗锯齿圆角正方形作为地平面,以便模型位于顶部: #版本330 输出 vec2 tex; 统一mat4 mvp; const vec2 pos[4] = vec2[]( vec2(...

回答 1 投票 0

glUniformMatrix4fv 导致 GL_INVALID_OPERATION

当我在下面的代码中调用 glUniformMatrix4fv 或 glUniform4fv 时,它每次都会引发 GL_INVALID_OPERATION,我尝试更改传递矩阵数据的方式、传递 id 的计数,我已经检查了

回答 3 投票 0

为什么要使用外部 OpenGL 加载器函数而不是 GLAD 的内置加载器?

我已经使用 GLAD 和 SFML 一段时间了,并且我一直在使用 GLAD 的内置函数加载器,gladLoadGL,它对我来说工作得很好。现在我正在查看 GLFW,它的 gui 中都写着...

回答 1 投票 0

glGetBufferSubData pyopengl 随机结果和段错误

为了扩展我的库中的一些内容,我需要将数据从 VBO 读回 CPU 内存。这里不涉及转换反馈。 当我从缓冲区读取数据时,我要么得到“随机数据”,要么得到“

回答 2 投票 0

库机器类型“x86”与目标机器类型“X64”冲突

我正在使用 CUDA 9.2 通过 OpenGL 模拟光线追踪。 我刚刚发现由于我的 CUDA 版本不支持 x86 构建,所以我应该使用 x64 库。 但还是有问题。 全部过剩

回答 2 投票 0

在不调用 PaintGL 的情况下渲染到 QOpenGLFramebufferObject

我想在不调用paintGL的情况下调用渲染例程,原因是我试图使用Qt OpenGL实现的现代例程渲染多通道效果,所以伪代码

回答 1 投票 0

OpenGL 中的独特位置和绑定

我一直在使用 OpenGL,对绑定、位置及其索引有点困惑。 我的想法是位置主要用于基元,可以很容易地传递...

回答 1 投票 0

使用Processing P3D(OpenGL)纹理不绘制,不报错

以下程序使用底层 OpenGL 在处理过程中正确渲染纹理四边形。 纹理在这里 P形状; 无效设置(){ 尺寸(800、800、P3D); PImage 环纹理 = loadIma...

回答 1 投票 0

在qt5的qtquick 2.0中渲染自定义opengl

我正在寻找一种在 qtquick 2.0 项目中渲染自定义 opengl 调用的方法。给您一些背景信息:我有一个使用 opengl 进行渲染的 C++ 3d 引擎。目标是让它呈现我...

回答 2 投票 0

亲爱的 ImGui GUI 未显示

我正在制作一个伪光线追踪器(光线实际上并不在场景中反弹),并决定使用 ImGui 来允许用户更改对象的材质属性。然而其他什么也得不到

回答 1 投票 0

渲染选定网格面的正射投影时,OpenGL 深度测试不起作用

我正在尝试在 OpenGL 中渲染选定网格面的正交投影。网格有一个洞,我只想显示从观察者的角度可见的面。然而,有...

回答 1 投票 0

跳跃和重力LWJGL

我一直在 LWJGL Java 和 JOML 上编写一款关于平台游戏的游戏。 所以输入没问题,我可以使用WASD并在地图上移动,但我不知道如何将其转换为AD和W跳跃...

回答 1 投票 0

矩阵乘法时不能使用*运算符

在我的 OpenGL“main.cpp”文件中,我构造了视图、模型和模型视图矩阵(相应的 vMat、mMat 和 mvMat),其类型为 glm::mat4,在此代码中使用: #包括 在我的 OpenGL“main.cpp”文件中,我构造了视图、模型和模型视图矩阵(相应的 vMat、mMat 和 mvMat),其类型为 glm::mat4,在此代码中使用: #include <glm/glm.hpp> #include <glm/gtc/type_ptr.hpp> #include <glm/gtc/matrix_transform.hpp> glm::mat4 vMat, mMat, mvMat; --程序-- void applyMatrices(GLFWwindow* window){ mvLoc = glGetUniformLocation(renderingProgram, "mv_matrix"); projLoc = glGetUniformLocation(renderingProgram, "proj_matrix"); glfwGetFramebufferSize(window, &width, &height); aspect = (float)width / (float)height; projMat = glm::perspective(1.0472f, aspect, 0.1f, 1000.0f); // glm::mat4(1.0f) : an identity matrix vMat = glm::translate(glm::mat4(1.0f), glm::vec3(-1.0f, -1.0f, -1.0f)); mMat = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f, 1.0f, 1.0f)); mvMat = vMat * mMat; glUniformMatrix4fv(mvLoc, 1, GL_FALSE, glm::value_ptr(mvMat)); glUniformMatrix4fv(projLoc, 1, GL_FALSE, glm::value_ptr(projMat)); } void display(GLFWwindow* window, double currentTime) { ... applyMatrices(window); ... } int main() { ... while (!glfwWindowShouldClose(window)) { display(window, glfwGetTime()); ... } ... } --程序-- 问题就在一线 mvMat = vMat * mMat; 发生矩阵乘法的地方,如果我**删除**将使程序编译成功,但如果不这样做,将会抛出许多关于GLM库的mat4类型的不同错误,例如: “隐式定义的构造函数未初始化 'float glm::vec<4, float(glm::qualifier)0u>::::x'union { T x, r, s; };“ 我已经尝试过像这样**预先**启动所有三个矩阵: glm::mat4 vMat = glm::mat4(1.0f); glm::mat4 mMat = glm::mat4(1.0f); glm::mat4 mvMat = glm::mat4(1.0f); 但这并没有改变任何事情。我查看了我的 C++ 版本 (C++ 20) 是否与 GLM 的矩阵工作不兼容,但即使更改为较旧的 C++ 版本也没有帮助。我不确定 GLM 是否正在努力与我的编译器(MinGW 版本 6.3)一起工作,但我不确定。 我认为重要的是确保您使用的编译器和 C++ 标准实际上受 GLM 支持: GCC 4.7 及更高版本 英特尔 C++ Compose XE 2013 及更高版本 Clang 3.4 及更高版本 Apple Clang 6.0 及更高版本 Visual C++ 2013 及更高版本 CUDA 9.0 及更高版本(实验性) 任何 C++11 编译器 以下是其他相关建议: 至少使用 c++11 使用 GLM 构建代码。尝试使用旧标准(如 c++11 或 c++14)而不是 c++20 来构建代码可能是个好主意。 尝试定义下面的宏,以确保类型针对 SIMD 操作(单指令、多数据)正确对齐: #define GLM_FORCE_DEFAULT_ALIGNED_GENTYPES 确保初始化 4x4 矩阵: glm::mat4 vMat = glm::mat4(1.0f); glm::mat4 mMat = glm::mat4(1.0f); glm::mat4 mvMat = glm::mat4(1.0f);

回答 1 投票 0

C++ OpenGL,链接、编译时出错

我无法继续处理来自链接器或编译器的错误。我想编译我的旧项目,但我无法处理错误。 在带有 source.cpp 的文件夹中我也有 open32.dll glu32.dll glut32.dll(我愿意...

回答 0 投票 0

如何找到 dll :: GLUT 的具体依赖关系

我已经学习opengl大约4-5个月了。 我准备停止使用 glut(一个帮助器库,它混淆了 opengl 编程的许多困难/乏味的方面) 问题是,我觉得我有

回答 4 投票 0

GLSL 片段着色器中的颜色插值?

我需要将标量值映射到范围为 0 到 1 的颜色。它将从绿色变为红色(从 0 到 1) 使用纹理坐标进行线性插值(范围也从 0 到 1) 我已经想通了...

回答 3 投票 0

片段着色器GLSL中的颜色插值?

我需要将标量值映射到范围为 0 到 1 的颜色。它将从绿色变为红色(从 0 到 1) 使用纹理坐标进行线性插值(范围也从 0 到 1) 我已经想通了...

回答 3 投票 0

glutSwapBuffers 到底做了什么?

前缓冲区指针现在是否指向后缓冲区?或者前缓冲区的内容被后缓冲区的内容更新了?如果是这种情况,则更新整个内容块或仅更新部分内容...

回答 2 投票 0

OpenGL 和 WebGL 之间的 Alpha 渲染差异

我使用完全相同的 C++ 代码渲染相同的场景,一次使用 Windows 上的本机 OpenGL,一次使用 Emscripten 渲染 WebGL。场景中的一切看起来都一模一样,除了我撕裂的时候......

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.