虽然实时GI技术已经趋于成熟了,但出于对不同平台的性能和质量的考虑, 更倾向搭配一些预计算的渲染技术来实现,如给静态物体提供GI的LightMap, 给动态物体提供GI的Irradiance Volume ,以及给增加GI的Specualar细节的IBL等等。特别是对应移动平台而言。
  
  为了提高预计算的速度,减少美术迭代时间,也要开始考虑把这些技术基于GPGPU来实现,后两者Irradiance Volume的数据相对较小,数据组织上也不受场景的影响,对于一些较小场景在运行前进行预计算都是可以的,而IBL一个是每张pre-filter envmap的比较独立,范围相对也较小,另外envmap也可以同时在多个物体上使用。所以实现起来,在复杂度和内存使用上对GPGPU来说也不是难点。
  
  而lightmap,一个是几乎无法在多个模型上复用,另外显存的使用量也会很大,特别是对那种场景超大的游戏来说,SQUARE ENIX的这篇ppt介绍了他们基于Ray Bundle Tracing,并使用per pixel linked list来实现GPGPU的lightmap烘培的设计思路和实现方法。对于我们想自己实现GPU烘培也是很好的借鉴。除了基本方法外,本文也扩展到了支持Tessellation,支持lambert以外的BRDF方程,如何对应超大场景,以及部分场景修改后如何只烘培那一小部分场景等等实际的问题。总的来说还是值得看看的。当然国内应该有几家公司也已经实现GPGPU烘培了。不知道是不是用的这个技术。
 
  因为是会议用的讲解ppt,幻灯片本身内容的细节并不多,好在作者已经把演讲稿写在了备注部分,所以本文才有了翻译的意义,不过演讲稿本身口语化严重了一些,不过也不好对作者原文做太多修改,也就大部分原汁原味的翻译过来了。不过,翻译后我也校对了1,2遍,所以发的也有点晚了,就如作者所说,有图形基础的程序员应该都能读懂的了,如果有什么疑问再留言或直接联系我吧。
 
  另外最新的英文版的paper链接我也放在下面了,两篇虽然有一些交集,但更多的还是可以做互补吧,如果有兴趣也一定要看的,另外paper里的一些参考数据比较有价值。关于Ray Bundle Tracing,SE发的一些更早的资料,也在下面的SE的论文链接里提供了。
ppt翻译版
链接: http://pan.baidu.com/s/1tVEDC 密码: nx1p
 
SE最新的ppt Adaptive Ray-bundle Tracing with Memory Usage Prediction: Efficient Global Illumination in Large Scenes
 
论文的相关网址
 
另外,个人还是想做一个GPGPU烘培的项目试试看,如果有谁已经实现了,或者有兴趣或问题也欢迎来讨论和指导。

