RTR博客读书笔记第五章

RTR博客读书笔记第五章_第1张图片

这是Gooch着色模型。

RTR博客读书笔记第五章_第2张图片

 

 RTR博客读书笔记第五章_第3张图片

这是常见的通用的光照模型的公式

RTR博客读书笔记第五章_第4张图片

 这里说了为什么光源方向是反的,这是为了方便计算。

 

RTR博客读书笔记第五章_第5张图片

点光源的问题在于近距离太大,远距离无限小但不是0.所以公式要变种一下。

RTR博客读书笔记第五章_第6张图片

对于一些常量,编译器可以在编译的时候就直接优化掉。这可以在预编译的时候,可以再安装的时候,也可以在应用程序被加载的时候。

RTR博客读书笔记第五章_第7张图片

这是法线插值后变短的问题。可以看到如果不归一化,插值结果也会发生变化。所以一般还是要先归一化。插值后再归一化。

RTR博客读书笔记第五章_第8张图片

RTR博客读书笔记第五章_第9张图片

这里提到了为了保证CPU和GPU的数据字节对齐,简化了数据布局的任务,一般都是用vec4,即便有空间浪费,但速度会非常快。

RTR博客读书笔记第五章_第10张图片

早起硬件不支持分支,导致预编译只能编译出所有分支的结果。现在的硬件已经可以支持分支指令。

 

RTR博客读书笔记第五章_第11张图片

RTR博客读书笔记第五章_第12张图片 

这是两种不同的情况。前者是信号得以完美重建,也就是说通过sinc(x)过滤,他的fs是1,那么信号的最大频率必须比0.5要小。如果满足这个条件,那么我们采样的时候,可以双倍采样频率,这样重建出来的信息可以更好的获得抗锯齿。后者是因为原始信号本身频率太高,最大频率比0.5还要大,采样无法完美还原,重建的结果本身已经是丢失了高频信息的信号。那么如果如果进行双倍采样,是无法获得正确的结果的。正确的做法是反其道而行,我们增加采样间隔,让他采样频率变成原来采样频率的一半。

 

RTR博客读书笔记第五章_第13张图片

多重采样是在每一个像素上采样,但不是中心点,而是分布多个点。

RTR博客读书笔记第五章_第14张图片

FSAA先生成一个多倍分辨率的图片,然后再使用过滤器和超采样来获得抗锯齿的效果。成本会很高。

RTR博客读书笔记第五章_第15张图片

MSAA是对同一个像素内部不同位置进行采样,然后得到图形是否覆盖他的位置,每一个采样都有自己的颜色和zbuffer的存储空间,那么根据覆盖的值,就可以把对应的颜色和zbuffer拷贝到对应的空间中。然后,根据采样的点,我们可以判断获取哪个像素才是我们想要的点。

RTR博客读书笔记第五章_第16张图片

这里提到了TAA,一个根据前一帧信息来抗锯齿的方法。

RTR博客读书笔记第五章_第17张图片

我们可以把像素移动的速度存在一个buff中。这样我们就可以知道上一帧像素所在的位置。

这里面提到的TAA对静止画面会闪烁,是因为TAA去采样上一帧画面的时候会使用jitter,也就是抖动,如果这一帧和上一帧画面结果不一样,是0.5和0.3,那么权重一样的情况是没有问题的。但如果权重不一样,就会山所。

周期2的情况还真看不出来,但周期为3,就是和前两帧混合,就会出问题。

你可能感兴趣的:(RTR4读书笔记)