![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图形学
贤愚
这个作者很懒,什么都没留下…
展开
-
噪声笔记#3 梯度噪声_Perlin Noise
value noise 看起来非常“块状”。为了消除这种块状的效果,在 1985 年 Ken Perlin 开发了另一种 noise 算法 Gradient Noise。Ken 解决了如何插入随机的 gradients(梯度、渐变)而不是一个固定值。这些梯度值来自于一个二维的随机函数,返回一个方向(vec2 格式的向量),而不仅是一个值(float格式)。perlin噪声相对于之前值噪声修...原创 2018-11-18 19:29:22 · 2652 阅读 · 0 评论 -
噪声笔记#7 无缝噪声生成
最近想尝试体积云,需要用到3D的无缝噪声,所以学习了一下主要看到了两个思路一个是用利用圆的周期性在高一倍纬度的噪声中采样生成低纬度的无缝噪声比如在4d中采样2d无缝,在6d中采样3d无缝还有一种适用于那些基于网格位置得到随机值的噪声,只要让边界网格的随机值一样,结果自然是无缝的搜的一些资料:https://blog.csdn.net/yolon3000/article/deta...原创 2019-07-22 15:09:49 · 656 阅读 · 3 评论 -
在Unity里使用光线步进(Raymarching)
图中光滑球为光线步进产生,粗糙球为Unity的场景物体概念光线步进和光线投射类似,都是从屏幕发射射线,然后求射线和物体的焦点,但是光线投射是一次性算出交点,而光线步进是一步步的前进,不断的向交点趋近,光线步近中的物体使用一种距离场函数来表示(SDF,Signed-distance-field 有向距离场)。通过这个函数你可以知道当前点的位置位置和物体的最近距离,如果距离趋向于0,就说...原创 2019-06-07 19:21:30 · 3449 阅读 · 1 评论 -
路径追踪笔记02
http://blog.three-eyed-games.com/2018/05/12/gpu-path-tracing-in-unity-part-2/上一章我们使用的光线追踪方法是递归式光线追踪(Whitted-style Ray Tracing),我们假设每次光线都是表面法线进行的完美反射,所以他可以很好的展现光滑物体表面的反射效果。但是现实生活着并不是所有物体都是非常光滑的,这种方...原创 2019-05-18 19:45:06 · 1701 阅读 · 0 评论 -
路径追踪03 相交性检测
三角形1:Ps:三角形可拓展至任意网格推导过程:射线: (O原点,D方向,t距离)三角形:(V123 顶点 uvw 重心坐标)求相交点等价于矩阵运算设V1-V0=E1 V2-V0=E2 O-V0=T根据克莱姆法则,三个值分别为整合在一起就是根据混合积公式设P=DxE2 Q=TxE1...原创 2019-05-22 19:09:48 · 496 阅读 · 0 评论 -
光线追踪笔记01
看到几篇文章,作者利用Compute Shader在Unity里实现光线追踪,这里记一下不好理解的地方和比较重要的知识点http://blog.three-eyed-games.com/2018/05/03/gpu-ray-tracing-in-unity-part-1/要注意的是这里Unity只是个实现的载体,和Unity原来的渲染管线基本没有关系了,只是使用OnRenderImage来...原创 2019-05-16 18:19:42 · 1401 阅读 · 4 评论 -
UnityShader BRDF的简易实现
最近《3D游戏与计算机图形学中的数学方法》看到双向反射分布函数,开头的各种术语把爷整懵了,看完才发现竟然前面只是介绍了原理!!!果然我还是安安分分地套公式好了。BRDF函数:k表示表示入射光中被漫反射出去的部分光能,1-k则表示剩余的光能,被物体吸收或成为镜面反射。可以差不多把1-k看做金属值。D表示漫反射颜色,我们简单的用兰伯特光照模型计算即可。重点就在于镜面反射函数...原创 2019-02-23 19:38:19 · 2037 阅读 · 0 评论 -
噪声笔记#5 Worley噪声
Worley noise也叫Voronoi/Cellular noise,叫Voronoi是因为基于Voronoi 算法,Voronoi图,叫Worley是因为1996年Steven Worley 写了一篇名为“A Cellular Texture Basis Function”的论文。在这篇论文里,他描述了这种现在被广泛使用的程序化纹理技术。worely噪声有别与前面几种噪声,它是随机生成几...原创 2018-11-26 21:04:14 · 2594 阅读 · 2 评论 -
噪声笔记#2 插值和值噪声
白噪声实在是太随机了,随机值之间没什么相关性,而在现实中,像波浪,叶脉纹理这些在随机中又带着规律性,因此想要模拟这些的噪声(Noise)也需要在随机中带点相关性。(1)用插值连接随机点之前实现白噪声,每个像素块彼此完全独立,随机点之间没有联系。想要把这些随机点连接起来就需要插值。这里列几个常用的插值方法 比如说有这样几个随机点第一种,线性插值 :,float i = fl...原创 2018-11-16 21:47:01 · 1505 阅读 · 0 评论 -
噪声笔记#4 梯度噪声_Simplex Noise
柏林噪声很好用,但是它计算需要的顶点数是,随着维度的增加,需要的顶点数急剧上升。于是在2001 年的 Siggraph上,他展示了 “simplex noise”,它比perlin有更低的计算量和优化。Simplex是单形的意思通俗解释单形的话,可以认为是在N维空间里,选出一个最简单最紧凑的多边形,让它可以平铺整个N维空间。我们可以很容易地想到一维空间下的单形是等长的线段(1-单形),把...原创 2018-11-22 14:49:41 · 1449 阅读 · 0 评论 -
噪声笔记#1 随机值和白噪声
噪声其实就是程序中的一些随机变量,所以想要生成噪声就先要有一个能够生成(伪)随机数的方法生成随机数的一些方法(1)HASHhash函数是可以用来生成随机数 而且很常用,他会根据输入的种子数生成并返回对应的随机数,在图形学中,通常返回0-1 常用HASH函数·直接取余法:f(x):= x mod maxM ; maxM一般是不太接近 2^t 的一个质数。·乘法取整法:f(x)...原创 2018-11-13 19:44:57 · 1732 阅读 · 0 评论 -
可编程渲染管线12 图像质量
这是Unity可编程渲染管线的第十二章,在本章中,我们将通过调整渲染比例、应用MSAA 、HDR缓冲配合tone mapping等方式来提升画面质量。该教程基于Unity2018.4.6f1。1 渲染比例(Render Scale )相机的设置决定了渲染图像的高和宽,这一过程不在我们渲染管线的管理范围内。但是在渲染到相机的渲染目标前,我们可以对图像做任意的操作。也就是说我们可以创建...翻译 2019-11-18 16:33:19 · 2130 阅读 · 0 评论