第二课,OpenGL第一个三角形的流程-卡核

第二课,OpenGL第一个三角形的流程

本篇文章不按照代码的顺序编写,而按照数据的走向流程编辑。 1 顶点输入 GLfloat vertices[] = { -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f }; 使用GLfloat数组记录...
第七课,OpenGL之摄像机类-卡核

第七课,OpenGL之摄像机类

类参数 private: glm::vec3 cameraPosi; glm::vec3 cameraFocus; glm::vec3 cameraUp; glm::vec3 dirZ;//正向 glm::vec3 dirX;//右向 glm::vec3 dirY;//上方 定义cameraPosi,cameraFocus,及came...
第二十一课,几何着色器(使用篇-法向量可视化)-卡核

第二十一课,几何着色器(使用篇-法向量可视化)

法向量可视化 绘制物体绘制物体法向量 VS #version 450 core layout (location = 0) in vec3 aPos; layout (location = 1) in vec3 aNormal; out VS_OUT { vec3 normal; } vs_out; un...
第十四课,模板测试-卡核

第十四课,模板测试

当片段着色器处理完一个片段之后,模板测试(Stencil Test)会开始执行,会丢弃片段,被保留的片段会进入深度测试。 即,模板测试是在深度测试之前对片段(三角形...
第七课,OpenGL之LookAt函数-卡核

第七课,OpenGL之LookAt函数

观察空间 通过给定摄像机位置,摄像机焦点,摄像机顶部分向量,可得到摄像机的固定位置。 glm::lookAt(cameraPos, cameraFocus, cameraUp); LookAt函数提供了这种计算,...
第二十一课,几何着色器(使用篇-爆破效果)-卡核

第二十一课,几何着色器(使用篇-爆破效果)

爆破效果 原理: 将每一个片元沿三角形法向量方向移动一段距离 核心代码 + 避坑点: .vert #version 450 core layout (location = 0) in vec3 aPos; layout (location &#...
第十三课,深度测试-卡核

第十三课,深度测试

开启深度测试 glEnable(GL_DEPTH_TEST); 清除深度缓存 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 深度测试函数 OpenGL允许我们禁用深度缓冲的写入,只需要设置它的深度掩码(D...
OpenGL学习笔记——处理键盘输入-卡核

OpenGL学习笔记——处理键盘输入

转载自:https://www.cnblogs.com/saltedreed/p/12321314.html 用GLFW处理用户键盘输入有两种方式,一种是使用回调函数,一种是在每一次游戏循环中处理。这两种方法的最大差...
第二十一课,几何着色器(基础篇)-卡核

第二十一课,几何着色器(基础篇)

几何着色器的作用 输入 输入类型 从顶点着色器接收下列任何一个图元值: 类型数组大小points:绘制GL_POINTS图元时。1lines:绘制GL_LINES或GL_LINE_STRIP时2lines_adjacency...
第十二课,assimp模型加载(绘制篇)-卡核

第十二课,assimp模型加载(绘制篇)

首先创建模型渲染管线 Shader ourShader("1.model_loading.vs", "1.model_loading.fs"); vertexShader #version 330 core layout (location = 0) in vec3 aPos; layou...
第六课,OpenGL的3D坐标系统-卡核

第六课,OpenGL的3D坐标系统

启动深度测试 glEnable(GL_DEPTH_TEST); 启动3D深度测试,绘制的图形不会因为先后顺序改变。 模型矩阵 glm::mat4 mode = glm::mat4(1.0f); mode = glm::rotate(mode, (float)gl...
第二十课,高级GLSL-卡核

第二十课,高级GLSL

内建变量 已知 gl_Position 顶点着色器的裁剪空间输出位置向量 FragColor 片元着色器的片元输出颜色值 未知 顶点着色器变量 gl_PointSize GLSL定义了一个叫做gl_PointSize输出变量,它是...