微积分
文章平均质量分 94
微积分专栏
GamebabyRockSun_QQ
曾经拥有的,不要忘记,
已经得到的,更要珍惜,
属于自己的,不要放弃,
已经失去的,留着回忆,
想要得到的,必须努力,
但最重要的,是好好爱惜自己!
展开
-
DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(5/5)镜面反射积分项2及光照合成
至此总算在历时将近一个月之后,我将这篇教程全部编写整理完毕了,期间翻阅了很多资料,查证了很多公式,通过推演梳理整个IBL渲染过程中的数学原理,终于将整个 IBL过程搞清楚也能讲清楚了。其实 PBR 中的有些理论最早都可以追溯到上个世纪的60年代,整个过程中有很多知名的不知名的大咖们奉献了很多方法和理论,而实时 PBR 更是迟到 2012 年因迪士尼的几篇论文而兴起,再经过 Epic 中众多大佬的打磨提炼,直至今天,实时 PBR 的应用才是方兴未艾之时。原创 2023-03-20 20:07:22 · 1744 阅读 · 13 评论 -
DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(4/5)镜面反射积分项1
接着我们观察整个积分方程拆分后的第二项,也就是被称之为镜面反射项的部分:Los(p⃗,ωo⃗)=∫Ω(DFG4(ωo⃗⋅n⃗)(ωi⃗⋅n⃗))Li(p⃗,ωi⃗)n⃗⋅ωi⃗dωi⃗D=NDFGGXTR(n⃗,h⃗,α)=α2π((n⃗⋅h⃗)2(α2−1)+1)2F=FSchlick(h⃗,ωo⃗,F0)=F0+(1−F0)(1−(h⃗⋅ωo⃗))5GSchlickGGX(n⃗,ωo⃗,κ)=n⃗⋅ωo⃗(n⃗⋅ωo⃗)(1−κ)+κκdirect=(α+1)28κIBL=α22G(n⃗,ωo⃗,原创 2023-03-20 20:03:39 · 1101 阅读 · 5 评论 -
DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(3/5)漫反射积分项
额外需要提醒的是在著名的 [漫反射辐照 - LearnOpenGL CN](https://learnopengl-cn.github.io/07 PBR/03 IBL/01 Diffuse irradiance/) 教程中,既没有详细讲述整个数学过程,也没有推导重要性采样的过程,最后其漫反射辐照度贴图使用了计算量更大的双重循环来计算,如果不加思索的直接使用其代码,可能会造成显卡过热保护而退出,严重的情形下可能会造成显卡硬伤,所以在没有搞清楚的情况下请不要随意执行。更高级的可以使用球谐函数的方式简化存储。原创 2023-03-20 19:51:08 · 1225 阅读 · 5 评论 -
DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(2/5)
如果你有一点关于积分运算的知识的话,那么明显的就可以发现渲染方程可以进一步拆分为两个部分,这样反射积分就变成了两个部分积分的和。这样显然是有好处的,因为这种形式两个积分项可以分开计算,最后再来求和,所以可以被方便的用来并行计算。原创 2023-03-20 19:34:44 · 1012 阅读 · 4 评论 -
DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(1/5)
2023年来了,令人闹心伤身的疫情也暂告一段落了。感慨之余,其实我也挺惆怅,这个系列教程还能继续下去吗?或者我自己还能坚持多久,我不知道。因为我也天天徘徊在失业的边缘,年纪大了被人嫌弃,学历低被人嫌弃,身体稍差也被人嫌弃,忽然发现我已不是当初那个少年了,却还始终怀揣着少年时的梦想,依旧挣扎在理想与现实之间,或者只是挣扎在温饱线上,已然是一身债,半条命了。当然幸运的是到现在我都还没有阳过,属于少数那部分,我身边的朋友们也很惊奇。然而我的家人也都阳过了,他们也很惊奇我居然一直没有阳过,算是一点小小的慰藉吧。原创 2023-03-20 19:16:01 · 2012 阅读 · 8 评论 -
3D数学系列之——再谈蒙特卡洛积分和重要性采样
保证一定的精度,其实就是之前标题所说的从 “蒙的挺准” 到 “蒙的更准”,而且计算量还大大变小了,这对于很多需要数值积分的计算来说是非常非常好的优化方法。成正比导致我们必须付出平方倍的计算量,才能使的误差变小的规律可以被打破了,因为这个因子的后面那堆复杂的表达式在我们特意的设计下几乎 = 0,所以我们完全不用浪费过多的计算量来获取较精确的积分结果。乍看上去,貌似我们要知道我们需要使用的随机变量的概率密度,就需要先知道最终积分的结果,使得这个式子变成了无用的“鸡肋”。也就越接近原始的积分值!原创 2023-03-10 18:45:50 · 2645 阅读 · 6 评论 -
3D数学系列之——从“蒙的挺准”到“蒙的真准”解密蒙特卡洛积分!
目录1、前言2、积分概念简单回顾3、积分在程序计算上的困难4、蒙特卡洛积分5、一些扩展应用1、前言 在学习3D数学的过程中,或者说在学习游戏开发、引擎开发、渲染器开发、Shader开发的过程中,对大家来说,当然也包括我,数学是一道必须要迈过的坎,而无论你有多么头疼。 目前市面上所见3D数学类的书籍,其内容还是主要集中在3D的线性代数部分,即向量和矩阵的理论及运用上,这部分内容其实如果有初高中的牢固的数学的基础的话,理解和掌握是不难的。但是在真正的渲染编程的过程中,仅仅有线性代数的知识是远远不够的,原创 2021-06-21 18:30:56 · 2025 阅读 · 55 评论