openGL
kkkkkkkkkkaZZL
这个作者很懒,什么都没留下…
展开
-
【QT】pro文件里添加又删除LIBS不影响运行的原因
我发现个问题啊,如果运行项目,发现报错,缺少某dll,接着你在pro文件里加上win32:LIBS += -lOpengl32(举个例子),接着可以运行了,接着把这行删掉,再运行,仍然可以,后续是不影响的。但是当你把build文件夹删掉的时候,再次运行,就会出现同样的错误,gpt说是因为makefile已经存在了,已经找到了位置,后续并没有重新生成,经过我测试,发现还真是这样的。当你在Qt项目的.pro文件中添加,然后成功构建项目后,这行配置指示链接器在Windows平台上链接到OpenGL库。原创 2024-04-10 21:19:24 · 578 阅读 · 1 评论 -
【11】使用透视投影建立一个3D空间的测试
视锥体前后0.01到1000,也就是说建立一个从人的视角看出去的一个锥体,物体不在这个视锥体范围内将不显示。proj:投影矩阵,可以选择正交投影,或者透视投影,为了营造3D透视的感觉,我们使用透视投影,算下来,将是一个相机在原点,看向-z 方向,前后距离(0.01,1000)的情况。通过调整model,控制物体移动,调整view控制相机移动。调整model.z 可以看到矩形大小在变化,是个3D透视。一顿绑定,顶点数组,顶点缓冲区,索引缓冲区,着色器。view设置个在原点,model设置个不移动的。原创 2023-11-08 14:59:59 · 584 阅读 · 0 评论 -
【10】使用Test类测试&ImGUI
另一个是测试颜色的。原创 2023-09-21 21:47:52 · 143 阅读 · 0 评论 -
【9】openGL调用imGUI&使用其自带例子测试
在backends里找到你需要的 .h .cpp文件,总共四个文件,复制过来。将根目录下所有.h .cpp文件复制到你的项目文件夹imgui下面。,因为我们实际使用在自己的主函数里而不是直接使用它的例子。去github下载imgui源码,得到。进入exmaple文件夹,可以看到例子。原创 2023-09-17 12:00:06 · 333 阅读 · 0 评论 -
【8】shader写入类中
上一篇将 vao vbo写入类中进行封装,本篇将shader进行封装。原创 2023-09-10 11:52:46 · 214 阅读 · 0 评论 -
【7】集成vao vbo
分析一下代码,va是顶点数组 vertex array object,vb是顶点缓冲对象 vertex buffer object。positions是顶点数组,存有二维顶点数据,共有四个点,用来绘制矩形。在之前的代码中,生成、绑定顶点数组对象,生成、绑定顶点缓冲对象,启用顶点属性数组,写了很长一部分,很麻烦。可以看到,初始化时生成了 vao,并存储了名字到 m_RendererID。的参数,我们就可以分析出 layout 的作用。后面使用时还需要绑定,因此在函数。VertexArray声明。原创 2023-09-09 18:33:24 · 113 阅读 · 0 评论 -
【6】uniform颜色写入
里每次都设置其unifrom的话,就可以实现每一帧设置颜色。在主程序里就可以写入颜色(原创 2023-09-04 10:12:56 · 963 阅读 · 0 评论 -
【5】openGL使用宏和函数进行错误检测
来检查错误,我们可以通过在运行时进行打断点查看glGetError返回值,得到的是一个十进制数,将其转为十六进制,再转到 glew.h 里查询这个数,就能看到错误类型。如果不添加错误信息检测代码,直接运行的话,只能看到黑屏,不会有错误提示,有了错误检测,会看到终端循环输出错误码:1280。1280的十六进制是0x0500,转到。当我们编写openGL程序,没有报编译链接错误,但是运行结果是黑屏,这不是我们想要的。原创 2023-09-03 10:41:03 · 679 阅读 · 0 评论 -
【4】索引缓冲区的使用&为什么使用
这个函数绘制三角形是按照顶点的顺序来的,那么绘制一个矩形就需要绘制两个三角形,每个三角形需要提供三个顶点,那么在positon数组里就有6个顶点的数据,每个顶点占两个float数(假如是二维)。positions里面记录了四个点的坐标,那么indices直接记录绘制的点的序号就可以了。原创 2023-09-02 20:13:30 · 238 阅读 · 0 评论 -
【3】单着色器文件读取
Basic.shader文件,可以发现顶点着色器和片段着色器是写在一个文件里的,这里我们将他们读取出来,而不是上一篇使用string的方式。读取结果:通过string打印可以看到成功了。原创 2023-09-02 19:43:04 · 429 阅读 · 0 评论 -
【2】openGL shader着色器分析&三角形填色
OpenGL中的shader id(如glCreateShader返回的id),如果不加以管理,确实可能不是唯一的。“在OpenGL中,通常一个文件会包含多个shader程序,我们需要一个函数返回一个特定程序的ID。在OpenGL中,通常一个文件会包含多个shader程序,我们需要一个函数返回一个特定程序的ID。加static可以避免该函数暴露给其他文件,仅在本文件内起到程序创建的目的,不与其他程序产生影响。如果一个文件定义了多个这样的程序,就需要区分返回每个程序的唯一ID。原创 2023-08-28 20:42:27 · 320 阅读 · 0 评论 -
【1】openGL glew示例代码分析&绘制一个三角形
可以直接查询函数的定义和使用。原创 2023-08-27 22:53:28 · 1279 阅读 · 0 评论 -
LINK : fatal error LNK1104: 无法打开文件“E:\xxx\Debug\pro_cpp_1.exe;E:\xxxDependence\GLEW\include“
我就先检查了C/C+±常规-附加包含目录,把glew调整到glfw之前,怀疑是顺序问题对链接器也是同样的操作,检查附加库目录检查附加依赖项都没问题啊,开始怀疑那个错误,首先这是一个链接错误,说明不是没找到 include/GL那个路径,为什么要同时打开exe和include目录呢,exe所在目录没问题,这里如果你了解编译-链接的过程的话,肯定会直接看出问题所在,只不过我一知半解,猜中了,原来是。原创 2023-08-27 15:08:05 · 1816 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 __imp__glClear@4,函数 _main 中引用了该符号
自己犯这个错误有些搞笑了,找着教程一步一步来还出错,复制。原创 2023-08-26 16:44:59 · 486 阅读 · 0 评论