OpenGL
文章平均质量分 70
韩天衣
热爱游戏开发,希望能有所成就
展开
-
MAC—M1—CLion—配置FreeType
MAC—M1—CLion—配置FreeType通过brew下载FreeType第一步下载好brew后,在终端输入brew install freetype下载好freetype第二步将freetype导入,找到文件的地址通过下面两行代码导入include_directories(/opt/homebrew/Cellar/freetype/2.11.1/include/freetype2)link_directories(/opt/homebrew/Cellar/freetype/原创 2022-04-11 10:53:13 · 1125 阅读 · 1 评论 -
OpenGL-36-01SSAO
OpenGL-36-01SSAO个人理解总结思路解读首先还是正常渲染场景,按照延迟渲染的方式将所有数据传入G缓冲中,然后在将所有数据传入ssao缓冲中,对齐进行ssao处理,然后在传入到模糊缓冲中,进行模糊处理,最后在通过光线渲染,将其渲染到平面上。显然,我们需要四个着色器程序。SSAO处理设置采样核心简单的不多说了,这里是说明最重要的ssao处理我们想要对于每个顶点去采样它的法线半球,但是对于每个顶点单独生成法线半球的采样核心是十分困难的。因此我们采用切线空间,在切线空间中,所有顶点的采样核原创 2022-04-08 16:04:39 · 654 阅读 · 0 评论 -
OpenGL-17-01-模版测试
OpenGL-17-01-模版测试基本说明模版测试执行时机:当片段着色器处理完一个一个片段后,模版测试就会进行。模版测试和深度测试一样,是有可能丢弃片段的。模版测试是根据模版缓冲进行的。如何使用模版测试通过这行代码启动模版测试glEnable(GL_STENCIL_TEST);注意,和颜色和深度缓冲一样,你也需要在每次迭代之前清除模板缓冲。glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);原创 2022-03-28 15:02:21 · 246 阅读 · 0 评论 -
OpenGL-07-01摄像机
OpenGL-07-01摄像机当我们讨论摄像机/观察空间(Camera/View Space)的时候,是在讨论以摄像机的视角作为场景原点时场景中所有的顶点坐标:观察矩阵把所有的世界坐标变换为相对于摄像机位置与方向的观察坐标。要定义一个摄像机,我们需要它在世界空间中的位置、观察的方向、一个指向它右侧的向量以及一个指向它上方的向量创建一个摄像机我们想要创建一个摄像机,并通过WASD来进行水平移动,步骤如下很简单,创建一个摄像机位置,方向向量,摄像机上轴,注意,这三个是全局变量glm::vec3 cam原创 2022-03-24 19:46:57 · 393 阅读 · 0 评论 -
OpenGL-06-02练习题
OpenGL-06-02练习题一、对GLM的projection函数中的FoV和aspect-ratio参数进行实验。看能否搞懂它们是如何影响透视平截头体的。projection = glm::perspective(glm::radians(45f), (float)SCR_WIDTH / SCR_HEIGHT, 0.1f, 100.0f);主要对第一个参数和第二个参数进行测试首先测试第一个参数45度时70度时30度时显然,我们可以直观的感受到,这个参数控制的是视野大小,视野小的时原创 2022-03-24 15:21:59 · 768 阅读 · 0 评论 -
OpenGL-05-02练习题
OpenGL-05-02练习题一、使用应用在箱子上的最后一个变换,尝试将其改变为先旋转,后位移。看看发生了什么,试着想想为什么会发生这样的事情glm::mat4 trans;trans = glm::rotate(trans, (float)glfwGetTime(), glm::vec3(0.0, 0.0, 1.0));trans = glm::translate(trans, glm::vec3(1, 0, 0));ourShader.setMatrix("transform",trans);原创 2022-03-24 11:30:11 · 249 阅读 · 0 评论 -
OpenGL-04-02练习题
OpenGL-04-02练习题一、修改片段着色器,仅让笑脸图案朝另一个方向看#version 330 coreout vec4 FragColor;in vec3 ourColor;in vec2 TexCoord;// texture sampleruniform sampler2D texture1;uniform sampler2D texture2;void main(){ FragColor = mix(texture(texture1, TexCoord), tex原创 2022-03-23 19:09:13 · 253 阅读 · 0 评论 -
OpenGL-04-01纹理
OpenGL-04-01纹理原文:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/#_5本文只是对原文的个人总结与简化在程序最前端加上这两行代码#define STB_IMAGE_IMPLEMENTATION#include <stb_image.h>接下来我们创建纹理对象,为了方便解释,我们创建两个纹理对象创建纹理创建第一个纹理对象和之前的OpenGL对象一样,纹理也是使用ID引用的原创 2022-03-23 19:08:46 · 628 阅读 · 0 评论 -
OpenGL-03-练习题
OpenGL-03-练习题一、修改顶点着色器让三角形上下颠倒#version 330 corelayout (location = 0) in vec3 aPos;layout (location = 1) in vec3 aColor;out vec3 ourColor;uniform float xOffset;uniform float colorOffset;void main(){ gl_Position = vec4(aPos.x, -aPos.y, aPos.z,原创 2022-03-23 14:04:41 · 312 阅读 · 0 评论 -
OpenGL-03-着色器
OpenGL-03-着色器前文的文本来自:https://learnopengl-cn.github.io/01%20Getting%20started/05%20Shaders/本文主要做个人总结与简化GLSL着色器是使用一种叫GLSL的类C语言写成的。GLSL是为图形计算量身定制的,它包含一些针对向量和矩阵操作的有用特性。着色器的开头总是要声明版本,接着是输入和输出变量、uniform和main函数。每个着色器的入口点都是main函数,在这个函数中我们处理所有的输入变量,并将结果输出到输出变量原创 2022-03-23 13:49:34 · 627 阅读 · 1 评论 -
OpenGL-02-练习题
OpenGL-02-练习题一、添加更多顶点到数据中,使用glDrawArrays,尝试绘制两个彼此相连的三角形仍然继续使用索引,只需要更改顶点坐标以及索引顺序即可#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>void framebuffer_size_callback(GLFWwindow* window, int width, int height);void proce原创 2022-03-23 09:28:02 · 274 阅读 · 0 评论 -
OpenGL-02-创建三角形,矩形
OpenGL-02-创建三角形/矩形逐步解析原文:https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/#_3本篇,主要对此文做个人总结以及思路简化这里首先要讲解一些基本知识对于OpenGL,我们需要至少设置一个顶点着色器和一个片段着色器。通过他们我们才能绘制三角形此外,OpenGL着色器使用GLSL语言这是一段十分基础的GLSL顶点着色器源代码#version 330 corelayou原创 2022-03-22 22:28:19 · 193 阅读 · 0 评论