B.C. Studio

Learning the ocean without boundaries


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 日程表

【C++课程笔记01】类和对象

发表于 2022-03-31 | 分类于 C++ |

使用结构体有一个问题,可以在结构体外部任意获取和修改其成员变量,带来了很大安全隐患,为此 C++ 引入了一个全新的概念,类!类相比结构体,除了有成员变量外,还可以定义成员函数,调用者通过成员函数来获取或修改成员变量,以达到保护的作用;当然类还有其它很多的功能和好处,其中一点就是面向对象的思想。

阅读全文 »

【C++】C++ 杂谈

发表于 2021-02-22 | 分类于 C++ |

常量指针是一个指针,指向的对象是常量;指针常量是一个常量指针,不能修改指向对象;常量指针常量则是指向常量的常量指针,即不能修改指向对象,也不能通过指针修改对象的值。

阅读全文 »

【SFML】OpenGL 上下文

发表于 2020-01-20 | 分类于 SFML |

【OpenGL】坐标系统

发表于 2020-01-02 | 分类于 OpenGL |

OpenGL 引入五个坐标空间,分别是局部坐标、世界坐标、观察坐标、裁剪坐标和屏蔽坐标,每个坐标空间想到独立,各司其职;创建一个对象时,往往使用的是局部坐标,渲染的时候通过一步步转换最后变成屏幕坐标在屏幕上绘制。

阅读全文 »

【计算机图形】教程与资源清单

发表于 2020-01-02 | 分类于 计算机图形 |

这篇文章主要记录一些和计算机图形学相关的教程、资源和素材网站,持续更新···

阅读全文 »

【OpenGL】创建窗口(二)

发表于 2019-12-28 | 分类于 OpenGL |

在 这篇文章 中我们介绍了使用 glut 库来创建和管理窗口,这里我们再介绍另外两个可用于 OpenGL 窗口管理的库 glfw 和 SFML。

阅读全文 »

【OpenGL】使用贴图

发表于 2019-12-27 | 分类于 OpenGL |

使用 SOIL 库或 stb 库来加载纹理,得到纹理数据、纹理宽度、纹理高度、通道数,然后把纹理数据填充到纹理对象,最后释放纹理数据。然后设置纹理的一些参数,比如纹理环绕方式,是否启用多级渐变纹理,纹理过滤方式以及多级纹理渐变方式。OpenGL 会给纹理采样器一个位置值,一个纹理位置称为一个纹理单元,对应一个纹理对象,最多可以设置 16 个纹理单元。

阅读全文 »

【OpenGL】其它绘制方式

发表于 2019-12-27 | 分类于 OpenGL |

顶点缓冲对象 VBO 保存缓冲区中的顶点数据,顶点数组对象 VAO 保存顶点属性,索引缓冲对象 EBO 保存顶点属性的索引。虽然不使用 VAO 也可以正常绘制,但出于规范还是手动管理 VAO 比较好,使用 EBO 来绘制图元可以节省顶点开销,EBO 关联 VAO,VAO 再关联 VBO。

阅读全文 »

【OpenGL】着色器(二)

发表于 2019-12-27 | 分类于 OpenGL |

GLSL 是一门类 C 语言,为图形计算量身定制,包含了很多针对向量和矩阵运行的特性。GLSL 的变量分为输入变量、输出变量和 uniform 变量,除了基础的数据类型外,还定义了向量、矩阵等常用数据类型。

阅读全文 »

【OpenGL】着色器(一)

发表于 2019-12-27 | 分类于 OpenGL |

现代 OpenGL 都使用可编程管线,从 OpenGL 3.2 开始,固定管线已经被废弃了,这意味着需要开发者自己编写、编译和链接着色器程序。手写 Shader 无疑增加了学习的成本,但也让开发者能直接接触并操控底层,能够实现更为强大的效果,也有利于学习计算机图形学。

阅读全文 »
123
林锦新

林锦新

26 日志
8 分类
58 标签
GitHub
© 2022 林锦新
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4