一种基于多光源的3d渲染方法

文档序号:6383249阅读:269来源:国知局
专利名称:一种基于多光源的3d渲染方法
技术领域
本发明涉及一种动画渲染方法,尤其是涉及一种基于多光源的3D渲染方法。
背景技术
随着计算机图形技,硬件厂商技术的发展,形成越来越瑰丽的画面渲染效果,而现在的画面效果越来越依托于更加出色的光线表现能力,而其中最为重要的就是场景渲染对多光源的良好支持,只有高效的光源管理和更新方式才足以支撑起大规模场景渲染所需要的大量灯光计算。图形发展经历的前端渲染与后端渲染技术,前端渲染为了支持多光源的渲染一般采取两种的方式。一是对将灯光与模型打组,这样整个场景可支持较多光源,但缺点是每个组的灯光数量还是有极大限制,特别对于灯光和模型密集的区域,无法达到实时的目地。二是采用将灯光编号,并将其真正的数据拼接成贴图,供模型真正渲染时调用,但缺点是对动态灯光支持较差。后端渲染普遍采用延迟渲染。但由于需要渲染几何缓冲,需要占用大量的带宽和较大的显存,并再处理大量灯光的时候也有限制。

发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种渲染效果好、适用范围广、支持动态光源的基于多光源的3D渲染方法。本发明的目的可以通过以下技术方案来实现一种基于多光源的3D渲染方法,其特征在于,包括以下步骤I)光照空间初始化;2)将光源数据注入到光照空间中;3)在步骤2)的同时,将渲染场景的深度值加载到贴图中;4)渲染所有的光照体单元到贴图中,并利用步骤3)生成的深度值在渲染的过程中对光照体单元进行筛选和融合,计算出影响每个像素的光照参数;5)再次渲染整个场景,并利用步骤4)渲染的光照参数对每个像素进行光照计算。所述的光照空间初始化具体为用八叉树构造一个光场空间,将空闲均匀切分,每个空间作为一个光照体单元,每个光照体单元拥有自己的光照材质;同时计算每个光照体单元的中心位置,并渲染场景的物体为体纹理,体纹理记录物体三维空间的法线信息和位置,并对每个光照体单元相交的体纹理单元利用距离插值得到每个光照体单元的法线。所述的光源数据注入到光照空间中具体为将光源序列数据一次注入到光照空间中,利用光照体单元的位置和材质,依次计算每个光照体单元的光照参数。所述的利用深度值在渲染的过程中对光照体单元进行筛选和融合,计算出影响每个像素的光照参数具体步骤如下11)得到当前像素的深度;12)根据深度求出空间中包括该点的光照体单元和其周围相邻的8个光照体单元;13)利用像素的屏幕坐标和深度求出其三维坐标,并求出与9个光照体单元的距离;14)利用上步求出的距离作为系数插值每个光照体单元的镜面反射系数和漫反射系数并相加得到最终的该点的光照参数。与现有技术相比,本发明具有以下优点1、渲染效果好,光照的计算时间与场景复杂度无关,与光源数量成线型关系。2、适用范围广,根据显卡的能力可调节参数达到适应不同的硬件环境。3、光照体单元的材质可定制,可形成不同的材质表现。4、支持动态光源。


图1为本发明的流程图。
具体实施例方式下面结合附图和具体实施例对本发明进行详细说明。实施例如图1所示,一种基于多光源的3D渲染方法,包括以下步骤I)光照空间初始化;2)将光源数据注入到光照空间中;3)在步骤2)的同时,将渲染场景的深度值加载到贴图中;4)渲染所有的光照体单元到贴图中,并利用步骤3)生成的深度值在渲染的过程中对光照体单元进行筛选和融合,计算出影响每个像素的光照参数;5)再次渲染整个场景,并利用步骤4)渲染的光照参数对每个像素进行光照计算。所述的光照空间初始化具体为用八叉树构造一个光场空间,将空闲均匀切分,每个空间作为一个光照体单元,每个光照体单元拥有自己的光照材质;同时计算每个光照体单元的中心位置,并渲染场景的物体为体纹理,体纹理记录物体三维空间的法线信息和位置,并对每个光照体单元相交的体纹理单元利用距离插值得到每个光照体单元的法线。所述的光源数据注入到光照空间中具体为将光源序列数据一次注入到光照空间中,利用光照体单元的位置和材质,依次计算每个光照体单元的光照参数。所述的利用深度值在渲染的过程中对光照体单元进行筛选和融合,计算出影响每个像素的光照参数具体步骤如下11)得到当前像素的深度;
12)根据深度求出空间中包括该点的光照体单元和其周围相邻的8个光照体单元;13)利用像素的屏幕坐标和深度求出其三维坐标,并求出与9个光照体单元的距离;14)利用上步求出的距离作为系数插值每个光照体单元的镜面反射系数和漫反射系数并相加得到最终的该点的光照参数。
权利要求
1.一种基于多光源的3D渲染方法,其特征在于,包括以下步骤 1)光照空间初始化; 2)将光源数据注入到光照空间中; 3)在步骤2)的同时,将渲染场景的深度值加载到贴图中; 4)渲染所有的光照体单元到贴图中,并利用步骤3)生成的深度值在渲染的过程中对光照体单元进行筛选和融合,计算出影响每个像素的光照参数; 5)再次渲染整个场景,并利用步骤4)渲染的光照参数对每个像素进行光照计算。
2.根据权利要求1所述的一种基于多光源的3D渲染方法,其特征在于,所述的光照空间初始化具体为 用八叉树构造一个光场空间,将空闲均匀切分,每个空间作为一个光照体单元,每个光照体单元拥有自己的光照材质; 同时计算每个光照体单元的中心位置,并渲染场景的物体为体纹理,体纹理记录物体三维空间的法线信息和位置,并对每个光照体单元相交的体纹理单元利用距离插值得到每个光照体单元的法线。
3.根据权利要求2所述的一种基于多光源的3D渲染方法,其特征在于,所述的光源数据注入到光照空间中具体为 将光源序列数据一次注入到光照空间中,利用光照体单元的位置和材质,依次计算每个光照体单元的光照参数。
4.根据权利要求3所述的一种基于多光源的3D渲染方法,其特征在于,所述的利用深度值在渲染的过程中对光照体单元进行筛选和融合,计算出影响每个像素的光照参数具体步骤如下 11)得到当前像素的深度; 12)根据深度求出空间中包括该点的光照体单元和其周围相邻的8个光照体单元; 13)利用像素的屏幕坐标和深度求出其三维坐标,并求出与9个光照体单元的距离; 14)利用上步求出的距离作为系数插值每个光照体单元的镜面反射系数和漫反射系数并相加得到最终的该点的光照参数。
全文摘要
本发明涉及一种基于多光源的3D渲染方法,包括以下步骤1)光照空间初始化;2)将光源数据注入到光照空间中;3)在步骤2)的同时,将渲染场景的深度值加载到贴图中;4)渲染所有的光照体单元到贴图中,并利用步骤3)生成的深度值在渲染的过程中对光照体单元进行筛选和融合,计算出影响每个像素的光照参数;5)再次渲染整个场景,并利用步骤4)渲染的光照参数对每个像素进行光照计算。与现有技术相比,本发明具有渲染效果好、适用范围广、支持动态光源等优点。
文档编号G06T15/50GK103021020SQ201210516449
公开日2013年4月3日 申请日期2012年12月5日 优先权日2012年12月5日
发明者银海, 吴浩, 郭鹏 申请人:上海创图网络科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1