【翻译】CEDEC2012 SQUARE ENIX GPGPU实现高速GI烘培工具的方法的更多相关文章

  1. Oracle GI 日志收集工具 - TFA

    1.TFA的目的: TFA是个11.2版本上推出的用来收集Grid Infrastructure/RAC环境下的诊断日志的工具,它可以用非常简单的命令协助用户收集RAC里的日志,以便进一步进行诊断:T ...

  2. Unity3d 游戏中的实时降噪-对Square Enix文档的研究与实现

    看到SE的技术文档关于降噪的决定研究一下,本次试验场景: 文章中提到了3中主要滤波方法,最后一种方法又有三种方式分别为Conventional geometry-aware filtering,Dist ...

  3. [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比

    <<返回目录 平均值 vs 百分比 在考虑要性能测试的目标值时,我们需要考虑用什么统计口径.大多数人都会首选平均值,但在大多数情况下,这个正确的,但你也应该适当的考虑百分数.但你有可用性的 ...

  4. kali高速更新源以及主题修改方法

    文章不小心删了~这是我以前写的文章了了.实用性较强,所以现在补回来! 安装完kali之后,需要对软件进行一次整体更新:apt-get update & apt-get upgrade 但是,先 ...

  5. 【翻译】JavaScript中5个值得被广泛使用的数组方法

    原文地址:http://colintoh.com/blog/5-array-methods-that-you-should-use-today?utm_source=javascriptweekly& ...

  6. Oracle GI 日志收集工具 - TFA 简介

    转载自:https://blogs.oracle.com/Database4CN/entry/tfa_collector_%E4%BB%8B%E7%BB%8D 1.TFA的目的: TFA是个11.2版 ...

  7. 高速下载百度网盘的方法,只需要一个软件【win/mac/linux】

    论坛里差不多全部都是用百度云的,但是官方百度云的限速,大家都懂的,下面教大家使用一个软件满速下载,不用油猴 1,软件支持mac,win64/32,linux.Linux只有自己编译使用,我也不会哈哈哈 ...

  8. IT这一行,如可高速下载国外资源之迅雷设置免费SSH代理下载国外资源

    本文转自SUN'S BLOG 原文地址:IT这一行,如可高速下载国外资源之迅雷 我们这些做IT这一行的人,经常,下载一些国外的一些资源,可是让人蛋碎的是,往往这些资源下载都慢的像蜗牛,真的让人无法忍受 ...

  9. 桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译)

    现在的翻译软件功能越来越多,也越来越臃肿,还不时弹广告,真的很烦恼. 鉴于这种情况,自己做了个翻译软件,能满足日常需求就好了.需要用的时候可以直接在桌面输入单词翻译,或者直接使用快捷键呼出翻译窗口.最 ...

随机推荐

  1. Asp.net MVC 利用自定义RouteHandler来防止图片盗链

    你曾经注意过在你服务器请求日志中多了很多对图片资源的请求吗?这可能是有人在他们的网站中盗链了你的图片所致,这会占用你的服务器带宽.下面这种方法可以告诉你如何在ASP.NET MVC中实现一个自定义Ro ...

  2. Xamarin.Android开发实践(八)

    Xamarin.Android其他类型的服务 一.前言 前面我们已经学了关于服务的很多知识,但是对于真实的开发那些远远不够,通过这节我们将学习其他类型的服务,比如前台服务.IntentService和 ...

  3. android MVC

    Android 的官方建议应用程序的开发采用MVC 模式.何谓MVC? MVC 是Model,View,Controller 的缩写,从上图可以看出MVC 包含三个部分: 模型(Model)对象:是应 ...

  4. js:数据结构笔记14--高级算法

    动态规划: 递归是从顶部开始将问题分解,通过解决所有分解出小问题来解决整体问题: 动态规划从底部开始解决问题,将所有小问题解决,然后合并掉一个整体解决方案: function dynFib(n) { ...

  5. POJ2823 Sliding Window(单调队列)

    题目要输出一个序列各个长度k的连续子序列的最大值最小值. 多次RMQ的算法也是能过的,不过单调队列O(n). 这题,队列存元素值以及元素下标,队尾出队维护单调性然后入队,队首出队保持新元素下标与队首元 ...

  6. onclientclick和onclick区别

    OnClientClick是客户端脚本,一般使用javascript,在客户端,也就是IE中运行,点击后马上执行OnClick是服务器端事件处理函数,使用C#或者vb.net,在服务器端,也就是IIS ...

  7. RectAnimation用于在DrawingVisual画进度条

    使用Visual来画图,可以使用其派生类,UIElement.Viewport3DVisual用于呈现3D内容,其他可以用来画图的为DrawingVisual,使用DrawingVisual可以使用编 ...

  8. 循环多少次?[HDU1799]

    循环多少次? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  9. hiho#14

    军训去了没有打,回来看题跑. T1:hehe 注意X可能是实数233 #include<cstdio> #include<cctype> #include<queue&g ...

  10. SSH整合配置二级缓存

    一.了解 Hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但session关闭时,一级缓存失效. 二级缓存是Sessio ...