Sen's blog

c++(4`OPP,多态泛型、虚表, 构造析构与虚函数)

OPP 面向过程 vs. 面向对象 面向过程:问题分解成一系列的步骤,然后按照顺序执行这些步骤 面向对象:问题分解抽象为一系列的“对象”,通过调用这些对象去解决问题 OPP优势: 使得代码更加模块化、降低耦合(一个小房子拆分成一个个小积木): 易复用(可以多次拷贝某个积木去使用) 易扩展(添加了某个新家具,并不会影响其他家具) 易组合(有很多组合房子样式的方式) ...

1`构建工具_Cmake

CMake CMake 是一个 跨平台的构建工具,可以根据不同的平台、不同的编译器,生成相应的构建文件 例子:比如说有一个项目需要跨平台 考虑没有cmake的情况要怎样做:要让项目在各个平台(如 Windows、Linux、macOS)都可以运行,那么要在各个平台生成可执行文件,首先需要构建,但由于每个平台的构建工具都不同,因此需要 手动为每个平台编写构建脚本 考虑用cmak...

Games202(12`作业5)

作业5 前言 本节我们将实现实时光线追踪的时间累计降噪算法 对于光线追踪的渲染结果,G-Buffer 及其他相关信息会以文件的形式提供(202作业5发布公告的作业数据百度网盘资源,将它解压到项目目录) 运行build.bat 或 build. sh 来构建和编译作业框架,里面的指令和以前一样,通过cmake生成工程和vs编译即可生成可执行文件 工程输入和输出都是.exr图片格式的文...

c++(3`I/O库)

I/O库 输入和输出并不是C++语言中的正式组成成分,而是在c++ std(Standard Library标准库)中的io库中定义的: 流(stream): 描述字节序列在设备和内存流动的现象 输入输出: 如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,是输入操作 如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),是输出操作 流运算符 ...

Games202(11`作业4)

作业4 前言 微表面模型的BRDF(Microfacet BRDF)存在一个根本问题,就是只考虑了首次弹射出射的能量,忽略了首次未出射的能量,而这部分能量会参与到微平面间的多次弹射中,一部分会弹射到人眼,这就导致了材质的能量丢失,并且当材质的粗糙度越高时,能量的丢失会越严重 Kulla-Conty BRDF模型,引入一个微表面BRDF补偿项fms,来补偿光线的多次弹射,使得材质的渲染结...

数学(1`概率与统计学)

概率与统计学 方差 概率论和统计学方差: 衡量 随机变量 / 一组数据 离散程度的统计量 概率论中方差:度量 随机变量的取值 和其 期望 之间的偏离程度,其中—x是期望 即每个(样本取值 - 期望)^2 的总和 的均值 统计中的方差:是各个 样本数据 和 平均数 之间的偏离程度,其中—x是平均数 即每个(样本数据 - 平均数)^2 的总和 的均值 随机变量X(): ...

c++(2·多线程)

多线程 基础概念 进程:一个正在运行的应用程序被称为一个进程 线程:是进程中的实际运行单位,每个进程可以拥有至少一个的线程 同步:一个任务完成后另一个任务才能开始 异步:一个任务的开始和完成不会直接影响另一个任务的开始和完成 并发:有多个任务在单核CPU被处理,任务被交替执行 并行:有多个任务在多核CPU被处理,任务可以被同时执行 多线程 多线程是并发/并...