八叶一刀·无仞剑

万物流转,无中生有,有归于无

导航

上一页 1 2 3 4 5 6 7 8 ··· 12 下一页

2020年9月11日

摘要: 在进行采样的过程中,经常需要生成随机数,为了能够得到一个尽可能好的采样结果,均匀的随机数是非常重要的。下图是我利用伪随机数采样得到的一系列点,可以看到其实还是不够均匀的: 因此,如何得到一组分布均匀的随机数就成为了一个问题,本文所介绍的低差异序列技术就尝试解决它。 本文主要参考自:https://z 阅读全文

posted @ 2020-09-11 17:14 闪之剑圣 阅读(1791) 评论(0) 推荐(1) 编辑

2020年8月31日

摘要: 在之前的文章里,我们介绍了直接光照的PBR的实现。今天,我们将介绍基于Image Based Lighting(IBL)技术的PBR间接光照的实现方法。 IBL技术是是一类光照技术的集合,它认为可以将周围的环境贴图看成是构成物体间接光照的来源。它环境贴图的每个像素视为光源,在渲染方程中直接使用它。这 阅读全文

posted @ 2020-08-31 19:46 闪之剑圣 阅读(694) 评论(0) 推荐(0) 编辑

2020年8月26日

摘要: 最近自己在研究一个问题:DX中给定一张Texture,当数据已经存在于GPU端后,应该如何做才能将纹理的数据读取到CPU中? 要解决这个问题,首先应当知道DirectX中对于一个Texture的描述,这里我们以2DTexture为例,描述它的数据结构如下: typedef struct D3D11_ 阅读全文

posted @ 2020-08-26 21:54 闪之剑圣 阅读(1455) 评论(0) 推荐(0) 编辑

2020年8月16日

摘要: 之前介绍了有关PBR技术的一些理论知识,今天来讲一下利用代码如何实现相应的光照算法。 我们提到,我们最终要求解的其实就是这么一个积分: 积分中kd的部分代表光照所产生的漫反射,ks的部分代表光照所产生的高光反射。如果充分考虑间接光照的效果(也就是从光源发射出光线后,不断碰撞反射,最终进入人眼),那这 阅读全文

posted @ 2020-08-16 17:12 闪之剑圣 阅读(690) 评论(0) 推荐(0) 编辑

2020年8月11日

摘要: 最近策划希望给游戏中的视频增加一个类似抖音的滤镜特效,如下所示: 可以看到,有条纹状和点状的干扰信息时不时出现在视频中。 我在网络上找了一下,还真的没有找到有人实现过这个滤镜的shader,因此只能靠我自己分析滤镜内容来反向推shader了。 首先我们可以发现,在这个特效中,干扰的效果都是呈现为方块 阅读全文

posted @ 2020-08-11 20:39 闪之剑圣 阅读(394) 评论(0) 推荐(0) 编辑

2020年8月5日

摘要: Cosine-Weighted是一种对球面进行采样的算法,常用于路径追踪时对入射方向进行采样等领域。在介绍该算法之前,我们先来复习一下概率论的知识。 ###随机变量之间PDF的转换 假设有两个随机变量X和Y,它们的PDF为$p_x(x)$和$p_y(y)$,假设我们已知$p_x(x)$以及Y=f(X 阅读全文

posted @ 2020-08-05 20:14 闪之剑圣 阅读(1838) 评论(0) 推荐(0) 编辑

2020年7月22日

摘要: 上一篇文章我们讲了Cook-Torrance BRDF模型,我们知道它由三个部分组成:法向分布函数、几何函数以及菲涅尔(Fresnel)公式。这次我们讲菲涅尔公式。 当光线碰撞到一个表面的时候,菲涅尔公式会返回被反射的光线所占的比例,根据能量守恒定律我们就可以相应地计算出折射的光线所占比。这种反射占 阅读全文

posted @ 2020-07-22 21:18 闪之剑圣 阅读(5788) 评论(0) 推荐(0) 编辑

摘要: 之前我们讲到BRDF定义了入射光的能量到某个方向出射光的能量之比,是一种反映物体材质的重要属性。在PBR技术中,常用的BRDF是Cook-Torrance模型,今天我们来对它进行讲解。 Cook-Torrance BRDF包含了漫反射和高光两个部分: \(\LARGE{f_r=k_d f_{lamb 阅读全文

posted @ 2020-07-22 18:01 闪之剑圣 阅读(2019) 评论(0) 推荐(0) 编辑

2020年7月19日

摘要: 最近在学习LearnOpengl,经过不懈的努力,终于阅读到了PBR的章节,接下来会写一系列博客来总结自己从中学到的理论,并尝试实现其中的算法。 PBR,全称为Physically Based Rendering,是一套尝试用物理的方式来描述现实中渲染效果的技术。相比于前人提到的Phong光照模型, 阅读全文

posted @ 2020-07-19 00:14 闪之剑圣 阅读(2655) 评论(0) 推荐(0) 编辑

2020年7月8日

摘要: 最近在开发的过程中,发现项目的代码中函数大量运用了默认参数,但是一些人在使用默认参数时忽略了其中的一些隐患。在这里予以解析。 比如下面的一段代码: def test(v=[]): v.append(1) print id(v), v test() test() 上面代码的一个主要问题就是使用了可变类 阅读全文

posted @ 2020-07-08 16:30 闪之剑圣 阅读(278) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 12 下一页