Games202(6·作业2)
作业2 框架说明 框架包含两部分,nori的预计算部分,和webgl渲染部分 nori工程是一个开源的用C++编写的简单的教学光线跟踪器,在源码框架下,加入了prt.cpp文件 编译nori项目 steps: 首先进入nori工程 mkdir创建目录,以便用于存放构建文件, 进入目录后cmake命令根据CMakeLists.txt 文件(描述项目的构建规则),生成构...
作业2 框架说明 框架包含两部分,nori的预计算部分,和webgl渲染部分 nori工程是一个开源的用C++编写的简单的教学光线跟踪器,在源码框架下,加入了prt.cpp文件 编译nori项目 steps: 首先进入nori工程 mkdir创建目录,以便用于存放构建文件, 进入目录后cmake命令根据CMakeLists.txt 文件(描述项目的构建规则),生成构...
A* 最短路径问题:在指定区域内,找到A到B的多条可行路径中,最短路径 尝试用其他解决方案: 深度优先搜索:由于找到一条可行路径并不一定是最短路径,因此要遍历所有路径,这样非常耗时,如果要保存所有可行路径结果,还要大量的存储空间 广度优先搜索:不断往外扩展搜索,时间上最坏情况要遍历所有节点,空间上要大量存储,因为不知道哪个路径可行,都要存储 ...
第7章 PRT预计算辐射传输 渲染方程 = ∫ L F cos V阴影可视项 d PRT的核心思想是利用sh函数对渲染方程大量预计算,以便加快运行计算速度 ptr将渲染方程分为两部分:light光照: L 和 light transport光照传输: FVcos 重要定理:两个函数的product integral乘积积分 ≈ 两个函数积分的乘积 Diffuse 漫反射F项...
内置指针 指针本质:通过间接指向和操作内存,提供了更灵活的操作能力 1级指针,2级指针:type** 指针的指针 指向: 对非常量指针可以指向:非常量左值,将亡值(通过右值引用间接) 对常量指针可以指向:非常量左值,常量左值,将亡值(通过右值引用间接) 常量指针可以指向:非常量左值 指向常量的常量指针可以指向:非常量左...
作业1 首先作业框架为我们绘制了场景,但是无阴影效果: 这是包含阴影的PBR 公式: V + L + B 框架解析: engine.js: 新增了一个人物模型,1个地面模型 webglrender: 新增了shadowMeshes数组 render中,变为了两次pass,首先为场景(使用阴影材质)渲染阴影mesh,然后为场景渲染颜色...
第4章 vssm方差软阴影映射 pcss在1、3步,对一定范围内的像素一个一个比较,求得结果,这非常耗费性能,vssm通过快速估计一定范围内的结果值,来优化性能,这个估计需要利用均值和方差 求均值: 范围查询: mipmap: 查询方式:预计算不同分辨率下的纹理,记录不同大小正方形范围的值 查询形状:只能正方形查询 精度:结果近似...
Games202实时高质量渲染 第一章_课程总览 本次总共有14节课程,和6个作业: 实时软阴影 硬阴影:shadow mapping 阴影抗锯齿:PCF 软阴影:PCSS,VSSM,SDF有向距离场 实时全局光照GI 预计算:IBL,PRT,RSM 3D空间:LPV,VXGI ...
其他知识回顾 渲染流水线 图形学使用比如openGL和写普通业务逻辑最大的不同在于,它在一个相对较高的抽象层次上操作——渲染流水线(而unity引擎又对渲染流水线做了更高的封装,让程序员只关心shader部分) 渲染流水线的任务在于根据抽象的3维场景生成一张2维图像,这个工作通常是由CPU和GPU共同完成的 Real-Time Rendering一书中将一个流水线分成3个阶段:应用阶...
基于物理的渲染 PBR光照模型 为了更加真实的渲染效果,使用基于物理的渲染技术 (Physically Based Rendering), 一个PBR光照模型,是否基于物理的,可以根据三个特性来判断:它是否满足能量守恒 (energy conservation)表面反射的不能超过入射的光能,微平面理论(表面实际是由许多人哏看不到的微面元组成的),基于物理的BRDF 光线从发光物发射出...
表面着色器 SurfaceShader是在顶点/片元着色器之上又添加了一层抽象,开发者更容易理解的方式,我们只需要简单的指定,要填充的颜色,法线,光照模型等,其他的全部交给unity自动完成(例如生成真正的顶点/片元着色器) 其中CG代码片段必须直接写在SubShader中,一个表面着色器中最重要的部分是两个结构体以及它的编译指令。 两个结构体是表面着色器中不同函数(shader)之间...