1`构建阶段、构建目标和使用
构建 构建阶段 构建:将源码(高级语言)转换为可执行程序(二进制) 上述是c语言 c++: .cpp, .h -> .ii -> .s -> .obj -> .exe 分别由 预处理器、编译器 / 解释器、汇编器、链接器 执行 构建流程: 预处理(Preprocessing)根据预处理指令 对源代码进行 插入 / 替换 / 丢弃…… ...
构建 构建阶段 构建:将源码(高级语言)转换为可执行程序(二进制) 上述是c语言 c++: .cpp, .h -> .ii -> .s -> .obj -> .exe 分别由 预处理器、编译器 / 解释器、汇编器、链接器 执行 构建流程: 预处理(Preprocessing)根据预处理指令 对源代码进行 插入 / 替换 / 丢弃…… ...
概率与统计学 样本、事件 样本空间Ω:一次实验所有试验可能结果的集合(去重结果,比如掷骰子有6种可能结果) 样本点:样本空间的元素(某个结果) 事件A:样本点子集(符合某种条件的结果集合) 互斥事件:两个事件是不相交的关系A∩B=∅,一个样本结果不会同时属于两个事件 掷骰子,把123点作为事件A,把456点作为事件...
第13章 规定: ~C未降噪图片 —C已降噪图片 k->kernel滤波(卷积核) 卷积伪代码: 对于每个像素i,找到周围的像素j 加权:对每个像素j,会根据绝对距离和标准差求得j权重,通过j值 * j权重 得到j对i的贡献值,sum += 平均:循环结束,i值 = sum_值 / sum_权重(未归一化需要除法) 高斯滤波—空间降噪 使用高斯滤波核...
多线程 基础概念 进程:一个正在运行的应用程序被称为一个进程 线程:是进程中的实际运行单位,每个进程可以拥有至少一个的线程 同步:一个任务完成后另一个任务才能开始 异步:一个任务的开始和完成不会直接影响另一个任务的开始和完成 并发:有多个任务在单核CPU被处理,任务被交替执行 并行:有多个任务在多核CPU被处理,任务可以被同时执行 多线程 多线程是并发/并...
第11章 LTC线性变换的余弦 LTC:在多边形光源(面光源)快速求得不考虑V项任意一点的着色值 lobe/镜面波瓣:镜面BRDF的wi和wo任意一边固定,另一边形成的波瓣,从wi进入的光线向波瓣方向反射,从波瓣进来的光线向v方向反射 固定入射方向,把brdf的lobe通过线性变换M^-1转变为一个余弦函数,使得朝上 将多边形光源(每个顶点和p连接的向量)也进行M^-1变换使得朝上...
第10章 BRDF FDG项:详见其他章节 注:以下是论文的描述,在games202课程中,由于很多符号都表达的不一致,就统一按论文中符号来说 The Kulla-Conty Approximation Single scattering单次散射ss,Multiple scattering多次散射ms 对于BRDF的D项(通常使用GGX算法),只考虑了光线ss的结果,没有...
作业3 本次作业要求完成屏幕空间GI,WebGLRenderer.js中首先包括了light pass阶段 渲染灯,对场景分3个pass: Shadow Pass绘制场景阴影贴图 GBuffer Pass(延迟渲染),把场景相关的贴图传入shader,最后生成diffuse、depth、normal、shadow、worldPos五个GBuffer信息 Camera Pas...
作业2 框架说明 框架包含两部分,nori的预计算部分,和webgl渲染部分 nori工程是一个开源的用C++编写的简单的教学光线跟踪器,在源码框架下,加入了prt.cpp文件 编译nori项目 steps: 首先进入nori工程 mkdir创建目录,以便用于存放构建文件, 进入目录后cmake命令根据CMakeLists.txt 文件(描述项目的构建规则),生成构...
第9章 SSDO屏幕空间方向遮蔽 DO是对AO的升级,它考虑了间接光照的颜色信息 是否光照计算:未被遮挡,就会对p提供间接光照 渲染:采用RSM中VPL的信息对p点着色,着色公式和RSM的公式一样 问题 2·存在丢失信息问题:比如墙面侧对着我们,墙面正面为黄色,应该对附近地面产生影响,但由于判断问题,采样点均未通过深度比较,因此丢失了光照信息 SSR屏幕空间 反射/光线追踪...
A* 最短路径问题:在指定区域内,找到A到B的多条可行路径中,最短路径 尝试用其他解决方案: 深度优先搜索:由于找到一条可行路径并不一定是最短路径,因此要遍历所有路径,这样非常耗时,如果要保存所有可行路径结果,还要大量的存储空间 广度优先搜索:不断往外扩展搜索,时间上最坏情况要遍历所有节点,空间上要大量存储,因为不知道哪个路径可行,都要存储 ...