GPU编程模型下的实时辐射度着色方法的分析与探讨

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:xiebf1985
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Radiosity是模拟能量在场景中传递,最终达到平衡的一种阴影着色方法。Realtime Radiosity是这种算法在实时场景中的应用,本文总结了目前的两种实时辐射度算法的实现,并分析了各自的优缺点。
  关键词:实时辐射度;漫反射;渲染;贴图
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31667-01
  Realtime Radiosity Shading under GPU Program Model
  CHENG Xi-en1, ZHENG Jing-hua2
  (1.Jingdezhen Ceramic Institute,Jingdezhen 333403, China;2.Jingdezhen Comprehensive College, Jingdezhen 333000, China)
  Abstract:Radiosity method is the simulaiton of the transfer of energy between surfaces in an enclosed environment. Realtime Radiosity is the application of radiosity method on realtime scene, this paper describes two popular implement of realtime radiosity method.
  Key words:Realtime Radiosity; Diffuse Reflection; Rendering; Map
  
  1 引言
  
  实时辐射度Realtime Radiosity是一种阴影着色方法,模拟了热力学能量传输,最终在场景中达到平衡的过程。它可以很好的生成具有全局光照(Gobal Illumination)的效果的场景。但是它与RayTracing光线跟踪的方式不同,它不包括Visible可视测试算法,仅仅是一种基于Path路径的阴影着色方法。
  Radiosity是模拟能量在场景中传递,最终达到平衡的一种阴影着色方法。算法方面最经典的是Cohen M.F与Wallace J.R所著的《Radiosity and realistic image synthesis》一书,也就是Progressive Refinement Radiosity逐步求精的辐射度方法。但是在实时领域,由于GPU编程模型的限制——首先,GPU是光栅化硬件,而不是以光线跟踪的方式工作的;其次,不提供随机内存访问,没有指针,无法遍历场景;最后,不可以写入随机内存位置,一切的一切都是以Stream流式进行的。因此在实时渲染领域,无论是硬件还是软件的发展依旧还有很长的路要走。笔者总结了一下,目前实时辐射度的方法有两种。
  
  2 基于虚拟光源Virtual Point LIghts VPL的方法
  
  最早由Universit?t Kaiserslautern的Alexander Keller展示的基于虚拟光源Virtual Point Lights VPL的方法,又被称作立即辐射度Instant Radiosity。具体概括为这样的一个过程:
  从场景内真实的光源位置开始,根据光源的类型比如具体是点光源还是方向光等,生成一个方向分布,然后在场景中投射,命中到的位置就可以作为是虚拟的新光源。接下来在渲染的过程中,使用这些数目很大的光源迭代进行整体光照计算,如图1。
  目前这个方向上最新的论文是《Incremental Instant Radiosity for Real-Time Indirect Illumination》。它的过程主要是:
  (1)生成“合适”的VPLs,根据要求剔除或者增加VPLs;
  (2)渲染场景到G-Buffer;
  (3)将G-Buffer分割为Tiles;
  (4)使用VPLs的子集对Tiles进行着色;
  (5)将Tiles完整的拼凑回去进行过滤操作。
  其实这种方法的思路很简单,真实的场景中许多都是Diffuse漫反射物体,比如墙壁、地板等。而Diffuse漫反射物体之间的能量传递最多为6次就已经相当精确了,剩下的没有进行过的迭代过程对场景效果几乎没有影响。所以说,可以先利用Local Ilumination的方法,将光源射线第一次命中的点当作虚拟光源,使用这个虚拟光源进行光照计算,当然可以生成更多的光源,但是那样以来就完全成了蒙特卡罗光线跟踪了。比如一个简单的室内场景,当虚拟光源的数目达到64个的时候,画面效果已经与光线跟踪软阴影以及辐射度方法没有多少差别,最最重要的,一切的一切都是实时生成的,如图2。
  这种方式的缺点在于,一切都是以VPLs为中心,导致VPLs的分布极大的影响了最终全局的光照效果。生成VPLs的方法是在网格或者是圆盘、球面上采样,包括Quasi Monte Carlo、Poission Disk、Halton Points,但是无论如何,都要生成一个“符合场景”的“合适”点集。如果光源是动态的,比如是在3D游戏中实时生成的玩家手中的火把,或者是登陆舰船腹下不断变换方向的探照灯,都需要动态的生成VPLs,同时进行剔除与增加的管理操作。
  
  3 基于逐步求精的实时辐射度方法
  
  2004年发表的基于逐步求精的实时辐射度方法,在《GPU GEMS2》书中有改进版本,该方法利用了很多高深的线性代数知识来阐述算法,实际上它的思想很简单。
  通过不断的在场景中迭代计算接受与发射元素之间的辐射度传递,每个多边形都具有两张图,RadiosityMap辐射图(可以简单的理解为是物体表面的光照图),以及ResidualMap残余能量图(即该元素能够发射多少能量的贴图)。在实现的时候之所以必须使用“Triangles Soup”而没有使用索引化的三角形是因为,需要计算面积,需要准确的定位每个三角形的ID,这样就必须把每个三角形分开,所以就需要de-normalize。
  这种算法的实现过程要分三个步骤:
  第一步,场景准备,主要步骤包括,构建三角形如图3。
  图3 Triangles Soup
  (1)把每个三角形de-normalize化,并形成算法所需的"triangles soup";
  (2)利用三角形的顶点坐标计算出三角形的MeshID;
  (3)计算三角形的面积,并以之代替1.0成为算法所需的第4个元素;
  (4)根据UV坐标创建2个浮动材质,一个是Radiosity map,一个是Residual map。
  第二步,生成RadiosityMap辐射图。
  (1)以顶点属性MeshID为颜色,利用半球投影生成一个ItemBuffer,利用硬件计算确定当前渲染哪个网格;
  (2)把所有网格渲染到对应的UV材质空间;
  (3)根据顶点的位置,使用Residual map的数据,生成相关的映射图。
  第三步,使用RadiosityMap辐射图渲染,渲染结果如图4。
  按照场景的Radiosity Map渲染场景(多网格),应用UV映射将光源效果生成在表面。
  图4 渲染效果图
  这种方法改进了传统的离线逐步求精辐射度方法,但是它的缺点也有很多,其中最大的莫过于迭代计算需要许多重复的Pass,象素填充率要求非常高,但是最终的效果却没有那么的出色。还有就是在光照的变化区域较高的地方需要进行自适应分割采样,失去了通用性,也增加了复杂度。所以对比VPLs与Defered阴影,它只是经典过程的一种重现,并不能当作是一种创新的算法。而且,它的算法本身无法处理反射、折射、刻蚀,只能使用其他的方法或者是特殊的技巧了。
  
  参考文献:
  [1]hubhabrata Sengupta, 等. Scan Primitives for GPU Computing(会议论文), Graphics Hardware, 2007.
  [2]An Approximate Global Illumination System for Computer Generated Films(会议论文), SIGGRAPH, 2004.
  [3]Kenneth R.Castleman. 数字图像处理[M]. 北京:电子工业出版社, 2002.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:剖析了开源入侵检测工具Snort的体系结构及其工作配置模式,为中小型网络配置入侵检测系统提供了可行的解决方案。  关键词:入侵检测系统;通用入侵检测框架;Snort  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31585-02  Research and Analysis the System Framework of Snort  YU Kun, W
