[发明专利]基于局部阴影图的高质量软阴影快速生成方法有效
申请号: | 201310282795.5 | 申请日: | 2013-07-06 |
公开(公告)号: | CN103366396A | 公开(公告)日: | 2013-10-23 |
发明(设计)人: | 王莉莉;张鑫维;马志强 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06T15/60 | 分类号: | G06T15/60 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 杨学明;顾炜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 局部 阴影 质量 快速 生成 方法 | ||
1.一种基于局部阴影图的高质量软阴影快速生成方法,其特征在于:主要包括以下三个步骤:
(1)初始化光源采样点,根据场景大小确定阴影图生成的投影矩阵和视口以及其他初始化设置;
(2)利用自适应方法对光源进行采样,确定只生成能保证高质量软阴影的最少数目阴影图;同时通过初始阴影图信息自适应调整阴影图生成的投影矩阵和视口,从而生成局部阴影图来加速后续阴影图生成的过程;
(3)应用步骤(2)得到的阴影图生成软阴影,从视点位置绘制一遍整个场景,使用Phong光照模型结合阴影图上的可见性信息,渲染得到整个场景的光影效果;
其中步骤(2)具体分为5个步骤:生成采样点阴影图;阴影图比较;快速求取面光源阴影图范围;调整阴影图生成的投影矩阵和视口以及利用生成的阴影图渲染软阴影。
2.根据权利1所述的基于局部阴影图的高质量软阴影快速生成方法,其特征在于步骤(2)中,在采用自适应光源采样方法减少不必要的阴影图同时,利用局部阴影图技术对阴影图的生成进行加速,根据光源初始采样点生成的阴影图信息,调整投影矩阵和视口,从而利用更精细的光源视景体使后续生成的阴影图成为局部阴影图,只保留了对可见阴影有贡献的部分,加速了整个软阴影的绘制;具体步骤如下:
(2.1)采样点阴影图生成分两个阶段:首先是初始采样点处阴影图,这时候生成的阴影图是完整的阴影图,采用统一的只依赖于场景的透视投影矩阵和视口生成,不随视点的移动而变化;接下来是为了提高阴影质量而产生的细分采样点处的阴影图,这些阴影图随当前视点对应的ALSMR改变而改变,属于局部阴影图;
(2.2)每一帧对光源进行自适应采样,只生成能保证高质量软阴影最少数目的阴影图:通过将生成的四张相邻采样点的阴影图反投到场景中,再根据阴影灰度值变化来统计需要细分的像素点;由需要细分的像素点个数来确定是否需要进一步采样,从而达到了减少阴影图数目,加快渲染的目的;
(2.3)快速求取ALSMR:记录视点下每个可见阴影像素对应的阴影图位置(U,V),并根据其在各初始阴影图上的位置信息得到该阴影像素的面光源阴影图范围,该像素在面光源上任何一采样点生成的阴影图上的位置不会超过该范围;然后利用Ping-pong技术在GPU端快速合并所有可见阴影像素对应的ALSMR,并将最终得到的总的ALSMR信息传递到CPU端;
(2.4)阴影图生成矩阵和视口的调整:根据可见阴影区域的ALSMR,重新调整阴影图生成的投影矩阵和视口,产生能生成局部阴影图的更精细视景体;
(2.5)单pass的多阴影图软阴影渲染:利用纹理数组(Texture Array)和统一缓冲对象(UBO)进行多阴影图的软阴影绘制;通过将生成的多张阴影图存放到纹理数组中,将与之对应的投影矩阵存在UBO中一起传给shader,实现在一个pass中利用多张阴影图对软阴影进行绘制,提高渲染效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310282795.5/1.html,转载请声明来源钻瓜专利网。