CN1547163A - 场景动态光影实现方法 - Google Patents
场景动态光影实现方法 Download PDFInfo
- Publication number
- CN1547163A CN1547163A CNA2003101188950A CN200310118895A CN1547163A CN 1547163 A CN1547163 A CN 1547163A CN A2003101188950 A CNA2003101188950 A CN A2003101188950A CN 200310118895 A CN200310118895 A CN 200310118895A CN 1547163 A CN1547163 A CN 1547163A
- Authority
- CN
- China
- Prior art keywords
- light source
- shadow
- awl
- implementation method
- attenuation range
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000005286 illumination Methods 0.000 claims description 48
- 230000000007 visual effect Effects 0.000 claims description 18
- 230000009021 linear effect Effects 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 230000008929 regeneration Effects 0.000 claims 1
- 238000011069 regeneration method Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002796 luminescence method Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种场景动态光影实现方法,包括步骤:生成场景中的遮挡物列表;确定光源衰减范围,对位于光源衰减范围中的遮挡物生成光源对应的动态阴影锥列表;判断可以被照亮的物体是否位于视野之中,如在视野之中,则将其离散成具有顶点的物体网格;针对视野中的光源,判断离散成物体网格的物体是否位于光源的衰减范围内,如果不在,则不进行计算;如果在,则计算光源对衰减范围内未处于阴影锥的物体网格的光照。本发明可应用于伪3D游戏,可以提高光照精度,改善场景图像品质,而且减小实现场景动态光影效果时的计算量,提高光照速度。
Description
技术领域
本发明涉及一种伪3D的场景动态光影技术,尤其是涉及一种运用顶点光照技术的场景动态光影实现方法。
背景技术
目前,电子游戏,尤其是伪3D游戏(45度视角游戏)里面普遍采用场景动态光影技术使游戏玩家产生如临其境,如见其物的视觉效果。所述动态光影技术是游戏中用来依照光源决定四周环境所见模样的一种技术,是游戏研发人员用来让玩家更融入游戏的工具之一。譬如说向一个黑暗的地方发射火箭,当火箭前进时它会照亮走廊的四周。而当火箭过去之后,这些被照亮的区域又会恢复到他们原本的亮度。场景动态光影技术首先在计算机中构造出所需场景的几何模型,然后根据假定的光照条件,计算画面上可见的各景物表面的光照效果。
现有的场景动态光影实现方法选择光照效果的方式有光照贴图(LightingMap)和顶点光照(Vertex Lighting)。光照贴图方式是由设计人员在设计游戏场景时将预先设计好的纹理和光源生成光照贴图,这样我们在预定的场景或即将发生的时间就能看见预先设计好的那幅光照贴图。这样的好处是能看到由设计人员精心设计的游戏画面,缺点是非实时性,而且要花费大量时间去设计画面,这对于游戏开发来说无疑是浪费时间。
顶点光照方式则是对于物体的顶点进行计算顶点与光源的远近距离,最后可以在运行3D程序时实时显示动态光源效果。现有一些已开发的游戏在采用顶点光照技术实现动态光影效果,生成一幅真实感的游戏场景时,通常采用步骤:将当前区域(屏幕可见范围)划分为固定大小的水平固定网格,每一网格称为一个象素;统一按照障碍物和光源位置逐个象素地计算各象素的亮度;最后统一将每个需要照亮的物体离散成物体网格,并根据各物体网格所在象素的亮度进行照亮。该现有技术可称之为“整体网格点亮计算光照法”,其具有一些缺点:
1)计算复杂,光照速度低,由于首先将当前区域划分为固定水平光照网格,并计算各网格的亮度,其计算量过大,造成运算速度下降,且实时性受到限制。
2)光照精度低,由于是根据水平固定网格的亮度照亮物体网格,即光照精度取决于水平固定网格大小,考虑到运算速度的问题,水平固定网格通常较粗以降低计算量,造成光照精度受到限制。而且先计算网格大小,再将物体离散成物体网格,并根据水平固定网格的亮度照亮物体网格,在水平网格与物体网格对齐时经常产生误差。
3)光照精度不易调整,由于将当前区域划分为固定大小的水平网格,使得调节被光照的物体网格大小也不能提高光照精度。
发明内容
由于现有技术的场景光照速度和精度不够,本发明解决的技术问题在于提供一种场景光照速度快、精度高的场景动态光影实现方法。
为此,本发明解决技术问题的技术方案是:一种场景动态光影的实现方法,包括步骤:
1)生成场景中的遮挡物列表;
2)确定光源衰减范围,对位于光源衰减范围中的遮挡物生成光源对应的动态阴影锥列表;
3)判断可以被照亮的物体是否位于视野之中,如在视野之中,则将其离散成具有顶点的物体网格;
4)针对视野中的光源,判断离散成物体网格的物体是否位于光源的衰减范围内,如果不在,则不进行计算;如果在,则进入步骤5);
5)计算光源对衰减范围内未处于阴影锥的物体网格的光照。
相对于现有技术,本发明的有益效果是:首先,由于只将视野中可以被照亮的物体离散成物体网格,相对现有技术首先划分当前区域再离散物体的做法,可以将物体离散成更多的物体网格以提高光照精度,而且可减小计算量,提高光照速度。其次,由于生成阴影锥列表,其不但可以产生阴影加强显示效果,而且能剔除那些不在阴影里的顶点,使它们不被处理,加强了光照速度。再次,由于光照的精度取决于物体网格的大小,动态改变被光照的物体网格可以实际调节光照的细节度。这样可以为不同配置高低的机器采用不同的细节度计算方式,比较灵活。另外,计算网格物体的光照时是真正计算光源到被光照顶点的实际距离,光照精度得到提高。
附图说明
图1是本发明场景动态光影实现方法的流程图;
图2是本发明场景动态光影实现方法生成阴影锥的原理图。
图3是本发明场景动态光影实现方法生成阴影锥的流程图。
图4是本发明场景动态光影实现方法在新加入遮挡物时的工作流程图;
图5是本发明场景动态光影实现方法在新加入遮挡物时的工作流程图;
图6是本发明场景动态光影实现方法在新加入遮挡物时的工作流程图。
具体实施方式
请参考图1,本发明场景动态光影实现方法包括:生成场景中的遮挡物列表的步骤101;确定光源衰减范围,对位于光源衰减范围中的遮挡物生成光源对应的动态阴影锥列表的步骤102;判断可以被照亮的物体是否位于视野之中,如在视野之中,则将其离散成具有顶点的物体网格的步骤103;针对视野中的光源,判断离散成物体网格的物体是否位于光源的衰减范围内的步骤104,如果不在,则不进行计算;如果在,则计算光源对衰减范围内未处于阴影锥的物体网格的光照的步骤105。
请一并参考图2,首先实施步骤101,对于场景中存在的遮挡物20,生成一个遮挡物列表,随后执行步骤102,确定光源10的衰减范围,光源10对场景中的位于衰减范围内的遮挡物列表进行判断并生成阴影锥列表。本发明所谓遮挡物20是指游戏场景中出现的牌坊、碑塔、建筑物或其他可以遮挡光源10的光照的景物。
步骤102的一个实施方式请一并参考图3,首先实行步骤121,确定光源衰减范围。场景中的光源10由一个光源位置向量以及光源衰减半径r确定,所述光源衰减半径可以根据不同的游戏场景而选取,选取光源衰减半径则同时确定了光源10的光源衰减范围。其次实行步骤122,确定遮挡物20的遮挡线段。所谓遮挡线段是指遮挡物20和场景相交的轮廓,当所述轮廓为其他形状如圆形时,将其转化为遮挡线段进行处理。再执行步骤123,生成阴影锥。由于遮挡物20的遮挡线段进入了光源10的衰减范围,所以在遮挡线段上方形成了阴影。光源10与遮挡线段两端连线组成了阴影锥的两条交叉直线。生成阴影锥的作用在于阴影锥能产生阴影以加强显示效果,而且能快速剔除那些不在阴影里的顶点(详后述),使它们不被处理,加快运算速度。
再次参考图1和图2,在生成阴影锥列表的步骤102之后,开始绘制游戏场景中的物体。首先执行步骤103,判断物体是否在视野之中,当某个可以被照亮的物体30处于视野之中时,将其离散成物体网格31。所谓物体30可看成由若干图素组成,所述图素一般采用四个顶点围成的空间四边形进行描述,要将物体30离散成为物体网格31就必须在四个顶点中间插值来增加顶点,这个过程可以采用等距离插值的方法,给定要插值形成的物体网格31的大小,自动生成其中的顶点。
所谓视野,这里指的是屏幕可见的范围,当所述需绘制的物体30不在屏幕的可见范围,即视野之内时,则不对其进行计算光照的处理,以达到降低计算量提高速度的目的。同理,当光源不在视野,即屏幕可见的范围内时,要对其进行剔除处理,以减小计算时的计算量。
随后执行步骤104,当视野中的光源10被确定后,判断离散成物体网格31的物体30是否位于光源10的衰减范围内,如果不在,则不进行计算;如果在,则进入步骤105,计算光源对衰减范围内未处于阴影锥的物体网格的光照。本实施方式中,所述步骤105可以这样进行:按线性衰减计算进入光源衰减范围且未处于阴影锥的物体网格311的顶点的亮度;采用平滑插值的方法计算进入光源衰减范围且未处于阴影锥的物体网格311中顶点之间区域的亮度。位于阴影中的物体网格312的顶点由于不受光源10的影响将被剔除而不受处理,以达到降低计算量提高速度的目的。所谓线性衰减是指根据组成物体30的每个顶点离光源10的距离来确定顶点亮度,当然为达到一定的特技效果,也可以采用平方衰减等其他方法。另外,计算顶点之间区域的亮度可以采用的插值的方法有很多,本实施方式采用平滑插值的方法可以利用显示卡硬件加速的方法,而且平滑插值也是真实光照通常采用的方法。如果要实现特效,也可以采用其他插值方法。
为了进一步降低运算时的计算量,提高运算速度,本发明场景动态光影实现方法还可以包括遮挡物预加入的步骤,在场景还未生成前,首先确定遮挡线段,生成阴影锥,实现预先增加一部分遮挡物和光源到场景中的目的。
本发明方法中,还可以根据不同的游戏场景和需要实现的特殊光影效果,控制光照开关,所谓光照开关是控制光源开启和关闭的单元。当光照开关关闭后,所有绘制的物体都不参与构造物体网格和计算光照,当光照开关打开后,才将绘制的可照亮的物体离散成物体网格并计算光照。
此外,还可以控制光照精度等级,本发明中,光照精度取决于物体网格的大小,动态改变被光照的物体网格可以实际调节光照的细节度,改变物体网格的顶点数量就改变了细节度,顶点越多,细节度越高,这样可以为不同配置高低的机器采用不同的细节度计算方式,比较灵活。所谓光照的细节度指的是被照亮的物体得到的光强在物体表面的过渡效果。
请一并参阅图4至图6,当场景发生改变时,本发明场景动态光影实现方法可以进行实时调整。
参考图4,新加入遮挡物时,执行步骤:将其与场景中的遮挡物合并的步骤401,调整场景中的遮挡物列表的步骤402,对各光源生成阴影锥的步骤403,调整光源的阴影锥列表的步骤404,重新计算场景中物体的光照的步骤405。
参考图5,打开新的光源时,执行步骤:该光源对场景中的遮挡物依次生成阴影锥的步骤501,生成所述光源的阴影锥列表的步骤502;重新计算场景中物体的光照的步骤503。
参考图6,移动光源时,执行步骤:清除其原有的阴影锥列表的步骤601,该光源对场景中的遮挡物依次生成阴影锥的步骤602,生成所述光源的阴影锥列表的步骤603;重新计算场景中物体的光照的步骤604。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种场景动态光影的实现方法,包括步骤:
1)生成场景中的遮挡物列表;
2)确定光源衰减范围,对位于光源衰减范围中的遮挡物生成光源对应的动态阴影锥列表;
3)判断可以被照亮的物体是否位于视野之中,如在视野之中,则将其离散成具有顶点的物体网格;
4)针对视野中的光源,判断离散成物体网格的物体是否位于光源的衰减范围内,如果不在,则不进行计算;如果在,则进入步骤5);
5)计算光源对衰减范围内未处于阴影锥的物体网格的光照。
2.根据权利要求1所述的场景动态光影的实现方法,其特征在于:步骤2)包括步骤:
6)确定遮挡物的遮挡线段;
7)连接光源和遮挡线段两端形成两条交叉直线;
8)生成阴影锥。
3.根据权利要求1所述的场景动态光影的实现方法,其特征在于:步骤2)进一步包括步骤:
9)新加入遮挡物时,将其合并至场景中的遮挡物列表,并修改光源的阴影锥列表;
10)打开新的光源时,生成所述新的光源对场景中的遮挡物列表的阴影锥列表;
11)移动光源时,先清除其原有的阴影锥列表,再生成新的阴影锥列表。
4.根据权利要求1所述的场景动态光影的实现方法,其特征在于:步骤5)进一步包括:按线性衰减计算进入光源衰减范围且未处于阴影锥的物体网格的顶点的亮度。
5.根据权利要求4所述的场景动态光影的实现方法,其特征在于:步骤5)进一步包括:采用平滑插值的方法计算进入光源衰减范围且未处于阴影锥的物体网格中顶点之间的亮度。
6.根据权利要求1所述的场景动态光影的实现方法,其特征在于:还包括遮挡物预加入的步骤。
7.根据权利要求1所述的场景动态光影的实现方法,其特征在于:还包括控制光照开关的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200310118895 CN1278282C (zh) | 2003-12-04 | 2003-12-04 | 场景动态光影实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200310118895 CN1278282C (zh) | 2003-12-04 | 2003-12-04 | 场景动态光影实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1547163A true CN1547163A (zh) | 2004-11-17 |
CN1278282C CN1278282C (zh) | 2006-10-04 |
Family
ID=34338056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200310118895 Expired - Lifetime CN1278282C (zh) | 2003-12-04 | 2003-12-04 | 场景动态光影实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1278282C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211464B (zh) * | 2006-12-25 | 2010-05-19 | 财团法人资讯工业策进会 | 可预存产生3d影像自我遮蔽阴影所需信息之装置及方法 |
CN101911127B (zh) * | 2008-01-11 | 2012-07-04 | 科乐美数码娱乐株式会社 | 图像处理装置、图像处理方法 |
CN101226644B (zh) * | 2008-02-18 | 2013-01-30 | 朱东晖 | 空间二维图像的光影跟踪方法 |
CN104299257A (zh) * | 2014-07-18 | 2015-01-21 | 无锡梵天信息技术股份有限公司 | 一种基于室外太阳光实现实时动态阴影的方法 |
CN110992466A (zh) * | 2019-12-05 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 光照探针生成方法、装置、存储介质和计算机设备 |
CN116012520A (zh) * | 2023-03-23 | 2023-04-25 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、计算机设备和存储介质 |
-
2003
- 2003-12-04 CN CN 200310118895 patent/CN1278282C/zh not_active Expired - Lifetime
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211464B (zh) * | 2006-12-25 | 2010-05-19 | 财团法人资讯工业策进会 | 可预存产生3d影像自我遮蔽阴影所需信息之装置及方法 |
CN101911127B (zh) * | 2008-01-11 | 2012-07-04 | 科乐美数码娱乐株式会社 | 图像处理装置、图像处理方法 |
CN101226644B (zh) * | 2008-02-18 | 2013-01-30 | 朱东晖 | 空间二维图像的光影跟踪方法 |
CN104299257A (zh) * | 2014-07-18 | 2015-01-21 | 无锡梵天信息技术股份有限公司 | 一种基于室外太阳光实现实时动态阴影的方法 |
CN104299257B (zh) * | 2014-07-18 | 2018-05-04 | 无锡梵天信息技术股份有限公司 | 一种基于室外太阳光实现实时动态阴影的方法 |
CN110992466A (zh) * | 2019-12-05 | 2020-04-10 | 腾讯科技(深圳)有限公司 | 光照探针生成方法、装置、存储介质和计算机设备 |
WO2021109688A1 (zh) * | 2019-12-05 | 2021-06-10 | 腾讯科技(深圳)有限公司 | 光照探针生成方法、装置、存储介质和计算机设备 |
US11854143B2 (en) | 2019-12-05 | 2023-12-26 | Tencent Technology (Shenzhen) Company Limited | Light probe generation method and apparatus, storage medium, and computer device |
CN116012520A (zh) * | 2023-03-23 | 2023-04-25 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1278282C (zh) | 2006-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Longhurst et al. | A gpu based saliency map for high-fidelity selective rendering | |
Walter et al. | Interactive rendering using the render cache | |
CN100342403C (zh) | 使用图案阴影来产生阴影效果的方法与装置 | |
CN107274476B (zh) | 一种阴影图的生成方法及装置 | |
Martin et al. | Anti-aliasing and Continuity with Trapezoidal Shadow Maps. | |
US7812850B1 (en) | Editing control for spatial deformations | |
US20050219249A1 (en) | Integrating particle rendering and three-dimensional geometry rendering | |
US10163253B2 (en) | Lighting management in virtual worlds | |
US20100020080A1 (en) | Image generation system, image generation method, and information storage medium | |
US20070139408A1 (en) | Reflective image objects | |
NZ567884A (en) | Performing rendering operations to form intermediate data of images, processing the inermediate data, and then performing additional rendering | |
CA2291408C (en) | Method for time based shadow rendering | |
Larsen et al. | Simulating Photon Mapping for Real-time Applications. | |
EP4009279A1 (en) | Image rendering method and apparatus | |
EP1465116A1 (en) | Computer graphics | |
CN1278282C (zh) | 场景动态光影实现方法 | |
US8730239B2 (en) | Transitioning between shading regions on an object | |
CN113610955A (zh) | 一种对象渲染方法、装置及着色器 | |
CN105210360A (zh) | 影像显示装置 | |
US8212835B1 (en) | Systems and methods for smooth transitions to bi-cubic magnification | |
US20230149811A1 (en) | Systems and Methods for Dynamically, Automatically Generating and/or Filtering Shadow Maps in a Video Game | |
KR20090040515A (ko) | 적응적 탐색 기법을 이용한 이미지 공간 기반의 음영 처리장치 및 방법 | |
US7002592B2 (en) | Graphical display system and method for applying parametric and non-parametric texture maps to graphical objects | |
Fan et al. | A review of real-time terrain rendering techniques | |
US7292238B1 (en) | Method of displaying an output image of a scene from a freely selectable viewpoint |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20061004 |
|
CX01 | Expiry of patent term |