虽然实时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. 用php输入表格内容

    <body> <table width="100%" border="1" cellpadding="0" cellspa ...

  2. ssh ip "WARING:REMOTE HOST IDENTIFICATION HAS CHANGED!"

    [root@ok network-scripts]# ssh 192.168.1.10 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  3. ODTwithODAC认识与安装图解

    ODTwithODAC认识 ODTwithODAC是用.Net 开发工具时,使用Oracle数据库时, 启连接作用. 安装完ODTwithODAC之后,一般需要安装 Oracle 客户端(比如win3 ...

  4. C++primer学习笔记(三)——Chapter 5

    5.1   Simple Statements 1.记得每个语句后面加上”;”不过现在编译器都有实时编译,一般都不会忘记的, 2.空语句 (1)就是啥都没有.只有一个“:” (2)还是有很多用处的,例 ...

  5. 使用AIDL远程调用服务中的方法

    AIDL:android interface define language(接口定义语言) 作用:方便远程调用其他服务中的方法 注意:安卓四大组件都要在清单文件注册 aidl创建图: AIDL的全称 ...

  6. IDEA中如何添加Scala插件。 我使用的IDEA版本是14

    如图:

  7. poj 1115 Lifting the Stone 计算多边形的中心

    Lifting the Stone Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  8. js:语言精髓笔记3----语句

    JS语句分类:(注意语句都是有返回值的) 声明语句: 变量声明语句: 标签声明语句: 函数声明语句: 表达式语句:(表达式加分号) 变量赋值语句:具有声明一个变量的隐式效果: 函数调用语句; 属性赋值 ...

  9. easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法

    easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式. 目前的需求是需要在初始化的时候添加"全部数据库&quo ...

  10. 阿里云ECS(云服务器)之产品简介

    参考阿里产品文档:https://docs.aliyun.com/?spm=5176.100054.3.1.ywnrMX#/pub/ecs/product-introduction/concept