glfw 相关问题

GLFW是一个免费的开源多平台库,用于打开窗口,创建OpenGL上下文和管理输入。它很容易集成到现有的应用程序中,并没有声称主循环。 GLFW是用C语言编写的,并且对Windows,Mac OS X以及使用X Window系统的许多类Unix系统(例如Linux和FreeBSD)提供原生支持。 GLFW根据zlib / libpng许可证授权。

ImGUI 多视口现代方法

所以我正在尝试拥有多视口(能够将 ImGUI 窗口移出 glfw 上下文)并停靠在我的 ImGUI 应用程序上。 到目前为止,ImGUI 应用程序本身正在运行,但是当我尝试添加以下内容时

回答 0 投票 0

错误:ImGui_ImplOpenGL3_CreateDeviceObjects:无法编译顶点着色器!使用 GLSL:调用 ImGui_ImplGlfw_NewFrame() 时在 imgui 中为 4.60 NVIDIA; [关闭]

我正在尝试向我在 visual studio 中的 opengl 测试项目添加一个基本的 gui,但现在它随机停止工作并开始说 错误:ImGui_ImplOpenGL3_CreateDeviceObjects:无法编译 v...

回答 0 投票 0

Windows上的项目直接添加GLFW源码

请解释我做错了什么: 我正在尝试将 GLFW 添加到 Visual Studio 项目中,而不是先将其构建到二进制 .lib 文件中,也就是说,我将整个 GLFW 源文件添加到 pro...

回答 0 投票 0

GLFW 窗口未在 macOS 上显示?

我正在尝试打开一个简单的窗口。 这是我的文件树: ├── CMakeLists.txt ├── build.sh ├── 配置.sh ├── 外部 │ ├── 高兴 │ │ ├── CMakeLists.txt │ │ ├── 包括 │ │ └── 源码 ...

回答 0 投票 0

无法为 GPGPU 执行 OpenGL 计算

我尝试根据本教程实现OpenGL GPGPU计算。 我现在重新实现代码以使用 VAO、VBO 而不是 glVertex。我创建的代码是计算数组 X 和 arr 之间的总和...

回答 0 投票 0

在两个线程中使用两个 OpenGL 上下文的问题(每个线程一个)

