虽然实时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. Struts2中过滤器和拦截器的区别

    拦截器和过滤器的区别: 1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而 ...

  2. DRF如何序列化外键的字段

    我觉得在有些应用场景下,这个操作是有用的,因为可以减少一个AJAX的请求,以增加性能. 当然,是二次请求,还是一次传输.这即要考虑用户体验,还要兼顾服务器性能. 一切是有条件的平衡吧.就算是一次传输, ...

  3. android 搭建环境工具

    ---恢复内容开始--- 一.下载jdk 1.JDK可以去sun的官方网站下载Java SE Development Kit 6  http://java.sun.com/javase/downloa ...

  4. C++的那些事:容器和泛型算法

    一.顺序容器 1,标准库定义了3种类型的顺序容器:vector.list和deque.它们的差别主要在于访问元素的方式,以及添加或删除元素相关操作运算代价.标准库还提供了三种容器适配器:stack.q ...

  5. linux中使用top获取进程的资源占用信息

    在linux中使用top获取进程的资源占用信息: Cpu(s):  1.0%us,  0.0%sy,  0.0%ni, 98.3%id,  0.7%wa,  0.0%hi,  0.0%si,  0.0 ...

  6. http://blog.csdn.net/shangboerds/article/details/44175667

    http://blog.csdn.net/shangboerds/article/details/44175667

  7. LightOJ1316 A Wedding Party(状压DP)

    这题事实上只需要关心15个商店和一个起点一个终点,预处理出这几个点之间的最短距离.Floyd会超时,用Dijkstra即可. 然后就是dp[u][S]表示已经经过商店集合S且当前在第u个商店所花的最少 ...

  8. ural 1273. Tie

    1273. Tie Time limit: 1.0 secondMemory limit: 64 MB The subway constructors are not angels. The work ...

  9. 整除的尾数[HDU2099]

    整除的尾数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. Centos6.4 yum安装MariaDB5.5

    vi /etc/yum.repos.d/MariaDB.repo 加入下面内容 [mariabd]name=MariaDBbaseurl=http://yum.mariadb.org/5.5.34/c ...