最近因为开始做PRT(Precomputed Radiance Transfer),看了一些资料。wikipedia上的解释:
Precomputed Radiance Transfer (PRT) is a computer graphics technique used to render a scene in real time with complex light interactions being precomputed to save time. Radiosity methods can be used to determine the diffuse lighting of the scene, however PRT offers a method to dynamically change the lighting environment.In essence, PRT computes the illumination of a point as a linear combination of incident irradiance. An efficient method must be used to encode this data, such as Spherical harmonics.
When spherical harmonics is used to approximate the light transport function, only low frequency effect can be handled with a reasonable number of parameters. Ren Ng extended this work to handle higher frequency shadows by replacing spherical harmonics with non-linear wavelets.
那么,PRT技术到底是什么呢?PRT技术能够实时重现面积光源下3D模型的全局光照效果。它通过对复杂的光线相互作用进行预计算来节省时间,提供了一种动态改变光照环境的方法。PRT本质上是通过入射光的线性组合来计算每个点的光照,用球面调和函数可以编码这些数据。
PRT算法是采用球面光辐射传输映射方法在物体表面创建函数,把任意低频入射光的传输表示成辐射度传输, 其中包括阴影和交互反射。对光辐射传输单独进行预处理,在运行阶段, 这些转移函数应用到实际入射光中。光源和光辐射传输函数都用低频球谐波函数描述。在绘制过程中, 由于全局光照计算所需的光辐射传输函数信息都已经在预处理中获得, 而且该函数和光源分布函数都已经分解为正交函数序列, 因此最后的出射光强计算简化为两者的系数向量的点积, 这种方法绘制漫反射静态场景速度较快, 同时绘制了阴影, 相互反射等全局光照效果。
有很多的paper,主要参考的是siggraph2005的course《Precomputed Radiance Transfer:Theory and Practice》。
比较经典的一篇paper:《Spherical Harmonic Lighting》见:http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.html
Effulgent的公开笔记:[高级光照]球谐光照(上),是对上面文章的前半部分的翻译,是国内能找到的很有限的资料http://www.paulsprojects.net/opengl/sh/sh.html (Spherical Harmonic Lighting Demo及openGL源代码)
Spherical Harmonic Lighting Program (有openGL的完整源代码,实现的效果也不错,很有参考价值)
http://www.yasrt.org/shlighting/(Demo)
一个日本人的网站,有对《Spherical Harmonic Lighting》这篇论文的实现代码:http://www.mokehehe.com/assari/index.php?Spherical%20Harmonic%20Lighting%3BThe%20Gritty%20Details
草色新雨中, 松声晚窗里。之前我们学习 Power Query 都是用鼠标就完成了很多复杂的操作。虽然 PowerQuery 已经将大部分常用功能内置成到功能区。基本能完成我们大部分的报表自动化功能。但是总有些复杂的或者个性化的问题是开发团队没有预先想到的,这时我们就需要学习 M 语言。一、M 语言在哪里?M语言的函数公式有三个地...
前言从2020年3月份开始,计划写一系列文档--《小白从零开始学编程》,记录自己从0开始学习的一些东西。第一个系列:python,计划从安装、环境搭建、基本语法、到利用Django和Flask两个当前最热的web框架完成一个小的项目第二个系列:可能会选择Go语言,也可能会选择Vue.js。具体情况待定,拭目以待吧。。。基本概念表达式表...
1.1函数1.1.1什么是函数函数就是程序实现模块化的基本单元,一般实现某一功能的集合。函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能,进行一系列的逻辑运算return 返回值:函数的返回值能表示函数的运行结果或运行状态。1.1.2函数的作用函数是组织好的,可重复使用的,用来...
原标题:基于Python建立深度神经网络!你学会了嘛?图1 神经网络构造的例子(符号说明:上标[l]表示与第l层;上标(i)表示第i个例子;下标i表示矢量第i项)单层神经网络图2 单层神经网络示例神经元模型是先计算一个线性函数(z=Wx+b),接着再计算一个激活函数。一般来说,神经元模型的输出值是a=g(Wx+b),其中g是激活函数(...
在学习MySQL的时候你会发现,它有非常多的函数,在学习的时候没有侧重。小编刚开始学习的时候也会有这个感觉。不过,经过一段时间的学习之后,小编发现尽管函数有很多,但是常用的却只有那几个。今天小编就把常用的函数汇总一下,为大家能够能好的学习MySQL中的函数。MySQL常使用的函数大概有四类。时间函数、数学函数、字符函数、控制函数。让我...