• 使用OpenGL C ++渲染为纹理

    我正在尝试将一些多边形渲染到纹理,然后将纹理渲染到屏幕。 我不确定如何调试我的代码,因为这将需要探究OpenGL的内部状态,因此,我会比您指出我所做的错误更能提供有关如何自我调试的提示。 无论如何,我评论了我编写的代码,解释了我希望每一行做什么。 这是代码应该执行的操作的描述。 基本上,我制作了一个顶点着色器,为片段着色器提供了位置,UV和颜色。片段着色器具有用于激活纹理采样的制服,否则它将仅输出输入颜色。在两种情况下,颜色都乘以均匀颜色。首先,我创建一个纹理,然后用红色和绿色的原始像素数据填充它进行测试。...
  • OpenGL在显示多个对象的同时显示白屏

    我试图在一个简单的多维数据集上实现法线贴图,但是由于我的法线出现问题,我想尝试使用几何着色器显示它们。在learnopengl教程之后,它基本上调用两次mesh.render(),第一次绘制模型,第二次显示法线。当我尝试做同样的事情我得到这个 立方体看起来很漂亮,但是它前面有一个奇怪的白色矩形,我不知道为什么。我不知道这是工程图的问题还是几何着色器,所以我将两者同时发布。 我的代码: glutDisplayFunc(MyRenderScene); glEnable(GL_DEPTH_TEST);...
  • 使用OpenGL将绘制的纹理保存到文件中

    我用openGL绘制纹理(视频图像)。在地图上绘制图像,因此,在大多数情况下,绘制的图像是梯形的。仅当我使用“透视正确纹理”时,图像在地图上看起来才不错。 我的问题是如何捕捉绘制的纹理并将其存储到文件中。我只想保存绘制的纹理而不保存屏幕截图或此函数中未绘制的任何其他内容(公共重写void OnRender())。 使用openTK nuGet v1.1.1589.5942(v4.0.6) using GMap.NET.OpenGL; using OpenTK; using OpenTK.Graphics.O...
  • QGLWidget的奇怪行为

    使用以下代码在python中运行非常简单的示例时: class VisualWindow(QMainWindow): def __init__(self, size=(600, 600)): self.app = QApplication(sys.argv) super().__init__() self.widget = VisualWidget() self.setCentralWidget(self.widget) ...
  • 什么会阻止虚幻引擎中的glGetTexImage?

    这个问题有点抽象,但是我在这里很困惑,所以我想问一下。 语境 I am using OpenGL to render content from an emulator and then I read the framebuffer from the GPU memory and write it to the CPU. The issue I'm having happens when I read the framebuffer from the GPU memory using glGetTexImag...
  • OpenGL-设置平面反射的深度测试

    我正在尝试在OpenGL中进行平面反射。 我已经设置了模版测试并将反射投影到镜对象上,但是反射是在场景中所有其他对象和地面之上渲染的(就像在图像上一样)。第二个问题是反射的背景色根本无法渲染。 我很可能在深度测试方面遇到了一些问题,但是我不确定它在哪里以及如何修复。 所以问题是: 反射深度测试问题在哪里? 为什么根本不反映黑色背景? 这是代码的一部分,我在其中渲染原始场景和反射场景,并使用模板测试。 void render_example_scene() // Renders th...
  • 您能帮我检查一下为什么它无法正常工作的问题吗(鼠标单击不生成任何内容)

    这是我的代码。 我想编写一个代码,当我单击鼠标时,将在鼠标位置生成一张光盘,然后移动它。光盘可以是任何颜色和任何大小。 我实际上不知道我的错误在哪里。我可以编译它,但是不能工作。当我单击时,什么也没有产生。您可以帮我检查一下,哪一部分有问题? 我认为可能是在鼠标部分或绘制光盘的部分。 #include <stdlib.h> #include <stdio.h> #include <math.h> #ifdef __APPLE__ #define GL_SILENCE_DEPRECATION #includ...
  • 有人可以帮我实例化在OpenGL中工作吗?

    https://pastebin.com/Dyv5JBFd 我为多维数据集创建了一个顶点数组。我正在尝试以立方体形状创建1000个立方体。我相信我不了解何时生成和绑定VAO和VBO。老实说,我不知道哪些信息可以帮助您解决这一问题。在pastebin中,我首先包含了着色器,然后包含了主要代码。如果我可以提供任何帮助,请告诉我。什么都没有显示,但是正在运行。谢谢。 编辑:多维数据集在第100行 编辑2:实例化代码从160开始 编辑3:显示矩阵从272开始 编辑4:抽奖电话始于293 #version 330 c...
  • GLWF捕获鼠标导致分割错误

    对于老手来说,这可能很容易,但是我是Opengl的新手,目前正在学习教程。 现在,我将要捕获鼠标事件(以设置相机移动)。 但是,尽管我运行的是作者的原始代码,但是却遇到了段错误。 我猜他可能忘记设置其他内容(只是一个猜测)。 但是,由于我是绝对的opengl初学者,所以我完全迷失了这种可能。 问题在于捕获鼠标移动会产生分割错误。 The mouse and keyboard input is completely capsuled in a separate class called Window.cpp....
  • 使用C ++在OpenGL中纹理3d多边形

    我是OpenGL和编程技术的新手,我试图将任何图片粘贴到立方体和金字塔的所有表面上,以便图片可以随它们移动和旋转 我尝试了很多教程,但大多数教程都专注于2d或其他编程语言(如C#)。 如何对多边形进行纹理处理 这是代码: #include <GL/glut.h> float pyramid_x = 0, pyramid_y = 0, pyramid_z = 0; float cube_x = 0, cube_y = 0, cube_z = 0; float pyramid_angle = 0.0; floa...
  • 三角形不出现在OpenGL中?

    我可以使Opengl三角形出现。 #include <GL/glew.h> #include <GLFW/glfw3.h> #include <iostream> const char* vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "void main()\n" "{\n" " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" ...
  • 在OpenGL着色器文件三角形中获取随机错误。请帮忙…):

    我一直在尝试找到一种方法来使此工作正常,但无法解决!我收到随机错误 Ans至少可以说我一无所知。这是一个OpenGL着色器文件三角形,我同时包含主着色器和GLSL着色器。真的需要一些帮助谢谢。 这是我的顶点和片段,一个文件 #shader vertex #version 330 core layout(location = 0) in vec3 position; void main() { gl_Position = vec4(position.x, position.y, position....
  • 为什么在类的实例中强制转换变量也将其在父类的另一个实例中强制转换?

    我一直在尝试准备使用3D引擎,但是遇到了一些问题。即: 当我尝试将动画添加到我的一个对象/类中时,它的几何形状(用于描述其形状的变量)也会覆盖其父类中的其他一些对象。 我将在此处插入一些代码段以显示我的意思: 几何父类: class ParamSurface : public Geometry { //--------------------------- unsigned int nVtxPerStrip, nStrips; public: ParamSurface() { nVt...
  • OpenGL计算着色器无法找到制服

    从一到两周前开始,我开始研究计算着色器,这是因为我对图形和着色器的总体兴趣很大。大约3个月前,我从事CPU光线追踪器的工作,并希望重新开始在GPU上进行这项工作,我注意到由于功率限制,顶点/片段着色器无法做到这一点。 直到我开始注意到计算着色器。现在,我可以使用最基本的原始raytracer来以20 fps的速度渲染大约500个球体。 我遇到的问题是glGetUniformLocation方法无法跟踪我的相机制服(“ u_CameraTransform)”,它是mat4。我正在运行opengl 4.5,并检...
  • 修复驾驶汽车的程序时出现问题

    对不起,我英语不好:( 任务是通过在旋转时按a键或s键并在旋转时按w或z键沿旋转方向移动。 我当前的方向是(dir_x,dir_z),如何去新的方向? 我想修改下面的源代码 使用键盘输入进行运动控制-'A':将前轮向左旋转1度(θ[2]的值增加1)-'S':将前轮向右旋转1度(减小theta [2的值]乘以1)-'W':将速度变量值增加0.1(变量名:speed)-'Z':将速度变量值减少0.1 沿行进方向移动汽车的位置 需要一个变量来指示汽车的当前位置 由于它在xz平面中移动,因此需要x,z坐标变量示例:...
公告

欢迎访问 goshare  点击这里设置您的邮箱  可以接收站内跟帖、回复邮件提醒,不错过任何一条消息。

关注公众号订阅更多技术干货! 魅力技术资源分析