路遥见人心,日久知马力

博客园 首页 新随笔 联系 订阅 管理
  55 随笔 :: 3 文章 :: 0 评论 :: 10887 阅读

随笔分类 -  Opengl Core Profile

摘要:1. VBO 的 target 是 GL_ARRAY_BUFFER 不是 GL_VERTEX_BUFFER 2. glUniform()用来给uniform传变量 别用成 glProgramUniform() 3. 下载个 vs2019 的 glsl 高亮插件!就在vs的扩展里能搜到!不然太痛苦了! 阅读全文
posted @ 2022-11-10 20:37 只讲大白话 阅读(56) 评论(0) 推荐(0) 编辑

摘要:1. 如果没有 M 变换、也就是模型坐标系不能变换到世界坐标系、那么: 假设在blender里建立一个模型: 假设还有另外一个模型: 不进行模型到世界坐标系的变换、那么最终的结果看起来就是这样: M变换、说白了就是把模型放到场景的合适的位置上(通过平移,旋转、缩放的手段)、如果不进行这一步,那么一切 阅读全文
posted @ 2022-11-05 10:23 只讲大白话 阅读(189) 评论(0) 推荐(0) 编辑

摘要:【opengl实例】pick操作首先上结果(不会在博客园传视频、具体流程是鼠标点击屏幕上的任意一个点、向此处投射一条射线): 实现的方法: 首先认清楚什么是一条射线、由于我们不是真的要画一条无限长度的线、那么用线段的起始和终止(当然是在世界坐标系里的起点和终点)就能代表这条射线、具体的shader可以用基本的MVPshader。 阅读全文
posted @ 2022-11-02 17:27 只讲大白话 阅读(176) 评论(0) 推荐(0) 编辑

摘要:1. 通读 glfw3.h 、先不看注释、只看API、 认清楚这个库总共有哪些功能(差不多20 min)就可以解决 2. 去官网文档: 比方说、我想实现鼠标点击窗口的时候、把鼠标的坐标打印出来(当然你也可以记录下来、后面进行一些算法) 我可以查询文档:GLFW: Input guide 3. 实践出 阅读全文
posted @ 2022-11-01 20:13 只讲大白话 阅读(429) 评论(0) 推荐(0) 编辑

摘要:首先、 glfw3.h 大概有5800行、但去掉所有注释估计也就不到1000行。 其实不用我去分析、人家的注释写的很清楚了。 差不多就三部分内容: 定义一些状态、错误码 定义一些函数指针(这是为了可以传函数进去回调)、和结构体: 定义一堆设置窗口状态的函数 其实慢慢看都没什么难的!源码面前了无秘密、 阅读全文
posted @ 2022-11-01 20:02 只讲大白话 阅读(124) 评论(0) 推荐(0) 编辑

摘要:直接把 opengl 理解成 STL、QT 之类的东西就OK了 你想做字符串操作、想有一个容器...那就可以调 STL 你想显示输入框、窗口、进度条、按钮、那就用QT 你想画三角形、贴图、进行光照效果的计算、那就用Opengl和GLSL 别想多了。。 其实类比起来、那么理解透彻 springboot 阅读全文
posted @ 2022-11-01 16:44 只讲大白话 阅读(562) 评论(0) 推荐(0) 编辑

