CN104103089A - 一种基于图像屏幕空间的实时软阴影实现方法 - Google Patents
一种基于图像屏幕空间的实时软阴影实现方法 Download PDFInfo
- Publication number
- CN104103089A CN104103089A CN201410367545.6A CN201410367545A CN104103089A CN 104103089 A CN104103089 A CN 104103089A CN 201410367545 A CN201410367545 A CN 201410367545A CN 104103089 A CN104103089 A CN 104103089A
- Authority
- CN
- China
- Prior art keywords
- shadow
- depth
- texture
- space
- scene
- 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.)
- Pending
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明公开一种基于图像屏幕空间的实时软阴影实现方法,包括如下步骤:A、遍历场景内所有在虚拟相机可见范围内的对象。B、构建一个光源空间,并创建一个用于保存屏幕空间内深度的纹理,生成一张shadow map。C、经过投影变换将世界位置坐标转化到灯光空间,获得像素的新位置的深度图。D、将像素的新位置的深度和shadow map进行比较,判定哪些像素处于阴影中,从而得到一张shadow mask。E、对shadow mask进行高斯模糊处理。F、将模糊后的shadow mask与场景颜色进行叠加,实现软阴影效果。本发明改良了传统基于采样纹理的PCF,有效的解决了场景模型边界出现锯齿的现象,实现了较好的软阴影效果,而且对于较复杂的场景实现软阴影的效果也非常好,绘制效率高。
Description
技术领域
本发明涉及软阴影技术领域,尤其涉及一种基于图像屏幕空间的实时软阴影实现方法。
背景技术
作为游戏引擎中一个非常重要功能的光影效果,阴影在虚拟的游戏有着至关重要的作用,加入了此效果,图像的立体感和层次将更加的丰富,同时也提高了场景的真实感受度。阴影可以分为软硬两种阴影,硬阴影算法比较简单,而实时软阴影比硬阴影更具有真实感,可是动态的软阴影的实现是计算机图形学研究的一个难点。传统实时软阴影的实现过程如下:首先以光源为视点生成包含场景深度信息的深度图(shadow map),然后从观察者视点将场景渲染到一张屏幕纹理缓冲中,进而对此采样的纹理进行多次采样取平均值(percentagecloser filtering,PCF),这种方法产生的软阴影质量和采样次数有直接关系,如果要得到比较柔和的软阴影效果,则需要大量的纹理采样,效率低下。
发明内容
本发明的目的在于通过一种基于图像屏幕空间的实时软阴影实现方法,来解决以上背景技术部分提到的问题。
为达此目的,本发明采用以下技术方案:
一种基于图像屏幕空间的实时软阴影实现方法,包括如下步骤:
A、遍历场景内所有在虚拟相机可见范围内的对象;
B、构建一个光源空间,并创建一个用于保存屏幕空间内深度的纹理,生成一张shadow map;
C、经过投影变换将世界位置坐标转化到灯光空间,获得像素的新位置的深度图;
D、将所述像素的新位置的深度和shadow map进行比较,判定哪些像素处于阴影中,从而得到一张shadow mask;
E、对所述shadow mask进行高斯模糊处理;
F、将模糊后的shadow mask与场景颜色进行叠加,实现软阴影效果。
特别地,所述步骤B具体包括:在相机可见范围内,构建一个光源空间,将相机的朝向与光源方向调为一致,并创建一个用于保存屏幕空间内深度的纹理,然后绘制场景、读取深度缓冲的内容,将场景的深度缓冲信息渲染到浮点格式的纹理中,生成一张shadow map。
特别地,所述步骤E具体包括:首先创建一个纹理并获得纹理的表面信息,然后利用高斯模糊对纹理表面进行处理,其中,在渲染该纹理时需要渲染两个目标:水平方向和垂直方向;对shadow mask做高斯模糊,经过GPU光栅化后,渲染出一个屏幕大小的方形即模糊后的纹理。
本发明提出的基于图像屏幕空间的实时软阴影实现方法改良了传统基于采样纹理的PCF,有效的解决了场景模型边界出现锯齿的现象,实现了较好的软阴影效果,而且对于较复杂的场景实现软阴影的效果也非常好,绘制效率高。
附图说明
图1为本实施例提供的基于图像屏幕空间的实时软阴影实现方法流程图;
图2为本实施例提供的模糊前纹理图;
图3为本实施例提供的模糊后纹理图;
图4为本实施例提供的中心点相邻像素所占的权重示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
请参照图1所示,图1为本实施例提供的基于图像屏幕空间的实时软阴影实现方法流程图。
本实施例中基于图像屏幕空间的实时软阴影实现方法包括如下步骤:
步骤S101、遍历场景内所有在虚拟相机可见范围内的对象。遍历场景中的对象是否在虚拟相机可见范围内,只渲染相机内可见的区域。
步骤S102、构建一个光源空间,并创建一个用于保存屏幕空间内深度的纹理,生成一张shadow map。在相机可见范围内,构建一个光源空间,将相机的朝向与光源方向调为一致,并创建一个用于保存屏幕空间内深度的纹理,然后绘制场景、读取深度缓冲的内容,将场景的深度缓冲信息渲染到浮点格式的纹理中,生成一张shadow map即深度图。
步骤S103、经过投影变换将世界位置坐标转化到灯光空间,获得像素的新位置的深度图。根据步骤S102生成的shadow map,在屏幕空间计算阴影的过程中,经过投影变换将世界位置坐标转化到灯光空间。
步骤S104、将所述像素的新位置和深度图进行比较,判定哪些像素处于阴影中,从而得到一张shadow mask,即非阴影的地方是白色,阴影的地方是黑色。从灯光空间渲染场景时,把该空间下场景中的像素逐个和shadow map中保存的深度进行比较,当像素深度大于深度图的深度时,则判定该像素是受阴影的,当等于深度图的深度时,则判定该像素是受光的,从而得到一张屏幕大小纹理图的shadow mask即阴影遮罩。
步骤S105、对所述shadow mask进行高斯模糊处理。首先创建一个纹理并获得纹理的表面信息,然后利用高斯模糊对纹理表面进行处理,其中,在渲染该纹理时需要渲染两个目标:水平方向和垂直方向;对shadow mask做高斯模糊,经过GPU光栅化后,渲染出一个屏幕大小的方形即模糊后的纹理。其中,GPU是Graphic Processing Unit的缩写,简称图形处理单元。模糊处理后的效果对比如图2和图3所示,图2为模糊前的纹理图,图3为模糊后的纹理图。
高斯模糊是一种图像模糊的滤波器,它正态分布计算图像中每个像素的变换,因为深度信息是记录二维空间的坐标信息,则它在二维空间的方程为:
其中,σ是正态分布的方差,u和v是像素的坐标值。利用相邻像素的加权值来表示该点的像素值,它的应用原理是取shadow mask中每个像素的周边像素的平均值。具体过程如下:一、计算权重值。需要根据σ的值来确定,一般取值为σ=2。如图4所示,把w5所占格子的像素定为中心像素,临近的w8像素的权重值和中心像素相加并平均,就可以得到中心像素的权重值,但是由于所有像素权重值的总和必须为1,因此把所有的像素权重除以中心像素的权重值就可以了。由此得到相邻每个像素的权重值。二、获得各个像素的权重值和各个像素的颜色值后就可以计算高斯模糊了。把每个点的像素值*对应像素的权重值,然后就把9个值加在一起即为中心点的高斯模糊值。
步骤S106、将模糊后的shadow mask与场景颜色进行叠加,实现软阴影效果。模糊后的纹理投射到屏幕上,实现实时软阴影。
本发明的技术方案改良了传统基于采样纹理的PCF,有效的解决了场景模型边界出现锯齿的现象,实现了较好的软阴影效果,而且对于较复杂的场景实现软阴影的效果也非常好,绘制效率高。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (3)
1.一种基于图像屏幕空间的实时软阴影实现方法,其特征在于,包括如下步骤:
A、遍历场景内所有在虚拟相机可见范围内的对象;
B、构建一个光源空间,并创建一个用于保存屏幕空间内深度的纹理,生成一张shadow map;
C、经过投影变换将世界位置坐标转化到灯光空间,获得像素的新位置的深度图;
D、将所述像素的新位置的深度和shadow map进行比较,判定哪些像素处于阴影中,从而得到一张shadow mask;
E、对所述shadow mask进行高斯模糊处理;
F、将模糊后的shadow mask与场景颜色进行叠加,实现软阴影效果。
2.根据权利要求1所述的基于图像屏幕空间的实时软阴影实现方法,其特征在于,所述步骤B具体包括:在相机可见范围内,构建一个光源空间,将相机的朝向与光源方向调为一致,并创建一个用于保存屏幕空间内深度的纹理,然后绘制场景、读取深度缓冲的内容,将场景的深度缓冲信息渲染到浮点格式的纹理中,生成一张shadow map。
3.根据权利要求1或2任一项所述的基于图像屏幕空间的实时软阴影实现方法,其特征在于,所述步骤E具体包括:首先创建一个纹理并获得纹理的表面信息,然后利用高斯模糊对纹理表面进行处理,其中,在渲染该纹理时需要渲染两个目标:水平方向和垂直方向;对shadow mask做高斯模糊,经过GPU光栅化后,渲染出一个屏幕大小的方形即模糊后的纹理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410367545.6A CN104103089A (zh) | 2014-07-29 | 2014-07-29 | 一种基于图像屏幕空间的实时软阴影实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410367545.6A CN104103089A (zh) | 2014-07-29 | 2014-07-29 | 一种基于图像屏幕空间的实时软阴影实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104103089A true CN104103089A (zh) | 2014-10-15 |
Family
ID=51671206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410367545.6A Pending CN104103089A (zh) | 2014-07-29 | 2014-07-29 | 一种基于图像屏幕空间的实时软阴影实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104103089A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574496A (zh) * | 2014-12-30 | 2015-04-29 | 北京像素软件科技股份有限公司 | 一种计算光照图的静态阴影和动态阴影融合的方法及装置 |
CN105225230A (zh) * | 2015-09-11 | 2016-01-06 | 浙江宇视科技有限公司 | 一种识别前景目标对象的方法及装置 |
CN106355631A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 虚拟现实中实时阴影的显示方法 |
CN106780313A (zh) * | 2016-12-28 | 2017-05-31 | 网易(杭州)网络有限公司 | 图像处理方法及装置 |
CN108460823A (zh) * | 2018-02-11 | 2018-08-28 | 浙江科澜信息技术有限公司 | 一种渲染三维场景模型的显示方法及系统 |
CN109360263A (zh) * | 2018-10-09 | 2019-02-19 | 温州大学 | 一种面向资源受限移动设备的实时软阴影生成方法及装置 |
CN109493406A (zh) * | 2018-11-02 | 2019-03-19 | 四川大学 | 快速百分比靠近软阴影绘制方法 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN111131807A (zh) * | 2019-12-30 | 2020-05-08 | 华人运通(上海)云计算科技有限公司 | 一种模拟显示车辆灯光投影的方法及系统 |
CN111951361A (zh) * | 2019-05-17 | 2020-11-17 | 联想新视界(北京)科技有限公司 | 一种实现ar图像显示效果的方法和装置 |
WO2021047429A1 (zh) * | 2019-09-11 | 2021-03-18 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
CN114419235A (zh) * | 2022-01-14 | 2022-04-29 | 在线途游(北京)科技有限公司 | 一种用于移动端的实时平面反射渲染方法和装置 |
WO2023193639A1 (zh) * | 2022-04-07 | 2023-10-12 | 北京字跳网络技术有限公司 | 图像渲染方法、装置、可读介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040257365A1 (en) * | 2003-03-31 | 2004-12-23 | Stmicroelectronics Limited | Computer graphics |
CN102768765A (zh) * | 2012-06-25 | 2012-11-07 | 南京安讯网络服务有限公司 | 实时点光源软阴影渲染方法 |
-
2014
- 2014-07-29 CN CN201410367545.6A patent/CN104103089A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040257365A1 (en) * | 2003-03-31 | 2004-12-23 | Stmicroelectronics Limited | Computer graphics |
CN102768765A (zh) * | 2012-06-25 | 2012-11-07 | 南京安讯网络服务有限公司 | 实时点光源软阴影渲染方法 |
Non-Patent Citations (4)
Title |
---|
LIONEL ATTY等: "Soft shadow maps: Efficient sampling of light source visibility", 《COMPUTER GRAPHICS FORUM》 * |
张伟 等: "基于Shadow Maps的实时阴影生成算法改进", 《兰州交通大学学报》 * |
曾晓一等: "软阴影算法及实现", 《工程图学学报》 * |
李恋: "图形引擎中阴影算法的研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574496A (zh) * | 2014-12-30 | 2015-04-29 | 北京像素软件科技股份有限公司 | 一种计算光照图的静态阴影和动态阴影融合的方法及装置 |
CN105225230A (zh) * | 2015-09-11 | 2016-01-06 | 浙江宇视科技有限公司 | 一种识别前景目标对象的方法及装置 |
CN105225230B (zh) * | 2015-09-11 | 2018-07-13 | 浙江宇视科技有限公司 | 一种识别前景目标对象的方法及装置 |
CN106355631A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 虚拟现实中实时阴影的显示方法 |
CN106780313A (zh) * | 2016-12-28 | 2017-05-31 | 网易(杭州)网络有限公司 | 图像处理方法及装置 |
CN108460823A (zh) * | 2018-02-11 | 2018-08-28 | 浙江科澜信息技术有限公司 | 一种渲染三维场景模型的显示方法及系统 |
CN109360263A (zh) * | 2018-10-09 | 2019-02-19 | 温州大学 | 一种面向资源受限移动设备的实时软阴影生成方法及装置 |
CN109493406B (zh) * | 2018-11-02 | 2022-11-11 | 四川大学 | 快速百分比靠近软阴影绘制方法 |
CN109493406A (zh) * | 2018-11-02 | 2019-03-19 | 四川大学 | 快速百分比靠近软阴影绘制方法 |
CN109993823A (zh) * | 2019-04-11 | 2019-07-09 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN109993823B (zh) * | 2019-04-11 | 2022-11-25 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN111951361A (zh) * | 2019-05-17 | 2020-11-17 | 联想新视界(北京)科技有限公司 | 一种实现ar图像显示效果的方法和装置 |
CN111951361B (zh) * | 2019-05-17 | 2024-04-02 | 联想新视界(北京)科技有限公司 | 一种实现ar图像显示效果的方法和装置 |
WO2021047429A1 (zh) * | 2019-09-11 | 2021-03-18 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
US11833424B2 (en) | 2019-09-11 | 2023-12-05 | Tencent Technology (Shenzhen) Company Limited | Image rendering method and apparatus, device and storage medium |
CN111131807B (zh) * | 2019-12-30 | 2021-11-23 | 华人运通(上海)云计算科技有限公司 | 一种模拟显示车辆灯光投影的方法及系统 |
CN111131807A (zh) * | 2019-12-30 | 2020-05-08 | 华人运通(上海)云计算科技有限公司 | 一种模拟显示车辆灯光投影的方法及系统 |
CN114419235A (zh) * | 2022-01-14 | 2022-04-29 | 在线途游(北京)科技有限公司 | 一种用于移动端的实时平面反射渲染方法和装置 |
WO2023193639A1 (zh) * | 2022-04-07 | 2023-10-12 | 北京字跳网络技术有限公司 | 图像渲染方法、装置、可读介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104103089A (zh) | 一种基于图像屏幕空间的实时软阴影实现方法 | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
CN102768765B (zh) | 实时点光源软阴影渲染方法 | |
WO2017206325A1 (zh) | 全局光照的计算方法及装置 | |
CN107274476B (zh) | 一种阴影图的生成方法及装置 | |
CN100594519C (zh) | 用球面全景摄像机实时生成增强现实环境光照模型的方法 | |
JP5945255B2 (ja) | 仮想視点映像生成装置、仮想視点映像生成方法、及び仮想視点映像生成プログラム | |
KR101697184B1 (ko) | 메쉬 생성 장치 및 그 방법, 그리고, 영상 처리 장치 및 그 방법 | |
US20210134049A1 (en) | Image processing apparatus and method | |
US9565414B2 (en) | Efficient stereo to multiview rendering using interleaved rendering | |
CN109410133B (zh) | 一种基于3dmm的人脸纹理修复方法 | |
TW201432622A (zh) | 產生一關於一影像之深度圖 | |
CN104050708A (zh) | 一种3d游戏引擎lod系统的实现方法 | |
TW201101226A (en) | Image processing method and related apparatus for rendering two-dimensional image to show three-dimensional effect | |
CN104217461B (zh) | 一种基于深度图模拟实时凹凸效果的视差映射方法 | |
CN104157005A (zh) | 一种基于图像的hdr光照渲染方法 | |
CN109461197B (zh) | 一种基于球面uv和重投影的云实时绘制优化方法 | |
CN104063888A (zh) | 一种基于非真实感的波谱艺术风格绘制方法 | |
CN110097634A (zh) | 一种自适应多尺度的三维鬼成像方法 | |
CN109829962B (zh) | 一种利用opengl的物体空间消隐线计算加速方法 | |
CN104915992A (zh) | 基于股骨ct图像的实时阴影体绘制方法 | |
CN116385577A (zh) | 虚拟视点图像生成方法及装置 | |
CN102750726A (zh) | 一种基于OpenGL实现景深效果的方法 | |
CN109816765A (zh) | 面向动态场景的纹理实时确定方法、装置、设备和介质 | |
CN112002019B (zh) | 一种基于mr混合现实的模拟人物阴影的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141015 |
|
RJ01 | Rejection of invention patent application after publication |