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

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

本篇文章不按照代码的顺序编写,而按照数据的走向流程编辑。 1 顶点输入 GLfloat vertices[] = { -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f }; 使用GLfloat数组记录...
2年前
0421
第十六课,面剔除-卡核

第十六课,面剔除

使用OpenGL的面剔除选项,它默认是禁用状态 glEnable(GL_CULL_FACE); 直接运行后,我们发现正方体的部分面确实被剔除了,但是却不是背向面,这是因为我们定义的正方体...
2年前
0300
第七课,OpenGL之glfw回调函数-卡核

第七课,OpenGL之glfw回调函数

常用回调函数 按键输入(修饰符也可触发) GLFWkeyfun glfwSetKeyCallback (GLFWwindow *window, GLFWkeyfun callback) void function_name(GLFWwindow* window, int key, int scancode, int acti...
2年前
02900
QT with OpenGL(Shadow Mapping)(平行光篇)-卡核

QT with OpenGL(Shadow Mapping)(平行光篇)

一. 给平行光添加阴影 1. 生成一张深度帧缓存 glwidget.h //-----------------测试参数 QOpenGLFramebufferObject* depthMapFBO; const unsigned int SHADOW_WIDTH = 1024, SHADOW_HEIGHT ...
2年前
0910
第十五课,混合-卡核

第十五课,混合

丢弃片段 将透明度小于一定阈值的片段完全丢弃。 vec4 texColor = texture(texture1, TexCoords); if(texColor.a < 0.1) discard; FragColor = texColor; discard将该点颜色完全丢...
2年前
0610
第七课,OpenGL之摄像机类-卡核

第七课,OpenGL之摄像机类

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

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

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

第十四课,模板测试

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

第七课,OpenGL之LookAt函数

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

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

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

第十三课,深度测试

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

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

转载自:https://www.cnblogs.com/saltedreed/p/12321314.html 用GLFW处理用户键盘输入有两种方式,一种是使用回调函数,一种是在每一次游戏循环中处理。这两种方法的最大差...
2年前
02620