摘要:vbo 就是一个一维数组、一般是 GLfloat 类型的数组 数组的内容怎么去解释? 用 glVertexAttribPointer ebo 也是一个一维数组、不过是 GLuint 的数组(显然索引一般没有负数的) 如果 vbo是: [ p1x p1y p1z p2x p2y p2z .... p? 阅读全文
posted @ 2022-11-01 16:18 只讲大白话 阅读(189) 评论(0) 推荐(0) 编辑

摘要:任意的形如 z  = F(x,y)的曲面生成与显示---基于OpenGL Core Profile运行结果: (圆锥面) (抛物面) (马鞍面) 其中的做法是:从顶部看上去就是一个平面网格、每个点的 z、x的位置都是程序细分出来的(指定起始、结束、步长)、比较固定、但高度 y 的计算使用 用户指定的函数去计算 把每个顶点的信息传入 vbo、再计算出每个三角面片的索引号、传入ebo、最后glDra 阅读全文
posted @ 2022-11-01 15:53 只讲大白话 阅读(174) 评论(0) 推荐(0) 编辑

摘要:vbo的作用就是简单的把内存数据导到gpu 这些数据的格式(计算机怎么可能知道你传的一堆float怎么解析?)的解释方法用VertexAttribPointer进行说明(说明的是当前处于bind状态的vbo) 这一堆的配置、如果是在 bind了一个vao的情况下完成的、这个vao就默默记录了这些配置 阅读全文
posted @ 2022-10-31 16:47 只讲大白话 阅读(301) 评论(0) 推荐(0) 编辑

摘要:首先拿到一个LearnOpenGL的基本工程(glfw+glad) glad可以说是去在运行时查询函数地址用的: 如果我们想调用 glGenBuffers() 、就要先查出 glGenBuffers的地址(如下图) 为什么要查询地址呢?其实1.1之后的新函数都在驱动中、所以要去查询函数的地址! 参看 阅读全文
posted @ 2022-10-31 15:12 只讲大白话 阅读(1628) 评论(1) 推荐(0) 编辑

摘要:和 linux 中的文件描述符一样地去理解、可以用整数去指代 输入输出流、文件、设备 那就同样可以用整数去代表一个VAO、VBO 差不多就是这个原理。 opengl的 workflow、差不多就是: 先 gen 一个整数 bind 这个整数到状态机 设置一些状态 取消 bind、以备后用、此时这个“ 阅读全文
posted @ 2022-10-31 14:25 只讲大白话 阅读(30) 评论(0) 推荐(0) 编辑

摘要:固定流水线 = 立即模式(immediate profile) 可编程模式 = 核心模式(core profile) Opengl 3.2 以后、立即模式(或者说是固定管线)被废弃、意味着glVertex__()这种函数都不应该用了! LearnOpengl 给出的教程是 3.3版本 OpenGL 阅读全文
posted @ 2022-10-31 14:14 只讲大白话 阅读(175) 评论(0) 推荐(0) 编辑

摘要:1 : glad + glfw 需要glad的h文件、c文件(这个没有 dll 或者 lib! 需要glfw的h文件、lib文件、(如果是用的glfw3.lib、那么不需要dll文件、否则用glfw3dll.lib 需要配合dll) 2: glew+glfw 需要glew的h文件、lib、dll文件 阅读全文
posted @ 2022-10-30 22:46 只讲大白话 阅读(75) 评论(0) 推荐(0) 编辑

摘要:链接:https://pan.baidu.com/s/1npPIlNkfnCjBqRSxMbexdw 提取码:fbd2 --来自百度网盘超级会员V4的分享 阅读全文
posted @ 2022-10-30 20:25 只讲大白话 阅读(79) 评论(0) 推荐(0) 编辑

摘要:关键的向量运算:求两个点连线上的中点: 其实高中的向量就学过、两个向量加起来是平行四边形的对角线、那么其实数乘 1/2 就能得到中点了! 代码如下: 1 #pragma once 2 #include"Math.h" 3 #include"Shader.h" 4 #include<glew.h> 5 阅读全文
posted @ 2022-10-28 16:57 只讲大白话 阅读(30) 评论(0) 推荐(0) 编辑

摘要:向量乘矩阵、如果向量在左边、向量看成是 行向量 | 1 2 2 | 【1 3 4】 * | 3 5 2 | = 【14 25 28 】 | 1 2 3 | 如果向量在右边、向量看成是列向量 向量 * 向量是分量简单相乘、结果是向量 阅读全文
posted @ 2022-10-28 12:02 只讲大白话 阅读(103) 评论(0) 推荐(0) 编辑

摘要:在一个真实的建模过程中、可能一个模型的几个顶点有很大的数值坐标、 如(100,200,300)(200,300,100)。。。 但是、最后想显示在opengl的窗口内、就必须规范化到 x ,y ∈【-1,1】,z ∈【-1,1】上 但这个区间的点显示在屏幕上、还需要隐含的变化、也就是转换成【像素坐标 阅读全文
posted @ 2022-10-28 09:50 只讲大白话 阅读(1424) 评论(0) 推荐(0) 编辑

摘要:1. GL_LINES vs GL_LINE? 在 glDrawArray()时、指定的类型都是加复数的!!比如: TRIANGLES, LINES, POINTS, 当然写 POINT之类的也能通过编译、但其实是画不出东西的。 正确写法: 错误写法: 注意一点、在核心模式下不使用 glVertex 阅读全文
posted @ 2022-10-28 09:29 只讲大白话 阅读(28) 评论(0) 推荐(0) 编辑

摘要:如题: 在 glVertexAttributePointer 中、会进行 stride 的指定: 这里可能写成:GL_FLOAT,编译和运行都不报错、但程序就是没结果! 注意 GLfloat 才是一个类型、而GL_FLOAT是一个数字宏!!两者是完全不一样的。 阅读全文
posted @ 2022-10-27 11:38 只讲大白话 阅读(18) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示