社区
周边
GitHub
GAMES104
发帖
</>Developers Community
Piccolo Engine
社区
周边
登录 | 注册
欲体验完整版功能
请移步PC端访问
piccoloengine.com
×
Code有毒
https://github.com/CodePoisonous
帖子
25
评论
0
收藏
0
图形学
【LearnOpenGL】P5 生成带纹理的矩形
0 上一章讲到如何生成一个彩色的矩形。这一章我们将主要引入纹理这个概念。并且编写三件关于纹理图像的例子:(1)设置单一纹理的矩形。(2)设置多纹理混合的矩形。(3)探索放大\缩小时的纹理过滤方式。 1 设置单一纹理的矩形1.0 使用开源库stb_image...
赞
评论
收藏
发布于 530 天前
图形学
【LearnOpenGL】P4 生成彩色的矩形
0 上一章我们讲到如何生成不同颜色的矩形,然后延伸了一些内容生成了一个颜色会随时间正弦变化的纯色矩形。本章我们将主要做两件事:(1)将着色器程序封装成一个类。(2)通过在vertices添加矩形四个顶点对应的颜色数据生成一个彩色的矩形。 1 将着色器程序封...
赞
评论
收藏
发布于 530 天前
图形学
【LearnOpenGL】P3 生成不同颜色的矩形
0 在上一期的内容中,我们使用着色器(shader)和顶点对象(VAO, VBO)绘制了一个橘色的三角形。本期内容将如下进行展开:(1)在顶点数组vertices中设置四个矩形角点,并使用元素缓冲数组对象(element buffer object, EB...
赞
1
评论
收藏
发布于 530 天前
图形学
【LearnOpenGL】P2 生成三角形
0 要生成三角,需要具备两个要素。一是要确定三角形的三个顶点的坐标位置,二是要设置三角形的颜色。 1 设置顶点缓冲对象VBO,并将VBO对象与三角形顶点坐标数组绑定。 2 生成顶点数组对象VAO,用它来解释VBO中顶点数组的数据。此时VBO会自动与VAO绑...
赞
1
评论
收藏
发布于 537 天前
图形学
【LearnOpenGL】P1 生成纯色窗口
1 包含GLFW和GLAD的头文件。 2 创建main函数,并实例化GLFW窗口。 3 创建一个窗口对象,并判断该窗口对象是否创建成功。4. 窗口创建完,通知GLFW将我们窗口的上下文设置为当前线程的主上下文。 5...
赞
1
评论
收藏
发布于 537 天前
图形学
【LearnOpenGL】P0 添加GLFW和GLAD到新项目
1 添加GLFW1.1 下载GLFW (https://www.glfw.org/download.html)。1.2 在GLFW文件夹中添加build文件夹,用于存放CMake编译后的文件。1.3 使用CMake编译GLFW。1.3.1 下载CMake ...
赞
1
评论
收藏
发布于 537 天前
编程基础
C++ Primer 笔记-第19章 特殊工具与技术
第19章 特殊工具与技术 19.1 控制内存分配 19.1.1 重载new和delete new一个对象分三个步骤: (1)new表达式调用名为operator new(或者operator new[])的标准库函数。该函数分配一块足够大的、原始的...
赞
2
评论
收藏
发布于 543 天前
编程基础
C++ Primer 笔记-第18章 用于大型程序的工具
18.1 异常处理 异常处理(exception handing) 机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并做出相应的处理。 18.1.1 抛出异常 通过抛出(throwing) 一条表达式来引发(raised)一个异常。...
赞
3
评论
1
收藏
发布于 543 天前
编程基础
C++ Primer 笔记-第17章 特殊库特殊设施
17.1 tuple类型 我们可以将tuple看作一个“快速而随意”的数据结构。可以有任意数量的成员,且成员的类型不受限制。 17.1.1 定义和初始化tuple 当我们创建一个tuple时,需要指出每个成员的类型。 创建一个tuple对象时,...
赞
3
评论
收藏
发布于 543 天前
编程基础
C++ Primer 笔记-第16章 模板与泛型编程
16.1 定义模板 16.1.1 函数模板 我们可以定义一个通用的函数模板(function template),而不是为每个类型都定义一个新函数。一个函数模板就是一个公式,可用来生成针对特定类型的函数版本。 模板定义以关键字template开始,后...
赞
3
评论
收藏
发布于 543 天前
编程基础
C++ Primer 笔记-第15章 面向对象程序设计
15.1 OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是:数据抽象、继承和动态绑定。 数据抽象:可以将类的接口与实现分离。 继承(inheritance):可以定义相似的类型并对其相似关系建模。 动...
赞
6
评论
1
收藏
3
发布于 573 天前
编程基础
C++ Primer 笔记-第14章 重载运算与类型转换
14.1 基本概念 重载运算符是具有特殊名字的函数:由关键字 operator 和其后要定义的运算符号共同组成。包含返回类型、参数列表以及函数体。 除了重载的函数调用运算符 operator() 之外,其他重载运算符不能含有默认实参。 当一个重载的运算...
赞
2
评论
收藏
1
发布于 573 天前
编程基础
C++ Primer 笔记-第13章 拷贝控制
拷贝构造函数(copy constructor) 和 移动构造函数(move constructor) 定义了当用同类型的另一个对象初始化本对象时做什么。 拷贝赋值运算符(copy-assignment operator) 和 移动赋值运算符(move-a...
赞
2
评论
收藏
2
发布于 573 天前
编程基础
C++ Primer 笔记-第12章 动态内存
静态内存 用来保存局部 static 对象、类 static 数局成员以及定义在任何函数之外的变量。 栈内存 用来保存定义在函数内的非 static 对象。 分配在 静态 或 栈 内存中的对象由编译器自动创建和销毁。 对于 栈对象,仅在其定义的程序块运行时...
赞
2
评论
收藏
1
发布于 573 天前
编程基础
C++ Primer 笔记-第11章 关联容器
标准库提供8个关联容器:map、set、multimap、multiset、unordered_map、unordered_set、unordered_multimap、unordered_multiset。 8个容器间的不同体现在三个维度上: (1)每个...
赞
3
评论
收藏
1
发布于 573 天前
编程基础
C++ Primer 笔记-第10章 泛型算法
10.1 概述 大多数算法都定义在头文件 algorithm 中。标准库还在头文件 numeric 中定义了一组数值泛型算法。 一般情况下,泛型算法不直接操作容器,而是遍历由两个迭代器指定的一个元素范围来进行操作。通常情况下算法遍历范围,对其中每个元素...
赞
5
评论
收藏
1
发布于 575 天前
编程基础
C++ Primer 笔记-第9章 顺序容器
9.1 顺序容器(sequential container)概述 vector:可变大小数组,deque:双端队列,list:双向链表,forward_list:单向链表,array:固定大小数组,string:专门用于保存字符的可变大小容器。 与内置...
赞
1
评论
收藏
1
发布于 575 天前
编程基础
C++ Primer 笔记-第8章 IO库
8.1 IO 类 iostream 定义了用于读写流的基本类型。fstream 定义了读写命名文件的类型。sstream 定义了读写内存 string 对象的类型。 为了支持使用宽字符的语言,标准库定义了一组类型和对象来操作 wchar_t 类型的数据...
赞
2
评论
收藏
2
发布于 575 天前
编程基础
C++ Primer 笔记-第7章 类
类的基本思想是:数据抽象 data abstraction 和 *封装 encapsulation*。 数据抽象 是一种依赖于 接口 interface 和 实现 implementation 分离的编程(以及设计)技术。 类的 接口 包括用户所能执行的操...
赞
2
评论
收藏
1
发布于 575 天前
编程基础
C++ Primer 笔记-第6章 函数
6.1 函数基础 函数的本质是一个命名了的代码块。 函数的返回值不能是数组类型或函数类型,但可以是指向数组的或函数的指针。 6.1.1 局部对象 我们把只存在于块执行期间的对象成为 *自动对象*。 局部静态对象 local static obj...
赞
1
评论
收藏
1
发布于 575 天前
查看更多
创作等级
LV2
会员等级
P2
47
获得点赞
3
获得评论
20
获得收藏
Code有毒
个人中心
创作等级
LV2
会员等级
P2
47
获得点赞
3
获得评论
20
获得收藏
帖子
评论
收藏
Code有毒
图形学
【LearnOpenGL】P5 生成带纹理的矩形
0 上一章讲到如何生成一个彩色的矩形。这一章我们将主要引入纹理这个概念。并且编写三件关于纹理图像的例子:(1)设置单一纹理的矩形。(2)设置多纹理混合的矩形。(3)探索放大\缩小时的纹理过滤方式。 1 设置单一纹理的矩形1.0 使用开源库stb_image...
赞
评论
收藏
发布于 530 天前
Code有毒
发布于 530 天前
图形学
【LearnOpenGL】P5 生成带纹理的矩形
0 上一章讲到如何生成一个彩色的矩形。这一章我们将主要引入纹理这个概念。并且编写三件关于纹理图像的例子:(1)设置单一纹理的矩形。(2)设置多纹理混合的矩形。(3)探索放大\缩小时的纹理过滤方式。 1 设置单一纹理的矩形1.0 使用开源库stb_image...
赞
评论
收藏
Code有毒
图形学
【LearnOpenGL】P4 生成彩色的矩形
0 上一章我们讲到如何生成不同颜色的矩形,然后延伸了一些内容生成了一个颜色会随时间正弦变化的纯色矩形。本章我们将主要做两件事:(1)将着色器程序封装成一个类。(2)通过在vertices添加矩形四个顶点对应的颜色数据生成一个彩色的矩形。 1 将着色器程序封...
赞
评论
收藏
发布于 530 天前
Code有毒
发布于 530 天前
图形学
【LearnOpenGL】P4 生成彩色的矩形
0 上一章我们讲到如何生成不同颜色的矩形,然后延伸了一些内容生成了一个颜色会随时间正弦变化的纯色矩形。本章我们将主要做两件事:(1)将着色器程序封装成一个类。(2)通过在vertices添加矩形四个顶点对应的颜色数据生成一个彩色的矩形。 1 将着色器程序封...
赞
评论
收藏
Code有毒
图形学
【LearnOpenGL】P3 生成不同颜色的矩形
0 在上一期的内容中,我们使用着色器(shader)和顶点对象(VAO, VBO)绘制了一个橘色的三角形。本期内容将如下进行展开:(1)在顶点数组vertices中设置四个矩形角点,并使用元素缓冲数组对象(element buffer object, EB...
赞
1
评论
收藏
发布于 530 天前
Code有毒
发布于 530 天前
图形学
【LearnOpenGL】P3 生成不同颜色的矩形
0 在上一期的内容中,我们使用着色器(shader)和顶点对象(VAO, VBO)绘制了一个橘色的三角形。本期内容将如下进行展开:(1)在顶点数组vertices中设置四个矩形角点,并使用元素缓冲数组对象(element buffer object, EB...
赞
1
评论
收藏
Code有毒
图形学
【LearnOpenGL】P2 生成三角形
0 要生成三角,需要具备两个要素。一是要确定三角形的三个顶点的坐标位置,二是要设置三角形的颜色。 1 设置顶点缓冲对象VBO,并将VBO对象与三角形顶点坐标数组绑定。 2 生成顶点数组对象VAO,用它来解释VBO中顶点数组的数据。此时VBO会自动与VAO绑...
赞
1
评论
收藏
发布于 537 天前
Code有毒
发布于 537 天前
图形学
【LearnOpenGL】P2 生成三角形
0 要生成三角,需要具备两个要素。一是要确定三角形的三个顶点的坐标位置,二是要设置三角形的颜色。 1 设置顶点缓冲对象VBO,并将VBO对象与三角形顶点坐标数组绑定。 2 生成顶点数组对象VAO,用它来解释VBO中顶点数组的数据。此时VBO会自动与VAO绑...
赞
1
评论
收藏
Code有毒
图形学
【LearnOpenGL】P1 生成纯色窗口
1 包含GLFW和GLAD的头文件。 2 创建main函数,并实例化GLFW窗口。 3 创建一个窗口对象,并判断该窗口对象是否创建成功。4. 窗口创建完,通知GLFW将我们窗口的上下文设置为当前线程的主上下文。 5...
赞
1
评论
收藏
发布于 537 天前
Code有毒
发布于 537 天前
图形学
【LearnOpenGL】P1 生成纯色窗口
1 包含GLFW和GLAD的头文件。 2 创建main函数,并实例化GLFW窗口。 3 创建一个窗口对象,并判断该窗口对象是否创建成功。4. 窗口创建完,通知GLFW将我们窗口的上下文设置为当前线程的主上下文。 5...
赞
1
评论
收藏
Code有毒
图形学
【LearnOpenGL】P0 添加GLFW和GLAD到新项目
1 添加GLFW1.1 下载GLFW (https://www.glfw.org/download.html)。1.2 在GLFW文件夹中添加build文件夹,用于存放CMake编译后的文件。1.3 使用CMake编译GLFW。1.3.1 下载CMake ...
赞
1
评论
收藏
发布于 537 天前
Code有毒
发布于 537 天前
图形学
【LearnOpenGL】P0 添加GLFW和GLAD到新项目
1 添加GLFW1.1 下载GLFW (https://www.glfw.org/download.html)。1.2 在GLFW文件夹中添加build文件夹,用于存放CMake编译后的文件。1.3 使用CMake编译GLFW。1.3.1 下载CMake ...
赞
1
评论
收藏
Code有毒
编程基础
C++ Primer 笔记-第19章 特殊工具与技术
第19章 特殊工具与技术 19.1 控制内存分配 19.1.1 重载new和delete new一个对象分三个步骤: (1)new表达式调用名为operator new(或者operator new[])的标准库函数。该函数分配一块足够大的、原始的...
赞
2
评论
收藏
发布于 543 天前
Code有毒
发布于 543 天前
编程基础
C++ Primer 笔记-第19章 特殊工具与技术
第19章 特殊工具与技术 19.1 控制内存分配 19.1.1 重载new和delete new一个对象分三个步骤: (1)new表达式调用名为operator new(或者operator new[])的标准库函数。该函数分配一块足够大的、原始的...
赞
2
评论
收藏
Code有毒
编程基础
C++ Primer 笔记-第18章 用于大型程序的工具
18.1 异常处理 异常处理(exception handing) 机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并做出相应的处理。 18.1.1 抛出异常 通过抛出(throwing) 一条表达式来引发(raised)一个异常。...
赞
3
评论
1
收藏
发布于 543 天前
Code有毒
发布于 543 天前
编程基础
C++ Primer 笔记-第18章 用于大型程序的工具
18.1 异常处理 异常处理(exception handing) 机制允许程序中独立开发的部分能够在运行时就出现的问题进行通信并做出相应的处理。 18.1.1 抛出异常 通过抛出(throwing) 一条表达式来引发(raised)一个异常。...
赞
3
评论
1
收藏
Code有毒
编程基础
C++ Primer 笔记-第17章 特殊库特殊设施
17.1 tuple类型 我们可以将tuple看作一个“快速而随意”的数据结构。可以有任意数量的成员,且成员的类型不受限制。 17.1.1 定义和初始化tuple 当我们创建一个tuple时,需要指出每个成员的类型。 创建一个tuple对象时,...
赞
3
评论
收藏
发布于 543 天前
Code有毒
发布于 543 天前
编程基础
C++ Primer 笔记-第17章 特殊库特殊设施
17.1 tuple类型 我们可以将tuple看作一个“快速而随意”的数据结构。可以有任意数量的成员,且成员的类型不受限制。 17.1.1 定义和初始化tuple 当我们创建一个tuple时,需要指出每个成员的类型。 创建一个tuple对象时,...
赞
3
评论
收藏
Code有毒
编程基础
C++ Primer 笔记-第16章 模板与泛型编程
16.1 定义模板 16.1.1 函数模板 我们可以定义一个通用的函数模板(function template),而不是为每个类型都定义一个新函数。一个函数模板就是一个公式,可用来生成针对特定类型的函数版本。 模板定义以关键字template开始,后...
赞
3
评论
收藏
发布于 543 天前
Code有毒
发布于 543 天前
编程基础
C++ Primer 笔记-第16章 模板与泛型编程
16.1 定义模板 16.1.1 函数模板 我们可以定义一个通用的函数模板(function template),而不是为每个类型都定义一个新函数。一个函数模板就是一个公式,可用来生成针对特定类型的函数版本。 模板定义以关键字template开始,后...
赞
3
评论
收藏
Code有毒
编程基础
C++ Primer 笔记-第15章 面向对象程序设计
15.1 OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是:数据抽象、继承和动态绑定。 数据抽象:可以将类的接口与实现分离。 继承(inheritance):可以定义相似的类型并对其相似关系建模。 动...
赞
6
评论
1
收藏
3
发布于 573 天前
Code有毒
发布于 573 天前
编程基础
C++ Primer 笔记-第15章 面向对象程序设计
15.1 OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是:数据抽象、继承和动态绑定。 数据抽象:可以将类的接口与实现分离。 继承(inheritance):可以定义相似的类型并对其相似关系建模。 动...
赞
6
评论
1
收藏
3
Code有毒
编程基础
C++ Primer 笔记-第14章 重载运算与类型转换
14.1 基本概念 重载运算符是具有特殊名字的函数:由关键字 operator 和其后要定义的运算符号共同组成。包含返回类型、参数列表以及函数体。 除了重载的函数调用运算符 operator() 之外,其他重载运算符不能含有默认实参。 当一个重载的运算...
赞
2
评论
收藏
1
发布于 573 天前
Code有毒
发布于 573 天前
编程基础
C++ Primer 笔记-第14章 重载运算与类型转换
14.1 基本概念 重载运算符是具有特殊名字的函数:由关键字 operator 和其后要定义的运算符号共同组成。包含返回类型、参数列表以及函数体。 除了重载的函数调用运算符 operator() 之外,其他重载运算符不能含有默认实参。 当一个重载的运算...
赞
2
评论
收藏
1
Code有毒
编程基础
C++ Primer 笔记-第13章 拷贝控制
拷贝构造函数(copy constructor) 和 移动构造函数(move constructor) 定义了当用同类型的另一个对象初始化本对象时做什么。 拷贝赋值运算符(copy-assignment operator) 和 移动赋值运算符(move-a...
赞
2
评论
收藏
2
发布于 573 天前
Code有毒
发布于 573 天前
编程基础
C++ Primer 笔记-第13章 拷贝控制
拷贝构造函数(copy constructor) 和 移动构造函数(move constructor) 定义了当用同类型的另一个对象初始化本对象时做什么。 拷贝赋值运算符(copy-assignment operator) 和 移动赋值运算符(move-a...
赞
2
评论
收藏
2
Code有毒
编程基础
C++ Primer 笔记-第12章 动态内存
静态内存 用来保存局部 static 对象、类 static 数局成员以及定义在任何函数之外的变量。 栈内存 用来保存定义在函数内的非 static 对象。 分配在 静态 或 栈 内存中的对象由编译器自动创建和销毁。 对于 栈对象,仅在其定义的程序块运行时...
赞
2
评论
收藏
1
发布于 573 天前
Code有毒
发布于 573 天前
编程基础
C++ Primer 笔记-第12章 动态内存
静态内存 用来保存局部 static 对象、类 static 数局成员以及定义在任何函数之外的变量。 栈内存 用来保存定义在函数内的非 static 对象。 分配在 静态 或 栈 内存中的对象由编译器自动创建和销毁。 对于 栈对象,仅在其定义的程序块运行时...
赞
2
评论
收藏
1
Code有毒
编程基础
C++ Primer 笔记-第11章 关联容器
标准库提供8个关联容器:map、set、multimap、multiset、unordered_map、unordered_set、unordered_multimap、unordered_multiset。 8个容器间的不同体现在三个维度上: (1)每个...
赞
3
评论
收藏
1
发布于 573 天前
Code有毒
发布于 573 天前
编程基础
C++ Primer 笔记-第11章 关联容器
标准库提供8个关联容器:map、set、multimap、multiset、unordered_map、unordered_set、unordered_multimap、unordered_multiset。 8个容器间的不同体现在三个维度上: (1)每个...
赞
3
评论
收藏
1
Code有毒
编程基础
C++ Primer 笔记-第10章 泛型算法
10.1 概述 大多数算法都定义在头文件 algorithm 中。标准库还在头文件 numeric 中定义了一组数值泛型算法。 一般情况下,泛型算法不直接操作容器,而是遍历由两个迭代器指定的一个元素范围来进行操作。通常情况下算法遍历范围,对其中每个元素...
赞
5
评论
收藏
1
发布于 575 天前
Code有毒
发布于 575 天前
编程基础
C++ Primer 笔记-第10章 泛型算法
10.1 概述 大多数算法都定义在头文件 algorithm 中。标准库还在头文件 numeric 中定义了一组数值泛型算法。 一般情况下,泛型算法不直接操作容器,而是遍历由两个迭代器指定的一个元素范围来进行操作。通常情况下算法遍历范围,对其中每个元素...
赞
5
评论
收藏
1
Code有毒
编程基础
C++ Primer 笔记-第9章 顺序容器
9.1 顺序容器(sequential container)概述 vector:可变大小数组,deque:双端队列,list:双向链表,forward_list:单向链表,array:固定大小数组,string:专门用于保存字符的可变大小容器。 与内置...
赞
1
评论
收藏
1
发布于 575 天前
Code有毒
发布于 575 天前
编程基础
C++ Primer 笔记-第9章 顺序容器
9.1 顺序容器(sequential container)概述 vector:可变大小数组,deque:双端队列,list:双向链表,forward_list:单向链表,array:固定大小数组,string:专门用于保存字符的可变大小容器。 与内置...
赞
1
评论
收藏
1
Code有毒
编程基础
C++ Primer 笔记-第8章 IO库
8.1 IO 类 iostream 定义了用于读写流的基本类型。fstream 定义了读写命名文件的类型。sstream 定义了读写内存 string 对象的类型。 为了支持使用宽字符的语言,标准库定义了一组类型和对象来操作 wchar_t 类型的数据...
赞
2
评论
收藏
2
发布于 575 天前
Code有毒
发布于 575 天前
编程基础
C++ Primer 笔记-第8章 IO库
8.1 IO 类 iostream 定义了用于读写流的基本类型。fstream 定义了读写命名文件的类型。sstream 定义了读写内存 string 对象的类型。 为了支持使用宽字符的语言,标准库定义了一组类型和对象来操作 wchar_t 类型的数据...
赞
2
评论
收藏
2
Code有毒
编程基础
C++ Primer 笔记-第7章 类
类的基本思想是:数据抽象 data abstraction 和 *封装 encapsulation*。 数据抽象 是一种依赖于 接口 interface 和 实现 implementation 分离的编程(以及设计)技术。 类的 接口 包括用户所能执行的操...
赞
2
评论
收藏
1
发布于 575 天前
Code有毒
发布于 575 天前
编程基础
C++ Primer 笔记-第7章 类
类的基本思想是:数据抽象 data abstraction 和 *封装 encapsulation*。 数据抽象 是一种依赖于 接口 interface 和 实现 implementation 分离的编程(以及设计)技术。 类的 接口 包括用户所能执行的操...
赞
2
评论
收藏
1
Code有毒
编程基础
C++ Primer 笔记-第6章 函数
6.1 函数基础 函数的本质是一个命名了的代码块。 函数的返回值不能是数组类型或函数类型,但可以是指向数组的或函数的指针。 6.1.1 局部对象 我们把只存在于块执行期间的对象成为 *自动对象*。 局部静态对象 local static obj...
赞
1
评论
收藏
1
发布于 575 天前
Code有毒
发布于 575 天前
编程基础
C++ Primer 笔记-第6章 函数
6.1 函数基础 函数的本质是一个命名了的代码块。 函数的返回值不能是数组类型或函数类型,但可以是指向数组的或函数的指针。 6.1.1 局部对象 我们把只存在于块执行期间的对象成为 *自动对象*。 局部静态对象 local static obj...
赞
1
评论
收藏
1
查看更多