- 博客(22)
- 资源 (6)
- 收藏
- 关注
原创 OpenGL超级宝典(第7版)笔记22 原子计数器 清单5.31-5.34
OpenGL超级宝典(第7版)笔记22 原子计数器 清单5.31-5.34文章目录OpenGL超级宝典(第7版)笔记22 原子计数器 清单5.31-5.34前言1 原子计数器初介绍1.1 原子计数器的声明1.2 原子计数器准备缓冲1.3 使用原子计数器计数3 总结前言上一篇我们介绍了着色器存储区块的相关内容(包括了和uniform块的对比),还介绍了原子内存操作和屏障的实用问题。这一篇我们将介绍原子计数器,我们将通过它来进行计数,并通过它计算图形的面积。1 原子计数器初介绍原子计数器是一种特殊
2021-06-04 22:51:17
712
原创 OpenGL超级宝典(第7版)笔记21 着色器存储区块shader storage block 清单5.29-5.30
OpenGL超级宝典(第7版)笔记21 着色器存储区块shader storage block 清单5.29-5.30文章目录OpenGL超级宝典(第7版)笔记21 着色器存储区块shader storage block 清单5.29-5.30前言1 着色器存储区块shader storage block 初介绍6 总结前言上一篇为大家介绍了uniform变量和uniform块的用法,其中有许许多多要注意的点,uniform变量和块使得我们可以更方便的传入数据到着色器中去,但是我们的着色器并不能对
2021-04-28 12:04:39
928
原创 OpenGL超级宝典(第7版)笔记20 统一变量 一致区块 uniform相关内容 清单5.9-5.28
OpenGL超级宝典(第7版)笔记20 统一变量 一致区块 uniform相关内容 清单5.9-5.28文章目录OpenGL超级宝典(第7版)笔记20 统一变量 一致区块 uniform相关内容 清单5.9-5.28前言1 统一变量 (uniform变量)6 总结前言上一篇我们用顶点数组和缓冲区向着色器传输顶点数据,避免了在着色器中内置大量的数据,方便了我们添加顶点。虽然现在的顶点还是通过数组的方式,我们还是要手动输入,但是相比内置在着色器中,我们在自己的内存中可以更灵活的对它进行修改。当然我们并
2021-04-25 15:02:21
722
原创 OpenGL超级宝典(第7版)笔记19 用缓冲为VS提供数据 清单5.1-5.8
OpenGL超级宝典(第7版)笔记19 用缓冲为VS提供数据 清单5.1-5.8文章目录OpenGL超级宝典(第7版)笔记19 用缓冲为VS提供数据 清单5.1-5.8前言1 具体的思路5 总结前言上一篇我们把向量、矩阵、摄像机的类做了介绍,并且实现了3D下的移动。但是我们遇到了一个比较麻烦的事情,就是我们在输入顶点数据的时候,仍然采用将数据内置到shader中并用gl_VertexID来调用,非常的麻烦。如果我们有建模软件得到的模型(可能包含成千上万的三角面),我们不能都把它弄到shader中去
2021-04-16 17:48:39
639
原创 OpenGL超级宝典(第7版)笔记18 位移、旋转、缩放、观察、透视矩阵 代码实现
OpenGL超级宝典(第7版)笔记18 位移、旋转、缩放、观察、透视矩阵 代码实现文章目录OpenGL超级宝典(第7版)笔记18 位移、旋转、缩放、观察、透视矩阵 代码实现前言1 向量2 矩阵3 摄像机4 试着渲染3D画面5 总结前言上一篇我们介绍了缩放矩阵、旋转矩阵、位移矩阵、观察矩阵、透视矩阵,我们介绍了这个流程中每个矩阵的用处,以及简单的推导了一下矩阵是如何来的,这里我们要把这些计算添加到我们自己的c++类中去,我们将基础的四维向量(3维同理不再过多介绍)、4*4矩阵都封装到类中,之后定义一
2021-04-14 12:35:59
698
原创 OpenGL超级宝典(第7版)笔记17 位移、旋转、缩放、观察、透视矩阵,三维空间的观察移动
OpenGL超级宝典(第7版)笔记17 位移、旋转、缩放、观察、透视矩阵 实现3维观察移动文章目录OpenGL超级宝典(第7版)笔记17 位移、旋转、缩放、观察、透视矩阵 实现3维观察移动前言1 变换矩阵1.1 位移矩阵1.2 缩放矩阵1.3 旋转矩阵遗留的问题:四元数如何定义 如何使用1.4 矩阵的顺序2 观察矩阵3 透视矩阵4 向量、矩阵基础运算的实现5 变换、观察、透视矩阵的实现6 空间中的三角形7 总结前言我们上次介绍了坐标系,向量,矩阵,介绍了他们的一些基础计算。我们下面开始就要开始逐渐
2021-04-12 00:31:48
1065
原创 OpenGL超级宝典(第7版)笔记16 向量 矩阵 它们都有什么用
OpenGL超级宝典(第7版)笔记16 向量 矩阵 它们都有什么用文章目录OpenGL超级宝典(第7版)笔记16 向量 矩阵 它们都有什么用前言1 从坐标系开始2 向量2.1向量基础2.2向量运算4 总结前言本篇并不是纯数学上的介绍,而是从实际应用的角度来想大家介绍向量矩阵的内容,所以说并不会十分枯燥,我们采用先介绍计算的细节和过程,然后介绍我们将在哪些地方用到它们,所以当大家看到复杂的计算时候不要抵触,这样或那样复杂的计算(比如矩阵乘法)都是为了能够实现各种各样的效果,并不是为了为难大家。因为
2021-04-11 10:32:40
442
原创 OpenGL超级宝典(第7版)笔记15 前三章实例 下个五子棋全代码 (附)
OpenGL超级宝典(第7版)笔记14 前三章实例 下个五子棋全代码 (附)文章目录OpenGL超级宝典(第7版)笔记14 前三章实例 下个五子棋全代码 (附)#pragma once#ifndef BASIC_RA#define BASIC_RA#include<iostream>#include<Windows.h>#define GLEW_STATIC#include<glew.h>#include<glfw3.h>#incl
2021-03-22 01:06:49
438
原创 OpenGL超级宝典(第7版)笔记14 前三章实例 下个五子棋 (下)
OpenGL超级宝典(第7版)笔记14 前三章实例 下个五子棋 (下)文章目录OpenGL超级宝典(第7版)笔记14 前三章实例 下个五子棋 (下)前言1 获取鼠标点击输入2 判断五子连珠3 胜利4 总结前言上一篇我们把从数据到画面的过程说完了,这一篇我们说说如何获取输入,并且修改数据,判断输赢。1 获取鼠标点击输入我们之前在笔记2中的输入输出小节中谈到过对鼠标的位置获取,通过mouse_callback()函数来获取鼠标的位置信息,通过glfwSetCursorPosCallback();将
2021-03-22 01:04:07
562
原创 OpenGL超级宝典(第7版)笔记13 前三章实例 下个五子棋 (上)
OpenGL超级宝典(第7版)笔记12 前三章回顾 OpenGL扩展简介文章目录OpenGL超级宝典(第7版)笔记12 前三章回顾 OpenGL扩展简介# 前言这一篇我们对前三章做了一个知识的梳理(知识图),还提了一下OpenGL扩展的相关内容。下一篇是对前三章内容的综合应用,其中涉及了很多着色器的细节,还有一点点程序设计在其中,会非常精彩,但可能篇幅会比较长(我尽量把内容放在一篇说完),我们会尽量用更多之前学习的知识(有时候是不得已,有时候是更加方便快速)我们下篇见~~关于书籍的问题如果
2021-03-22 01:00:28
973
2
原创 OpenGL超级宝典(第7版)笔记12 前三章回顾 OpenGL扩展简介
OpenGL超级宝典(第7版)笔记12 前三章回顾 五子棋小游戏 OpenGL扩展简介文章目录OpenGL超级宝典(第7版)笔记12 前三章回顾 五子棋小游戏 OpenGL扩展简介1.1 环境配置1.2 整体框架1.3 渲染管线1.4 程序流程2五子棋小游戏3 OpenGL扩展3 总结上一篇我们具体介绍了一下图形管线的最后一个阶段帧缓存运算,它包括四个部分:裁剪测试、模板测试、深度测试、混合和逻辑运算。其中我们重点介绍了深度测试的内容。然后我们介绍了一下计算着色器。在本篇中我们将对前三章进行一个大体
2021-03-08 15:03:03
623
原创 OpenGL超级宝典(第7版)笔记11 帧缓存运算 计算着色器 清单 3.13
OpenGL超级宝典(第7版)笔记11 帧缓存运算 计算着色器 清单 3.13文章目录OpenGL超级宝典(第7版)笔记11 帧缓存运算 计算着色器 清单 3.131 帧缓存运算6 总结1 帧缓存运算6 总结这一篇我们介绍了片段着色器的工作,(别忘了片段着色器是对每一个像素都会进行运行,其传出的值就是该像素的颜色值)还通过我们自己的探究了解了着色器之间的值是怎样传递的,以及插值的问题。下面一节我们说一说帧缓存运算和计算着色器,这应该是管线的最后一部分,这一部分我们并不会十分深入的剖析,而是让你了
2021-03-06 01:18:39
878
3
原创 OpenGL超级宝典(第7版)笔记10 片段着色器 清单3.10-3.12
OpenGL超级宝典(第7版)笔记10 片段着色器 清单3.10-3.12文章目录OpenGL超级宝典(第7版)笔记10 片段着色器 清单3.10-3.1216 总结上一篇介绍了一下有关基元装配、裁剪、视口转换、剔除、光栅化的基础知识,前面这些过程把存在于程序中的几何图形转变为了一个个像素的形式,这一篇就要开始对这些像素填充颜色了,用到的就是片段着色器,对于每一个像素都会运行一次片段着色器,运行后该像素接受到着色器的计算结果,并将其作为像素最终显示的颜色。16 总结这一次介绍了基元装配、裁剪、
2021-03-06 01:18:07
585
4
原创 OpenGL超级宝典(第7版)笔记9 基元装配 裁剪 光栅化
OpenGL超级宝典(第7版)笔记9 基元装配 裁剪 光栅化文章目录OpenGL超级宝典(第7版)笔记9 基元装配 裁剪 光栅化1 基元装配2 裁剪3 视口转换4 剔除6 总结上一次我们介绍了几何着色器,它能改变基元的类型,非常灵活,这一篇我们说说基元装配、裁剪、光栅化,这一篇没有清单,但是我们还是要重视,因为下一篇的内容对之后的三维图形运行结果有很大的影响,让我们能更好的理解OpenGL是怎样把众多顶点转为图形,再转为一个个像素的。在完成管线前端的运行后(顶点着色,曲面细分,几何着色),在片
2021-03-03 11:25:16
446
原创 OpenGL超级宝典(第7版)笔记8 几何着色器 清单3.9
OpenGL超级宝典(第7版)笔记8 几何着色器 基元装配 裁剪 光栅化 清单3.9文章目录OpenGL超级宝典(第7版)笔记8 几何着色器 基元装配 裁剪 光栅化 清单3.91几何着色器1几何着色器
2021-03-02 00:46:32
305
原创 OpenGL超级宝典(第7版)笔记7 细分曲面初介绍 清单3.7-3.8
OpenGL超级宝典(第7版)笔记7 细分曲面初介绍 清单3.7-3.8文章目录OpenGL超级宝典(第7版)笔记7 细分曲面初介绍 清单3.7-3.81 关于顶点属性1.1顶点属性声明 清单3.11.2顶点属性更新 清单3.22关于顶点数组对象VAO3在不同着色器之间进行数值传递3.1out 和 in 清单3.3-3.43.2接口块 清单3.5-3.63 总结上一次我们带大家绘制了第一个三角形,给这篇的着色器数值传递做了预热,稍微解释了一下插值,当然我们还留了个小问题,是关于人眼观察到的颜色的小特
2021-03-01 00:49:36
1025
原创 OpenGL超级宝典(第7版)笔记6 顶点属性 着色器间数据传输 接口块 稍微介绍一下VAO 清单3.1-3.4
OpenGL超级宝典(第7版)笔记6 VAO顶点数组究竟是啥 清单3.1-3.4文章目录OpenGL超级宝典(第7版)笔记6 VAO顶点数组究竟是啥 清单3.1-3.41 绘制我们的第一个三角形 清单2.8-2.92 试试顶点颜色的差值3 总结上一次我们首先带大家写了一下着色器程序的编译过程,之后将stratup() render() shutdown()进行了内容的填充,最终绘制出一个很大的点。我们留了一个小尾巴,就是顶点数组(VAO)究竟是干什么的。当然这里仍然不是最佳的解释时机(可能要等到笔记
2021-02-24 12:58:46
554
1
原创 OpenGL超级宝典(第7版)笔记5 绘制第一个三角形 再聊聊颜色插值 清单2.8-2.9
OpenGL超级宝典(第7版)笔记5 绘制第一个三角形 再聊聊颜色差值 清单2.8-2.9文章目录OpenGL超级宝典(第7版)笔记5 绘制第一个三角形 再聊聊颜色差值 清单2.8-2.91 绘制我们的第一个三角形 清单2.8-2.92 试试顶点颜色的差值3 总结上一次我们首先带大家写了一下着色器程序的编译过程,之后将stratup() render() shutdown()进行了内容的填充,最终绘制出一个很大的点。我们留了一个小尾巴,就是顶点数组(VAO)究竟是干什么的。当然这里仍然不是最佳的解释
2021-02-21 23:05:20
468
原创 OpenGL超级宝典(第7版)笔记4 渲染管线介绍 清单2.3-2.7
OpenGL超级宝典(第7版)笔记4文章目录OpenGL超级宝典(第7版)笔记4基于GLFW的窗口体系替代sb7.h的部分内容1 设置一下头文件2 声明函数,设置全局变量,设置回调函数3 主函数中把startup()render()shutdown()添加上4 startup()render()shutdown()的函数主体5 总结书接上文,上一次我们真正打开了一个窗口,还填充了颜色,还能读取键盘鼠标的输入来改变我们窗口中颜色,这次我们将介绍一下替代sb7.h的框架包括写我们自己的stratup()
2021-02-19 14:53:41
593
原创 OpenGL超级宝典(第7版)笔记3 清单的初始环境配置part3
OpenGL超级宝典(第7版)笔记3 清单的初始环境配置part3文章目录OpenGL超级宝典(第7版)笔记3 清单的初始环境配置part3转载自learnOpenGL的窗口创建1 设置一下头文件2 创建main函数配置GLFW、GLEW、视口2.1 处理GLFW相关的配置2.2 处理GLEW相关的配置2.3 视口(Viewport)3 创建循环准备运行我们的窗口4 运行窗口前的收尾工作5 更进一步(上个色)6 再更进一步(输入控制)6.1 再更进一步(按键控制)6.2 再再更进一步(鼠标控制)6.3
2021-02-17 01:35:12
524
转载 OpenGL超级宝典(第7版)笔记2 清单的初始环境配置part2
OpenGL超级宝典(第7版)清单的初始环境配置part2文章目录OpenGL超级宝典(第7版)清单的初始环境配置part2转载自learnOpenGL的窗口创建1 设置一下头文件2 创建main函数配置GLFW、GLEW、视口2.1 处理GLFW相关的配置2.2 处理GLEW相关的配置2.3 视口(Viewport)3 创建循环准备运行我们的窗口4 运行窗口前的收尾工作书接上文,part1中我们配置了一下GLFW窗口库,还顺便配置了一下GLEW帮助我们更方便的应对OpenGL的各种版本,这次我们将
2021-02-14 14:27:10
727
1
转载 OpenGL超级宝典(第7版)笔记1 清单的初始环境配置part1
OpenGL超级宝典(第7版)清单的初始环境配置part1由于OpenGL超级宝典(第7版)异步社区中下载的头文件和相关资源经过多次的实验仍不能在我的电脑中安装,我只能另辟蹊径,采用learnOpenGL中的推荐的 GLFW 来对sb7.h中的一些功能进行一些替代,到目前为止仍能找到替代方法(截止5.3着色器储存区块,因为我当前只学到5.3后面的还没试验过,O(∩_∩)O,虽然有些地方需要我们自己添加一些代码),希望我们能够学到最后吧转载自learnOpenGL的GLFW配置这里其实我是直接下载的 .
2021-02-13 21:44:47
1632
OpenGL超级宝典 笔记22 相关代码.rar
2021-06-04
OpenGL超级宝典 笔记15之前 清单3.12之前所有有关代码.rar
2021-04-15
OpenGL超级宝典 笔记16-18 相关代码(暂时不包含.exe)
2021-04-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人