摘要: 直到最近才发现有已经成熟的开源渲染器框架PBRT。PBRT框架是两位斯坦福的博士为写一本书《Physically Based Rendering: From Theory to Implementation》而附带给出的实现代码。在PBRT第二版的代码中,已经集成了网上可以搜索到的绝大部分绘制算法,从最基础的path tracing到bdpt,metropolis再到photon mapping。两位作者也非常牛逼:Matt Pharr : Intel首席工程师. 在高级渲染技术组做首席架构师. 创立过Neoptica公司, 从事异构CPU+GPU系统的图形编程模型的工作,Neoptica被. 阅读全文
posted @ 2012-12-18 21:36 星光下的守望者 阅读(2750) 评论(0) 推荐(0) 编辑
摘要: 想来,GI的学习也大概有一个月了,不敢说有多深入的理解,至少有了一个感性的了解。记得大二的时候一直很惊叹于3DMAX渲染的图片为什么会有这么真实的效果,当时也没有深究,现在再回过头来看3DMAX的普通天光渲染,感觉很可能是裸的Final Gathering或者直接AO实现。只是遗憾的是当时只忙着学习怎么操作3DMAX,对其中的道理却一点也不想深究。闲话少说,先来说说GI(Global Illumination)究竟是什么吧。 还记得光线跟踪(Raytrace)算法么,在它提出之前的光照算法几乎是完全的局部光照算法,以phong着色为例,在不考虑光源光强衰减的情况下物体表面某点的光亮度直接与该. 阅读全文
posted @ 2012-11-29 23:49 星光下的守望者 阅读(3223) 评论(4) 推荐(0) 编辑
摘要: 传统的光线跟踪算法中一般使用的是标准的向量反射公式来模拟规则镜面反射。然而现实世界中却经常不是这样,因为材质表面不可能完全光滑,任何表面细微的凹凸不平都可能导致反射图像的不清晰,如下左图的金属表面呈现出明显的细微凹凸,因此映射于其上的反射图案也会因此变得模糊(下右图) 不仅镜面反射能够出现模拟,折射也会出现这种情况:一种较简单的处理一般镜面模糊反射的方法是使用分布式光线跟踪算法(distribution ray tracing),该算法又称随机光线跟踪(stochastic ray tracing),它在处理每一被跟踪光线时,在光线与景物表面的焦点处不仅朝其镜面反射方向和规则折射方向发射光线. 阅读全文
posted @ 2012-11-22 16:24 星光下的守望者 阅读(1537) 评论(0) 推荐(0) 编辑
摘要: Raytrace学习的阶段性总结 最近一个月一直在学习RAYTRACE,从理论到代码实现,之前最近才终于有了一个比较完整的版本,遂打算把之前的一些学习经历写出来。 RAYTRACE又称光线跟踪,业界公认此算法为Turner Whitted在1980年提出,而它本身又是由原来的光线投射算法(ray casting)演变而来的,ray casting本身是用来消除场景中隐藏面的一种算法,Whitted将其扩展为递归算法后则成为了传统的raytrace算法。标准的raytrace一般采用逆向跟踪技术来完成整个绘制,即从视点出发计算屏幕上每一个像素点的颜色值。其大部分过程是于物体求交,若该光线击中物体 阅读全文
posted @ 2012-11-07 23:38 星光下的守望者 阅读(1355) 评论(0) 推荐(0) 编辑
摘要: 光的反射与折射的向量计算 在raytrace的计算中,光反射与折射的计算是两个非常重要的过程,而由于我们在图形学中通常都使用向量来计算,所以也有必要找到一套计算光反射和折射模型的向量计算方法。(该方法来自Bram de Greve的文章"Reflections and Refractions in Ray Tracing")1.反射,假设入射光的单位方向向量为L,物体的单位表面法向量为N,最后要求的反射单位向量为R,如图所示由于这几个向量都是单位向量,我们很容易看出R-L的结果(R加上-L(绿色的那根))与N是共线的(同方向),而且|R-L|的值等于2乘以L在N上的投影(即 阅读全文
posted @ 2012-11-05 13:37 星光下的守望者 阅读(7765) 评论(0) 推荐(0) 编辑
摘要: 纪念一下,决定告别百度空间,空间太不给力了,都提交申请快一个月了,居然还是没办法搜索到 阅读全文
posted @ 2012-11-05 13:28 星光下的守望者 阅读(164) 评论(0) 推荐(0) 编辑