
opengl
vegetablesssss
一只菜鸟。
展开
-
(十七)深度检测
在opengl中,绘制两个三角形,一般都是后画遮盖住先画的,那么如何达到近处的遮挡远处的效果呢?原创 2024-07-11 20:53:22 · 200 阅读 · 0 评论 -
(十六)视图变换 正交投影 透视投影
include <glad/glad.h>//glad必须在glfw头文件之前包含//GLM//4×4单位矩阵//lookat:生成一个viewMatrix//eye:当前摄像机所在的位置//center:当前摄像机看向的那个点//up:穹顶向量//参数为盒体上下左右远近//颜色//索引0, 1, 2,//uv坐标//2 VBO创建//3 EBO创建//4 VAO创建vao = 0;原创 2024-07-09 21:02:55 · 433 阅读 · 0 评论 -
(十五)GLM库对矩阵操作
在VS中定义transform四维矩阵变量,将这个变量与位置向量进行相乘即可进行旋转平移缩放。上述代码分别实现了对图像进行旋转平移缩放的操作。原创 2024-07-08 19:28:49 · 392 阅读 · 0 评论 -
(十四)向量和矩阵
标量:比如质量/温度/颜色等,没有方向,只有大小的量,称为标量向量:拥有方向跟大小的物理量/数学量为向量,比如力/速度向量特性:1.向量有方向,没有位置2.向量有大小,比如力的大小/速度的快慢。原创 2024-07-08 09:22:58 · 323 阅读 · 0 评论 -
(十三)MipMap
问题:opengl如何判定应该使用下一级的mipmap呢?通过glsl中的求偏导函数计算变化量决定。原创 2024-07-04 22:31:04 · 650 阅读 · 0 评论 -
(十二)纹理和采样
在绘制三角形的过程中,将图片贴到三角形上进行显示的过程,就是纹理贴图的过程。原创 2024-07-03 20:35:24 · 479 阅读 · 0 评论 -
(十一)Uniform
上面的例子中在vs和fs中定义了一个名为time的uniform变量,在render中获取到uniform变量的位置,给其赋值为当前系统时间,最终结果是输出一个随时间变换的彩色三角形。原创 2024-07-03 14:50:28 · 199 阅读 · 0 评论 -
(十)GLSL数据类型和Shader属性动态获取
和之前不同的是删除了layout (location = 0),不再从vao索引位置获取,而改为动态获取。原创 2024-07-02 20:33:14 · 239 阅读 · 0 评论 -
(九)绘制彩色三角形
前面的学习中并未涉及到颜色,现在打算写一个例子,在顶点着色器和片元着色器中加入颜色,绘制有颜色的三角形。在程序中,我们只给了顶点颜色分别为红绿蓝,三角形中其他部分像素颜色是通过插值得来的。原创 2024-07-02 16:01:11 · 444 阅读 · 0 评论 -
(八)EBO和glDrawElements
EBO(Element Buffer Object):元素缓冲对象,用于存储顶点绘制顺序索引号的GPU显存区域绑定vao之后,GL状态机就认为后续操作针对的是当前这个vao,在当前vao状态下绑定任何vbo或者ebo,都会被记录到当前vao当中。原创 2024-07-02 11:34:59 · 340 阅读 · 0 评论 -
(七)glDrawArry绘制
glBindVertexArray:绑定使用的VAO几何信息。接下来只需要告诉GPU,使用几何数据和材质程序来进行绘制。glUseProgram:设置使用的shader程序。材质程序:vs和fs(顶点着色器和片元着色器)first:从第几个顶点数据开始绘制。count:绘制到第几个顶点数据。几何数据:vao和vbo。原创 2024-07-01 21:29:59 · 320 阅读 · 0 评论 -
(六)Shader
Shader(着色器):一种运行在GPU端的类C语言GLSL,用于处理顶点数据以及决定像素片元最终着色。Shader对三角形数据的处理,分为顶点处理和片元处理,分别称为顶点着色器(Vertex Shader)和片元着色器(Fragment Shader)原创 2024-07-01 18:02:17 · 527 阅读 · 0 评论 -
(五)Mesh NDC VBO VAO
NDC(Normalized Device Coordinate)表示标准化设备坐标,使用-1到1之间的数字表示坐标,本质上就是比例。使用NDC可以在不同尺寸的屏幕上显示相同的图形进行缩放处理。原创 2024-07-01 15:22:22 · 378 阅读 · 0 评论 -
(四)opengl函数加载和错误处理
使用gladLoadGLLoader函数可以加载opengl中所有的函数。原创 2024-06-28 18:57:09 · 469 阅读 · 0 评论 -
(三)glfw窗体创建和事件响应
【代码】glfw窗体创建和事件响应。原创 2024-06-28 16:58:26 · 139 阅读 · 0 评论 -
(二)图形渲染管线
1.把3D坐标转换为2D坐标(在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素)着色器(shader):图形渲染管线可以被划分为几个阶段,每个阶段将会把前一个阶段的输出作为输入,在gpu上每个阶段运行各自的小程序,这些小程序叫做着色器。上图是一个图形渲染管线的每个阶段的抽象展示,蓝色部分代表的是我们可以注入自定义的着色器的部分。2.把2D坐标转变为实际的有颜色的像素。原创 2024-06-28 14:42:15 · 225 阅读 · 0 评论 -
(一)opengl环境配置
推荐一个比较好的中文学习网站:https://learnopengl-cn.github.io/原创 2024-06-21 18:00:40 · 377 阅读 · 0 评论