我一直在一个线程中使用一个 OpenGL 上下文(非常简单),如下所示: 内部主要 { // 初始化 OpenGL (GLFW / GLEW) 编译着色器(); 而(glfwWindowShouldClose(WindowHandl ...

回答 1 投票 0

glReadPixels() 读取错误值

目前,我正在尝试回读我在 OpenGL 中传输到纹理的数据。但是,我没有收到正确的结果。我哪里错了? #包括 #包括 目前,我正在尝试回读我在 OpenGL 中传输到纹理的数据。但是,我没有收到正确的结果。我哪里错了? #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostream> const int SCR_WIDTH = 600; const int SCR_HEIGHT = 600; int main() { glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); int texSize = 2; const int Size = texSize*texSize*4; float *data = new float[Size]; float *result = new float[Size]; for(int i=0;i<Size;i++){ data[i] = i + 1.0; } GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "LearnOpenGL", NULL, NULL); if (window == NULL) { std::cout << "Failed to create GLFW window" << std::endl; glfwTerminate(); return -1; } glfwMakeContextCurrent(window); if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { std::cout << "Failed to initialize GLAD" << std::endl; return -1; } glEnable(GL_TEXTURE_2D); GLuint fbo; glGenFramebuffers(1,&fbo); glBindFramebuffer(GL_FRAMEBUFFER,fbo); glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); GLuint text; glGenTextures(1,&text); glBindTexture(GL_TEXTURE_2D,text); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); glTexImage2D(GL_TEXTURE_2D,0, GL_RGBA, texSize, texSize, 0,GL_RGBA,GL_FLOAT,data); glFramebufferTexture2D(GL_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,GL_TEXTURE_2D,text, 0); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glReadPixels(0, 0, texSize, texSize,GL_RGBA,GL_FLOAT,result); std::cout<<"Data before roundtrip:\n"; for (int i=0; i<texSize*texSize*4; i++) std::cout<<"\n"<<data[i]; std::cout<<"\nData after roundtrip:\n"; for (int i=0; i<texSize*texSize*4; i++) std::cout<<"\n"<<result[i]; // clean up free(data); free(result); glDeleteFramebuffers (1,&fbo); glDeleteTextures (1,&text); glfwTerminate(); return 0; } 结果如下: Data before roundtrip: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Data after roundtrip: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 这不是我期望的结果。我希望数据和结果都是一样的 我已经在网上查过了,但仍然没有结果或解释。 glReadPixels 没有读取错误的值,如果是这样的话我会感到惊讶。 您希望返回的值与您传递给glTexImage2D 的值相同,这是一个误解,因为客户端内存中的数据会被 GL 解包并根据指定类型转换为内部格式(参见: 8.4.4 像素矩形的传输). 简而言之,如果您的数据类型是 GL_FLOAT,那么数据数组中的值必须在 [0.0f , 1.0f] 范围内,否则低于和超出该范围的每个值都会被限制在该范围内。由于您的值高于 1.0f,将发生钳位,因此这些值将被解释为 1.0f,这就是您从 glReadPixels 获得的值。 所以,要么将每个组件除以 255.0f,要么使用其中一种整数类型,例如GL_UNSIGNED_BYTE.

回答 1 投票 0

使用 glDrawElements 时什么会导致 OpenGL 崩溃?

我的 IndexBuffer 有什么问题? 我尝试在 IndexBuffer 的帮助下渲染矩形,但应用程序崩溃了 问题是,如果我使用纯 VAO 对象和 glDrawArrays 一切正常,但是作为...

回答 0 投票 0

为什么我的着色器给我黑屏?

我想说的是我有一个关于地形生成的项目,我一直在尝试用不同的着色器计算法线。该项目在第一个着色器上工作得很好......

回答 1 投票 0

如何在我的程序中调整 glm::lookAt() 以使用 WASD 键移动“相机”?

我使用 OpenGL 创建了一个地平面,并尝试在按下 W 时向前移动“相机”,在按下 S 时向后移动,在按下 D 时向右看,在按下 A 时向左看。我 .. .

回答 1 投票 0

相同的代码,但来自不同平台(OpenGL)的不同结果

我有一个练习来画一个简单的立方体,老师让我在其中填写:“你的代码在这里......”。 我已经做到了,但是当看到结果时,它呈现出一些奇怪的东西(图...

回答 0 投票 0

glfwSwapBuffers 慢(>3s)/如何在计算着色器进行更长的计算时使主循环平稳运行?

我编写了一个程序,在计算着色器上进行一些计算,然后显示返回的数据。这完美地工作,除了程序执行在 ...

回答 0 投票 0

OpenGL着色器不编译[关闭]

这个着色器似乎无法编译我正在使用 c++ 和 glew,openGL。 glew 版本为 2.2.0,openGL 版本为 4.6。 glGetShaderInfoLog() 函数只返回废话。编译后的...

回答 0 投票 0

如何让 C++ OpenGL Camera 向左和向右看?

在这个项目中,我制作了一个3d立方体并添加了一个相机。我们可以使用 W、A、S、D 键前进、后退、右转或左转,但我们不能右转或左转。比如我想看背面……

回答 1 投票 0

如何解决该错误。AttributeError: module 'pyglfw' has no attribute 'pyglfwInit'.

我想用python做一个openGL项目。下面的代码是创建窗口来显示图形。 import os import glfw from OpenGL.GL import * class renderwindow():'''GLFW ...'。

回答 1 投票 1

将物体的旋转与第一人称相机opengl对齐。

我想实现一个子弹,所以我有了这个自由移动的第一人称摄像机。我从learopengl.com得到了这个摄像头,这是编码。/ 摄像机的默认值 const float YAW = -90......

回答 1 投票 0

当在glfw的hello world程序中调用 "glClear(GL_COLOR_BUFFER_BIT); "时,出现EXC_BAD_ACCESS (code=1, address=0x0)。

我试图在MacOS上安装CLion的OpenGL。我的程序可以编译,但当我运行它时,我得到了这个崩溃报告。自启动以来唤醒时间:6200秒 6200秒 System Integrity Protection: enabled Crashed Thread: ...

回答 1 投票 0

在ctypes.func.argtypes中返回的GLFWwindow句柄用什么结构来表示合适?

我在glfw中有一个简单的程序,它使用glfw.glfwSetCursorPos将鼠标放在屏幕上的某个位置。然而,它引发了很多错误,直到我发现这个帖子:ctypes......。

回答 1 投票 0

如何将GLEW和GLFW以及OpenGL链接到MingW的g++中?

我正在做一个关于OpenGL的课程。因此,我已经在Visual Studio 2019中运行了我的项目,它可以工作。我需要在Visual Studio中做的是。添加GLEW和GLFW的额外包含目录。(当...

回答 1 投票 0

为什么从上面直接往下看一个形状的时候没有渲染?

我修改了一下tutorial04.cpp,来自http:/www.opengl-tutorial.orgbeginners-tutorialstutorial-4-a-colored-cube,我做了一个金字塔形状,我想把摄像头放在金字塔上面,然后...

回答 1 投票 -1

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