CN109712211A - 基于osg的高效体阴影生成方法 - Google Patents
基于osg的高效体阴影生成方法 Download PDFInfo
- Publication number
- CN109712211A CN109712211A CN201811574843.7A CN201811574843A CN109712211A CN 109712211 A CN109712211 A CN 109712211A CN 201811574843 A CN201811574843 A CN 201811574843A CN 109712211 A CN109712211 A CN 109712211A
- Authority
- CN
- China
- Prior art keywords
- shadow
- osg
- vertex
- awl
- generation method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Generation (AREA)
Abstract
基于OSG的高效体阴影生成方法,包括以下步骤:步骤1,预处理开源场景图形OSG模型,遍历其三角面,生成包含邻接信息的顶点数据;步骤2,将邻接顶点信息传入GPU,通过几何着色器完成生成阴影锥;步骤3,开启双面模板测试后渲染阴影锥,生成阴影。本发明在保证了ShadowVolume技术原有优点的基础上,提升了对复杂对象的阴影生成效率。
Description
技术领域
本发明属于计算机图形技术领域,特别涉及基于OSG的高效体阴影生成方法。
背景技术
在计算机图形领域,实时阴影技术作为一种通用技术,常被用来增强场景的真实性,目前主流的阴影技术主要包括ShadowMap和ShadowVolume两种。
ShadowMap常用于大场景中,由于它的实现过程与场景的几何复杂度相关性较低,因此效率较高。但其缺点是由于用来保存深度纹理的图片大小有限,在阴影的边缘会出现锯齿。另外在大场景中,单个物体所占的像素较少,导致其对应生成的阴影比较粗糙,特别是投射到自身的阴影质量更低。
因此当我们对物体的阴影精度有要求,特别是对自阴影的质量有要求时,ShadowVolume是一种更适合的方法。ShadowVolume技术通过遍历模型的三角面,根据光源的位置反向生成阴影锥,最后通过双面模板测试生成阴影,其阴影的准确度能达到像素级。通常的ShadowVolume中,阴影锥的生成过程都是在CPU中完成的,因此当模型的面片过多时,会严重影响阴影锥的生成速度,从而效率降低。
发明内容
本发明的目的在于提供基于OSG的高效体阴影生成方法,以解决上述问题。
为实现上述目的,本发明有以下技术效果:
基于OSG的高效体阴影生成方法,包括以下步骤:
步骤1,预处理开源场景图形OSG模型,遍历其三角面,生成包含邻接信息的顶点数据;
步骤2,将邻接顶点信息传入GPU,通过几何着色器完成生成阴影锥;
步骤3,开启双面模板测试后渲染阴影锥,生成阴影。
进一步的,步骤1中,遍历OSG模型的三角面,对每一个三角面,存储6个顶点,分别是原始三角形的三个顶点和每一条边对应的相邻三角形的顶点,如果没有相邻三角形,则存储为默认值。
进一步的,步骤2中,将包含邻接信息的顶点数据传入到几何着色器中后,每一个三角面的几何阶段会接收到6个顶点数据,存储方式如步骤一所述,根据光源的位置和原始三角形的顶点,生成阴影锥的上表面和下表面,再通过判断每条边的邻接三角面的法线方向,如果背向光源,那么生成两个三角形相邻的侧面,全部检测完毕后,即完成了阴影锥的构建。
进一步的,通过若干个GPU分别同时生成阴影锥。
进一步的,步骤3中,进入渲染阶段,首先渲染原始模型,然后开启双面模板测试,关闭深度写,设置正面通过模板测试后模板值减一,背面通过模板测试后模板值加一,设置完成后渲染阴影锥;最后渲染一个屏幕大小的矩形,设置仅当模板值不等于0时渲染,此时渲染出来的像素即为阴影的像素,生成阴影。
与现有技术相比,本发明有以下技术效果:
本发明由于体阴影技术是通过像素级运算来确定阴影范围的,相对于纹理采样,它的精度更高,同时本发明将阴影锥的生成过程从传统的CPU端移到了GPU端,利用GPU的并行计算能力,同时多个GPU进行阴影锥的渲染,从而进一步提升了体阴影的生成效率。
附图说明
图1是本发明方法的流程图;
具体实施方式
以下结合附图对本发明进一步说明:
基于OSG的高效体阴影生成方法,包括以下步骤:
步骤1,预处理开源场景图形OSG模型,遍历其三角面,生成包含邻接信息的顶点数据;
步骤2,将邻接顶点信息传入GPU,通过几何着色器完成生成阴影锥;
步骤3,开启双面模板测试后渲染阴影锥,生成阴影。
进一步的,步骤1中,遍历OSG模型的三角面,对每一个三角面,存储6个顶点,分别是原始三角形的三个顶点和每一条边对应的相邻三角形的顶点,如果没有相邻三角形,则存储为默认值。
进一步的,步骤2中,将包含邻接信息的顶点数据传入到几何着色器中后,每一个三角面的几何阶段会接收到6个顶点数据,存储方式如步骤一所述,根据光源的位置和原始三角形的顶点,生成阴影锥的上表面和下表面,再通过判断每条边的邻接三角面的法线方向,如果背向光源,那么生成两个三角形相邻的侧面,全部检测完毕后,即完成了阴影锥的构建。
进一步的,步骤2中,通过若干个GPU分别同时生成阴影锥。
进一步的,步骤3中,进入渲染阶段,首先渲染原始模型,然后开启双面模板测试,关闭深度写,设置正面通过模板测试后模板值减一,背面通过模板测试后模板值加一,设置完成后渲染阴影锥;最后渲染一个屏幕大小的矩形,设置仅当模板值不等于0时渲染,此时渲染出来的像素即为阴影的像素,生成阴影。
基于FreeEarth平台进行如下实验:
在同一台机器上,对同一个模型先后用常规模式和优化后的方案进行阴影锥的生成,其渲染帧率如下:
渲染方案 | 渲染帧率(平均) |
常规 | 23 |
优化后 | 55 |
。
Claims (5)
1.基于OSG的高效体阴影生成方法,其特征在于,包括以下步骤:
步骤1,预处理开源场景图形OSG模型,遍历其三角面,生成包含邻接信息的顶点数据;
步骤2,将邻接顶点信息传入GPU,通过几何着色器完成生成阴影锥;
步骤3,开启双面模板测试后渲染阴影锥,生成阴影。
2.根据权利要求1所述的基于OSG的高效体阴影生成方法,其特征在于,步骤1中,遍历OSG模型的三角面,对每一个三角面,存储6个顶点,分别是原始三角形的三个顶点和每一条边对应的相邻三角形的顶点,如果没有相邻三角形,则存储为默认值。
3.根据权利要求1所述的基于OSG的高效体阴影生成方法,其特征在于,步骤2中,将包含邻接信息的顶点数据传入到几何着色器中后,每一个三角面的几何阶段会接收到6个顶点数据,存储方式如步骤一所述,根据光源的位置和原始三角形的顶点,生成阴影锥的上表面和下表面,再通过判断每条边的邻接三角面的法线方向,如果背向光源,那么生成两个三角形相邻的侧面,全部检测完毕后,即完成了阴影锥的构建。
4.根据权利要求3所述的基于OSG的高效体阴影生成方法,其特征在于,步骤2中,通过若干个GPU分别同时生成阴影锥。
5.根据权利要求1所述的基于OSG的高效体阴影生成方法,其特征在于,步骤3中,进入渲染阶段,首先渲染原始模型,然后开启双面模板测试,关闭深度写,设置正面通过模板测试后模板值减一,背面通过模板测试后模板值加一,设置完成后渲染阴影锥;最后渲染一个屏幕大小的矩形,设置仅当模板值不等于0时渲染,此时渲染出来的像素即为阴影的像素,生成阴影。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574843.7A CN109712211B (zh) | 2018-12-21 | 2018-12-21 | 基于osg的高效体阴影生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574843.7A CN109712211B (zh) | 2018-12-21 | 2018-12-21 | 基于osg的高效体阴影生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109712211A true CN109712211A (zh) | 2019-05-03 |
CN109712211B CN109712211B (zh) | 2023-02-10 |
Family
ID=66255994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811574843.7A Active CN109712211B (zh) | 2018-12-21 | 2018-12-21 | 基于osg的高效体阴影生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109712211B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030112237A1 (en) * | 2001-12-13 | 2003-06-19 | Marco Corbetta | Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene |
US7248261B1 (en) * | 2003-12-15 | 2007-07-24 | Nvidia Corporation | Method and apparatus to accelerate rendering of shadow effects for computer-generated images |
US20080180440A1 (en) * | 2006-12-08 | 2008-07-31 | Martin Stich | Computer Graphics Shadow Volumes Using Hierarchical Occlusion Culling |
CN101271588A (zh) * | 2007-10-26 | 2008-09-24 | 威盛电子股份有限公司 | 可重建几何阴影图方法 |
CN101877115A (zh) * | 2009-04-30 | 2010-11-03 | 刘贞明 | 基于sm2.0实现的自遮蔽阴影视差映射算法 |
CN102651141A (zh) * | 2012-03-30 | 2012-08-29 | 北京师范大学 | 一种大场景中矢量地图与高分辨率数字高程模型自动叠加渲染的方法 |
CN102663807A (zh) * | 2012-04-19 | 2012-09-12 | 北京天下图数据技术有限公司 | 一种基于模板阴影原理的通视分析渲染方法 |
CN103646413A (zh) * | 2013-10-30 | 2014-03-19 | 北京邮电大学 | 基于osg引擎的树木快速渲染技术 |
CN103810742A (zh) * | 2012-11-05 | 2014-05-21 | 正谓有限公司 | 图像渲染方法和系统 |
CN104966313A (zh) * | 2015-06-12 | 2015-10-07 | 浙江大学 | 三角形重建的几何阴影图方法 |
CN105488844A (zh) * | 2015-11-19 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种三维场景中海量模型实时阴影的显示方法 |
CN106663331A (zh) * | 2014-08-22 | 2017-05-10 | 高通股份有限公司 | 用于图形处理中的着色器程序执行技术 |
CN108010119A (zh) * | 2017-11-23 | 2018-05-08 | 网易(杭州)网络有限公司 | 阴影区域的调整方法、装置、存储介质、处理器及终端 |
-
2018
- 2018-12-21 CN CN201811574843.7A patent/CN109712211B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030112237A1 (en) * | 2001-12-13 | 2003-06-19 | Marco Corbetta | Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene |
US7248261B1 (en) * | 2003-12-15 | 2007-07-24 | Nvidia Corporation | Method and apparatus to accelerate rendering of shadow effects for computer-generated images |
US20080180440A1 (en) * | 2006-12-08 | 2008-07-31 | Martin Stich | Computer Graphics Shadow Volumes Using Hierarchical Occlusion Culling |
CN101271588A (zh) * | 2007-10-26 | 2008-09-24 | 威盛电子股份有限公司 | 可重建几何阴影图方法 |
CN101877115A (zh) * | 2009-04-30 | 2010-11-03 | 刘贞明 | 基于sm2.0实现的自遮蔽阴影视差映射算法 |
CN102651141A (zh) * | 2012-03-30 | 2012-08-29 | 北京师范大学 | 一种大场景中矢量地图与高分辨率数字高程模型自动叠加渲染的方法 |
CN102663807A (zh) * | 2012-04-19 | 2012-09-12 | 北京天下图数据技术有限公司 | 一种基于模板阴影原理的通视分析渲染方法 |
CN103810742A (zh) * | 2012-11-05 | 2014-05-21 | 正谓有限公司 | 图像渲染方法和系统 |
CN103646413A (zh) * | 2013-10-30 | 2014-03-19 | 北京邮电大学 | 基于osg引擎的树木快速渲染技术 |
CN106663331A (zh) * | 2014-08-22 | 2017-05-10 | 高通股份有限公司 | 用于图形处理中的着色器程序执行技术 |
CN104966313A (zh) * | 2015-06-12 | 2015-10-07 | 浙江大学 | 三角形重建的几何阴影图方法 |
CN105488844A (zh) * | 2015-11-19 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种三维场景中海量模型实时阴影的显示方法 |
CN108010119A (zh) * | 2017-11-23 | 2018-05-08 | 网易(杭州)网络有限公司 | 阴影区域的调整方法、装置、存储介质、处理器及终端 |
Non-Patent Citations (3)
Title |
---|
XUEJUNJIE,ZHAOGANG,XIAOWENLEI: "Efficient GPU out-of-core visualization of large-scale CAD models with voxel representations", 《ADVANCES IN ENGINEERING SOFTWARE》 * |
花杰: "GPU加速下的大规模城市建筑物模型三维可视化关键技术", 《中国优秀硕士学位论文全文数据库 基础科学》 * |
葛奇鹏: "基于OSG的计算可视化仿真关键技术", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109712211B (zh) | 2023-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11024077B2 (en) | Global illumination calculation method and apparatus | |
Ritschel et al. | The state of the art in interactive global illumination | |
US11954790B2 (en) | Web-side real-time hybrid rendering method, device and computer equipment combined with ray tracing | |
CN107045729B (zh) | 一种图像渲染方法及装置 | |
CN108257204B (zh) | 运用于Unity引擎的顶点色绘制烘焙方法及系统 | |
CN101458823B (zh) | 一种虚拟舞台环境下实时光照绘制的方法 | |
KR20190131131A (ko) | 오브젝트 및/또는 프리미티브 식별자들을 추적하는 것에 의한 그래픽스 프로세싱 강화 | |
CN105261059A (zh) | 一种基于在屏幕空间计算间接反射高光的渲染方法 | |
US20080266309A1 (en) | Edge effect | |
Way et al. | The synthesis of trees in Chinese landscape painting using silhoutte and texture strokes | |
CN103366396B (zh) | 基于局部阴影图的高质量软阴影快速生成方法 | |
CN112164142A (zh) | 一种基于智能手机的楼盘采光模拟方法 | |
CN102831634B (zh) | 一种高效精确的通用软阴影生成方法 | |
CN111145356A (zh) | 一种基于Unity3D模型的切割方法 | |
CN105956995A (zh) | 一种基于实时视频本征分解的人脸外观编辑方法 | |
CN103544731B (zh) | 一种基于多相机的快速反射绘制方法 | |
CN105096370B (zh) | 光线追踪的等价划分反锯齿方法 | |
CN105447905B (zh) | 基于可见性平滑滤波的三维场景近似柔和阴影绘制方法 | |
CN100476878C (zh) | 一种交互式水墨风格实时3d渲染及实现动画的方法 | |
CN109712211A (zh) | 基于osg的高效体阴影生成方法 | |
CN106228599B (zh) | 基于两级可见性平滑滤波的近似柔和阴影绘制方法 | |
Wang et al. | A method for ink-wash painting rendering for 3D scenes | |
CN118052921A (zh) | 一种图像渲染方法、设备、存储介质及产品 | |
Zheng et al. | [Retracted] Visual Sensing Technology for Digital Image‐Oriented Public Art Design | |
CN106910237A (zh) | 一种计算机实时素描渲染系统及其算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |