Games202(8`第10章)
第10章 Real - Time Rendering(RTR)中PBR材质 RTR材质 vs. 离线材质 RTR为了保证速度,在准确度/质量/种类方面 都不如离线渲染,否则带来的巨大的性能开销将不适用于实时性,在RTR中我们应该在保证速度的前提下,尽可能的提升质量, 对于RTR中Physically-Based Rendering(PBR)基于物理的渲染 严格来说基本都不是基于物理的...
第10章 Real - Time Rendering(RTR)中PBR材质 RTR材质 vs. 离线材质 RTR为了保证速度,在准确度/质量/种类方面 都不如离线渲染,否则带来的巨大的性能开销将不适用于实时性,在RTR中我们应该在保证速度的前提下,尽可能的提升质量, 对于RTR中Physically-Based Rendering(PBR)基于物理的渲染 严格来说基本都不是基于物理的...
作业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章 Screen Space Directional Occlusion (SSDO)屏幕空间方向遮蔽 DO 在AO中,我们假设每个p点受到的环境光都是常数,虽然AO效果更强烈,但是只是简单的让遮蔽位置整体暗一点,而不能颜色混合(现实世界中环境光是有颜色的) DO利用了ray tracing思想,向周围发射光线,和AO相反的是,AO的 RT思想是未击打的部分可以接受间接光照,击打...
并查集 并查集使用树形数据结构,用于处理不相交集合的合并及查询问题,从而加快查询效率(比如pq元素是否属于同集合) 经典问题:亲戚/朋友问题:例如(a,b) 即a是b的朋友,且(b,c),则abc互为朋友关系 数据结构:通常由数组实现 算法: 此处元素整形,如果是string,应使用unordered_map<string, string> init():初始化...
games104 目录 课程分为3部分,共22节课 架构概述 导论 分层 渲染中的数学 各核心系统原理 大气和云 渲染管线 后处理 动画技术 物理系统 粒子 工具链 gameplay 网络 ...
第7章 PRT(Precomputed radiance transfer)预计算辐射传输 我们这次考虑了阴影可视项V,其中使用PRT方法 PRT vs. 直接采样 PRT的核心思想是预计算,利用基函数(例如SH,Wavelet、Zonal Harmonics、Spherical Gaussian、Piecewise Constant……)计算数据并存储起来, 优点:从而降低运行时...
为什么使用指针? 高效传递对象(指针只是存储对象的内存地址,通常只需要4/8字节的空间,可以避免大数据拷贝,提高性能) 防止拷贝,和引用相同的作用 class A { A a;//❌ 错误: 类的定义中不能直接包含同类对象,递归下去,编译器无法计算出 A 类的大小 A* a;//✅ 正确 A& a;//✅ 正确 }; 实现数据结构和算法,实现时经...
作业1 首先作业框架为我们绘制了场景,但是无阴影效果: 这是包含阴影的PBR 公式: V + L + B 框架解析: engine.js: 新增了一个人物模型,1个地面模型 webglrender: 新增了shadowMeshes数组 render中,变为了两次pass,首先为场景(使用阴影材质)渲染阴影mesh,然后为场景渲染颜色...
第4章 优化性能 如何优化pcf以及pcss的性能呢,在区域计算时,随机采样指定数目的像素,而不是区域内的所有像素,但是这样会导致噪声, 另一种方法不再计算区域内的每个像素(比如8*8=64),而是通过转为正太分布的pdf,估计概率,这就是vssm vssm (variance soft shadow mapping)方差软阴影映射 vssm正是为了解决软阴影实现的性能问题,那么为...