期刊
摘要:在分布式计算环境下,Web服务发现和服务匹配技术直接关系到全球网络信息资源获取和信息的有效利用。传统的Web服务匹配和发现过程是基于UDDI并在语法级实现的。因而服务匹配模型没有涉及到语义,鉴于语义在智能匹配系统中所起的作用,本文从语义匹配的角度着重分析服务匹配系统中存在的数据语义、功能语义和服务质量语义。  关键词:语义描述;UDDI;匹配模型;本体  中图分类号:TP393文献标识码:A
期刊
摘要:为说明数字视频监控所具有的模拟监控无法比拟的优点,本文较为详细的介绍了在S3C44B0X芯片上,基于嵌入式uClinux操作系统构建嵌入式Web服务器的网络视频监控系统的软件开发过程,并介绍了数字视频监控系统的硬件组成,阐明了嵌入式Web服务器的机制与机理,并结合具体的实践给出了一些相应的实现方法,以供业内同行参考使用。  关键词:嵌入式Web服务器;CGI;数字视频监控;设计  中图分类号
期刊
摘要:采用可视化设计工具C++Builder开发基于C/S架构的自动组卷系统,既要利用C++ Builder强大方便的数据库开发功能,又要利用Word强大的数据处理能力。本文在C++Builder基于OLE技术对Word 2000的调用方面进行了一些有益的探索,可以较为便捷地实现试题库系统试题的导入和导出。  关键词:OLE;试题库;自动组卷系统;C++ builder;Word 2000  中图
期刊
摘要:文章给出VC和Flash之间一种基于自定义字符串的双向消息互传机制,并应用该机制用VC和Flash联合实现进度条的效果。  关键词:Shockwave Flash Object控件;VC;通讯;双向消息互传; ActionScript  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)18-31634-01  Messages Exchanging Between
期刊
摘要:本文对自主机器人的运动目标检测和跟踪中的一些关键技术进行了研究,通过传统的帧间差分的改进,引入HSI差值模型、图像序列的连续差分图像运算、自适应分割算法、自适应阴影部分分割算法。实验结果表明该算法有效。  关键词:目标检测;HSI差值模型;自适应分割算法;机器人  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)18-31685-02    1 引言    运动目
期刊
摘要:随着3S技术、信息技术、网络技术和通讯技术的不断发展,矿产资源管理部门越来越依赖信息化。本文详细介绍了基于3S、C/S和B/S分布式结构进行的矿产资源执法管理信息系统的设计和实现的方法。  关键词:WebGis;Java;3S  中图分类号:P208文献标识码:A文章编号:1009-3044(2007)18-31638-02  Design and Implementation of MIS
期刊
摘要:在我们的工作中,B方法已被用在一些极其重要的软件项目中并获得了很大成功。其中有不少应用于生物学方面的成功范例,我们用B方法建立了流感病毒入侵免疫系统因子网络的形式化模型,利用了生物信息学的理念,把免疫系统当成一个网络化的分布式信息系统来研究,以期望通过这样的研究为感疫苗研制、流感诊断和免疫疗法研究提供帮助。  关键词:B方法;流感病毒;模型设计  中图分类号:TP311文献标识码:A文章编号
期刊
摘要:为了能在原有的办公系统中,当办公事务到来时能及时提醒办公人员,应用C#.NET技术﹑数据库技术和邮件服务系统,提出了用来实现此功能的事务提醒模块的设计思想和实现方法。该事务提醒模块对节省时间,提高办公效率既有重要的使用价值。  关键词:C#.NET;SQL Server;Imail邮件服务系统;Windows服务  中图分类号:TP319文献标识码:A文章编号:1009-3044(2007)
期刊
摘要:本文以DSP芯片的选型为主要轴线,着重对TMS320系列数字信号处理器(DSP)的发展及其主要产品的结构、性能特点和应用进行了论述。  关键词:TMS320;数字信号处理器;定点DSP  中图分类号:TN911文献标识码:A文章编号:1009-3044(2007)18-31668-02  The Development and Type Choosing of DSP Chip  DUAN
期刊