第二课,OpenGL第一个三角形的流程
本篇文章不按照代码的顺序编写,而按照数据的走向流程编辑。 1 顶点输入 GLfloat vertices[] = { -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f }; 使用GLfloat数组记录...
第八课,OpenGL光照之基本光照
冯氏光照模型(Phong Lighting Model) 环境光照(Ambient Lighting):即使在黑暗的情况下,世界上通常也仍然有一些光亮(月亮、远处的光),所以物体几乎永远不会...
第二十二课,实例化(instancing)
概述 对于拥有同一模型数据的物体(例如:草),每一帧需要渲染成百上千的实例,这些渲染几乎可以瞬间完成,但是上千个渲染函数的调用却会造成极大的性能...
OpenGL环境配置
配置环境 1.打开 VS2019 新建C++项目 2.打开配置属性 设为所有配置,Win32平台 3.基本配置 可使用glfw,以及OpenGL函数(glad)。 C/C++ -> 常...
第七课,OpenGL之glfw回调函数
常用回调函数 按键输入(修饰符也可触发) GLFWkeyfun glfwSetKeyCallback (GLFWwindow *window, GLFWkeyfun callback) void function_name(GLFWwindow* window, int key, int scancode, int acti...
QT with OpenGL(Shadow Mapping)(平行光篇)
一. 给平行光添加阴影 1. 生成一张深度帧缓存 glwidget.h //-----------------测试参数 QOpenGLFramebufferObject* depthMapFBO; const unsigned int SHADOW_WIDTH = 1024, SHADOW_HEIGHT ...
第七课,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...
第七课,OpenGL之LookAt函数
观察空间 通过给定摄像机位置,摄像机焦点,摄像机顶部分向量,可得到摄像机的固定位置。 glm::lookAt(cameraPos, cameraFocus, cameraUp); LookAt函数提供了这种计算,...