CN1547163A - 场景动态光影实现方法 - Google Patents

场景动态光影实现方法 Download PDF

Info

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
Application number
CNA2003101188950A
Other languages
English (en)
Other versions
CN1278282C (zh
Inventor
罗洪波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jinshan Digital Entertainment Technology Co Ltd
Original Assignee
Beijing Jinshan Digital Entertainment Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jinshan Digital Entertainment Technology Co Ltd filed Critical Beijing Jinshan Digital Entertainment Technology Co Ltd
Priority to CN 200310118895 priority Critical patent/CN1278282C/zh
Publication of CN1547163A publication Critical patent/CN1547163A/zh
Application granted granted Critical
Publication of CN1278282C publication Critical patent/CN1278282C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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所述的场景动态光影的实现方法,其特征在于:还包括控制光照开关的步骤。
CN 200310118895 2003-12-04 2003-12-04 场景动态光影实现方法 Expired - Lifetime CN1278282C (zh)

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)

* Cited by examiner, † Cited by third party
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 腾讯科技(深圳)有限公司 阴影渲染方法、装置、计算机设备和存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
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