CN101271587B - 一种基于过渡光贴图的光照和阴影绘制方法 - Google Patents
一种基于过渡光贴图的光照和阴影绘制方法 Download PDFInfo
- Publication number
- CN101271587B CN101271587B CN2008101008575A CN200810100857A CN101271587B CN 101271587 B CN101271587 B CN 101271587B CN 2008101008575 A CN2008101008575 A CN 2008101008575A CN 200810100857 A CN200810100857 A CN 200810100857A CN 101271587 B CN101271587 B CN 101271587B
- Authority
- CN
- China
- Prior art keywords
- illumination
- shade
- time
- light
- key frame
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种基于过渡光贴图的光照和阴影绘制方法。该系统主要包括以纹理映射技术和动态光照及阴影计算技术为基础的场景实时绘制技术。与一般利用纹理预存光照信息的光贴图不同,本算法不仅把空间光照亮度信息存入纹理,同时还将每个空间位置的阴影时间变化信息,作为阴影过渡值保存到纹理中,实现了动态光照和动态阴影的仿真,解决纹理光贴图融合算法中阴影真实性和实时性的问题。实验表明此算法在具有固定路线运动光源的虚拟现实环境中,可以达到甚至超过实时计算光照和阴影的效果,计算速度比实时光照的速度提高一倍以上,取得了良好的仿真效果。
Description
技术领域
本发明涉及大规模地形实时绘制技术,基于过渡光贴图的光照和阴影绘制技术。是一种高效的纹理实时计算和绘制方法,属于计算机图形学、虚拟现实技术领域。
背景技术
纹理是计算机图形学绘制的一个重要研究内容,纹理映射可以在不增加模型复杂度的情况下,使细节更加丰富,场景更加真实。从视觉成像的角度来讲,影响成像的因素中,除了纹理本身,还有纹理受到的光照情况。由于光照条件的不同,相同的纹理可能表现的是截然不同的图像效果。对于大规模地形绘制来说,光线主要来自太阳光。由于太阳的相对运动等因素的影响,地形纹理明暗的变化非常明显,需要耗费大量的资源进行光照计算,以合成符合光照的更具真实感的场景。
当前实现场景光照有两种方法:一种是实时光照计算法,另一种是光照纹理贴图法。实时光照计算方法是在绘制时计算目标点在光源照射下的亮度、颜色并实现绘制,其缺点是需要实时进行法向量和光照方程的计算,时间复杂度高。光照纹理贴图法是指在预处理中进行光照计算,并把计算结果保存成包含光照的纹理图形式。在绘制时采用纹理映射的方式直接得到光照颜色,由于不需要实时计算,速度很快,光照效果由光贴图纹理分辨率以及预计算中光照模型的选择决定,可以达到较高的清晰度。
但是与实时光照相比,光贴图方法的光照由预计算产生,在实时绘制时不能改变光照的位置和方向,在一些应用中存在着限制。为了解决光贴图无法模拟动态光照的问题,可以在预处理中计算太阳运动路径上多个位置的光贴图,绘制时采用纹理融合实现任意时刻光照的仿真。这种方法通过利用多纹理实现动态光源的仿真,但处理阴影时,多光贴图融合会产生半明半暗的伪阴影区,这是此类算法的一个重要缺陷。
发明内容
本发明提出一种阴影过渡光贴图方法,把阴影变化的时间信息存储到光贴图中,在绘制时,通过对比当前仿真时间和存储在过渡光贴图中的时间,获得仿真时间的光照亮度值,进行纹理映射,得到真实的光照阴影效果,既保证了光贴图快速、高清晰度的特点,又满足动态、实时逼真光照和阴影的要求,适合户外地形仿真的绘制。本质上是利用阴影过渡函数对阴影的时间变化进行逼近,以获取阴影图关键帧,并可以通过这些关键帧在最大限度上恢复原有的光照纹理图全部信息。
实现本发明的方法包括以下具体步骤:
(1)光照纹理图的计算:通过给定地形高程图、光源以及光照模型,计算环境的光照以及由于遮挡产生的阴影情况,获得带阴影信息的光照纹理图;
(2)阴影函数获取及平滑:通过地形某一点上不同时刻的阴影变化情况获得阴影函数,并对阴影函数进行平滑处理;
(3)阴影区段划分:按照平滑函数的特性,在区段划分数给定的条件下,按照最小误差的原则进行分段线性逼近;
(4)构造阴影过渡图:按照以上的划分,在采样点上根据采样点前后阴影状态的不同,提取不同参数,构造阴影过渡图;
(5)合成纹理光照图:在需要实时计算的时刻,根据所在时间段的关键帧信息以及时间段中的位置信息,插值生成带有阴影信息的纹理光照图。
其中,光照纹理图的计算、阴影函数构造及划分、关键帧的选取与阴影纹理光照图的生成方法分别为:
(1)、光照纹理图的计算
光照纹理图的计算首先要获得光源的方向,需要构造简单的弧形太阳运动轨迹即可,见图1。p为太阳运动轨迹中的一个位置,p’为在XOZ平面投影,θ为op’在与X轴夹角,为op与XOZ平面夹角。设太阳运动轨迹为θ:0→π,:0→cπ→0(0<c<0.5),通过仿真时间t在θ和范围内插值,可以求出任意时刻光线的方向(x,y,z)
为减轻光照计算量,一般采用局部光照明模型。本算法采用phone光照模型计算地形模型顶点光照:
其中I为最后的光亮度,Ia,Id,Is,分别表示泛光,漫反射和镜面高光的亮度。Ca,Cd,Cs,表示地表采样点处的泛光反射率,漫反射率和镜面反射率。n表示采用点法向方向,l表示光线方向,h表示视线和光线方向的角平分矢量。
阴影检测可以采用光跟踪的办法,从光源到纹理像素位置发射一条阴影线,测试与地形其他部分是否相交,判别是否为阴影。
(2)、阴影函数构造及划分
本算法构造了阴影变化的时间函数,以表达时间上连续变化的阴影情况。对于地形数据中每个采样点,读取光源所有位置采样点的阴影状态,得到阴影时间变化函数:
其中,u,v为像素坐标点,t为采样时刻。
一般情况下像素点阴影在某一段采样时间间隔内,随时间变化是连续平滑的,可以用简单的曲线拟合方法来逼近像素阴影的变化规律,以实现不同采样时刻像素阴影的插值。因此可以将像素点阴影的变化情况,划分为尽量少的采样区间,通过平滑曲线进行逼近,将误差控制在允许的范围内。
在阴影遮挡计算中,地形表面插值可能会产生一些误差,导致在一些阴影边界点上阴影状态频繁变化。这些特殊点对总体阴影效果影响不大,但是会增加阴影变化函数的复杂性,使划分的区间更加细碎,误差显著增大。因此在进行插值逼近之前,采用信号降噪的方法进行平滑处理,去除阴影的突变。
本算法采用线性插值的方法计算中间帧的阴影状态,两幅关键帧最多可以表示阴影状态的一次变化,为减少误差,对光贴图的划分准则是尽量减少一个区段内阴影变化的次数,选择少量光贴图关键帧,使总体转换误差较小,且保证各个光贴图关键帧之间的转换误差率相差不大。
(3)、关键帧的选取与阴影纹理光照图的生成
长度为Nf,的动态光照纹理图时间序列通过以上方法划分出n个(n<<Nf)具有代表性的区段,在第i(0≤i≤n,i∈N)个区段起始时刻ts i和结束时刻te i处构造光贴图关键帧Fs i,Fe i,这样区间中 时刻光贴图可以通过区间前后的关键帧进行插值得到。
为了通过简单的线性插值实现以上任意时刻光贴图的计算,光贴图关键帧除了存储当前时刻的光照亮度信息外,还要构造参数α和β用来存储阴影变化的时间阈值信息,即阴影过渡值 ,其中tc i为区间i中状态发生变化的时刻。在绘制时根据当前仿真时间t,判断光贴图区段位置i,并通过所在区段前后两幅关键帧Fs i,Fe i,进行线性插值,即可得到当前时刻的光照亮度值。
根据像素点在前后关键帧处阴影状态,α和β的取值分如表1所示的四种情况取值。
表1阴影状态变化
像素位置 | F<sub>s</sub><sup>i</sup>状态 | F<sub>e</sub><sup>i</sup>状态 | 中间帧阴影状态 | 参数α | 参数β |
P1 | 光照 | 光照 | 光照 | 0 | 1 |
P2 | 阴影 | 光照 | t<α阴影,t≥α光照 | q | 1 |
P3 | 阴影 | 阴影 | 阴影 | 1 | 0 |
P4 | 光照 | 阴影 | t≤β光照,t>β阴影 | 0 | q |
综合以上四种情况,当t<α且t>β表示处于阴影态,使用全局阴影绘制。否则表示处于光照态,用亮度插值绘制。插值公式为:
其中, ,L为光照亮度,D为全局阴影亮度。
这样就完成了光照纹理图的阴影插值计算。
附图说明:
图1为本发明的算法中光源运动轨迹示意图;
图2为本发明的算法流程图;
图3为插值算法效果比较图;
图4为关键帧像素状态示意图。
具体实施方式:
下面结合附图对本发明的实施方式加以详细说明。
图2是算法的流程图,本发明方法按照图2流程,运行包括如下具体步骤:
1.光照与阴影状态计算:
首先根据仿真时刻的光照情况,计算太阳或其他光源对绘制点的照射角度,同时计算在绘制点处的法线方向,根据公式 可以计算出所绘制点处光照亮度情况。
仅考虑泛光和漫反射光,则光照模型简化为 与视点无关,可以作为光贴图纹理作用到地形模型中,仿真固定光源产生的光照效果。
光照计算中,由于地形表面高低起伏而产生的阴影区域,漫反射光线亮度为0,其光照仅包含泛光部分I=IaCa,此时光照与地形位置和法向量无关,可采用预设常数统一赋值的方法以简化阴影区亮度的存储和计算。
考虑光源的遮挡,建立从绘制点到光源的连线,求此连线与延连线投影方向的地形的交点,若有交点则将此绘制点设置为阴影部分,亮度值设为统一的灰度。
2.阴影变化函数平滑处理:
将同一像素点延不同时刻的阴影情况提取出来形成一个二值时间函数,由于噪声的原因会存在频繁的跳变,影响到后面关键帧的选取等计算。我们通过模板匹配的方法寻找预定义的噪声,再通过取反的计算,实现阴影变化函数的平滑。
3.阴影区段划分:
本算法实现一种平均误差率控制方法实现区段划分过程,其计算过程如下:
1)给定阴影状态序列F,确定划分区段数n。
2)循环划分第i个区段(i=1...n-1),设定待划分区域最小搜索位置Fmin i取为本区段开始位置Fs i。设定待划分区域最大搜索位置Fmax i。为整个序列的末帧Fe。
3)取当前待划分区段尾帧为 则当前划分下第i个区段为[Fs i,Fe i]。
4)将剩余区域[Fe i,Fe]平均划分为n-i个区段,形成一次完整的临时划分。
5)计算每个区段j的目标误差Ej(j=1...n),并计算总误差
6)判断|(Ei/E)-(1/n)|<ε,其中ε为误差门限,若满足条件第i个区段划分完毕,转2)。
7)否则根据(Ei/E)-(1/n)结果,采用折半查找法,设置Fmin i。和Fmax i。,转(3)。
8)划分结束。
4.构造阴影过渡图关键帧
根据以上的划分结果,在划分的交接处构造阴影过渡图关键帧。为了通过简单的线性插值实现以上任意时刻光贴图的计算,光贴图关键帧除了存储当前时刻的光照亮度信息外,还要构造参数α和β用来存储阴影变化的时间阈值信息,即阴影过渡值 ,其中tc i为区间i中状态发生变化的时刻。在绘制时根据当前仿真时间t,判断光贴图区段位置i,并通过所在区段前后两幅关键帧Fs i,Fe i,进行线性插值,即可得到当前时刻的光照亮度值。
根据像素点在前后关键帧处阴影状态,α和β的取值分如表1所示的四种情况取值。
表1阴影状态变化
像素位置 | F<sub>s</sub><sup>i</sup>状态 | F<sub>e</sub><sup>i</sup>状态 | 中间帧阴影状态 | 参数α | 参数β |
P1 | 光照 | 光照 | 光照 | 0 | 1 |
P2 | 阴影 | 光照 | t<α阴影,t≥α光照 | q | 1 |
P3 | 阴影 | 阴影 | 阴影 | 1 | 0 |
P4 | 光照 | 阴影 | t≤β光照,t>β阴影 | 0 | q |
5.合成光照纹理图
综合以上四种情况,当t<α且t>β表示处于阴影态,使用全局阴影绘制。否则表示处于光照态,光照纹理图通过亮度插值绘制。插值公式为:
其中, ,L为光照亮度,D为全局阴影亮度。
这样就完成了光照纹理图的阴影插值计算。
Claims (1)
1.一种基于过渡光贴图的光照和阴影绘制方法,包含如下具体步骤:
(1)光照纹理图的计算:通过给定地形高程图、光源以及phone光照模型,计算环境的光照以及由于遮挡产生的阴影情况,获得带阴影信息的光照纹理图;
(2)阴影函数获取及平滑:对光源运动位置每个采样点计算阴影状态;对于地形数据中每个采样点,读取光源所有位置采样点的阴影状态,得到阴影时间变化函数:
其中,u,v为像素坐标点,t为采样时刻;
构造出阴影函数后,对阴影函数进行平滑处理;
(3)阴影区段划分:将像素点阴影的变化情况,划分为尽量少的采样区间,通过平滑曲线进行逼近,将误差控制在允许的范围内;光贴图划分的原则是在所有光贴图中选择少量光贴图关键帧,确定光贴图关键帧位置,使总体转换误差较小,且保证各个光贴图关键帧之间的转换误差率相差不大;
(4)构造阴影过渡图关键帧:长度为Nf的动态光照纹理图时间序列通过步骤(3)划分出n个具有代表性的区段,在第i个区段起始时刻ts i和结束时刻te i处构造光贴图关键帧Fs i,Fe i,这样区间中t时刻光贴图可以通过区间前后的关键帧进行插值得到;为了通过简单的线性插值实现以上任意时刻光贴图的计算,光贴图关键帧除了存储当前时刻的光照亮度信息外,还要构造参数α和β用来存储阴影变化的时间阈值信息;其中n<<Nf;0≤i≤n,i∈N;
(5)合成纹理光照图:在需要实时计算的时刻,根据当前仿真时间t,判断光贴图区段位置i,并通过所在区段前后两幅关键帧Fs i,Fe i,进行线性插值,即可得到当前时刻的光照亮度值:
当t<α且t>β表示处于阴影态,使用全局阴影绘制;否则表示处于光照态,用亮度插值绘制;插值公式为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101008575A CN101271587B (zh) | 2008-02-25 | 2008-02-25 | 一种基于过渡光贴图的光照和阴影绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101008575A CN101271587B (zh) | 2008-02-25 | 2008-02-25 | 一种基于过渡光贴图的光照和阴影绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101271587A CN101271587A (zh) | 2008-09-24 |
CN101271587B true CN101271587B (zh) | 2010-09-08 |
Family
ID=40005538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101008575A Expired - Fee Related CN101271587B (zh) | 2008-02-25 | 2008-02-25 | 一种基于过渡光贴图的光照和阴影绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101271587B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458823B (zh) * | 2008-12-19 | 2011-08-31 | 北京航空航天大学 | 一种虚拟舞台环境下实时光照绘制的方法 |
CN102087752B (zh) * | 2009-12-08 | 2013-11-20 | 鸿富锦精密工业(深圳)有限公司 | 光照环境模拟系统及方法 |
TWI482998B (zh) * | 2010-01-11 | 2015-05-01 | Hon Hai Prec Ind Co Ltd | 光照環境類比系統及方法 |
CN101882323B (zh) * | 2010-05-19 | 2012-06-13 | 北京航空航天大学 | 基于高度图的微结构表面全局光照实时绘制方法 |
CN102222356A (zh) * | 2011-06-13 | 2011-10-19 | 天津大学 | 一种绘制真实感图形的方法 |
CN102306076B (zh) * | 2011-07-26 | 2016-02-03 | 深圳Tcl新技术有限公司 | 图形动态纹理的生成方法及终端 |
CN102970542B (zh) * | 2012-11-30 | 2015-06-10 | 上海晨思电子科技有限公司 | 一种视频数据转换的方法、装置和智能电视 |
US9922452B2 (en) * | 2015-09-17 | 2018-03-20 | Samsung Electronics Co., Ltd. | Apparatus and method for adjusting brightness of image |
CN106355631A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 虚拟现实中实时阴影的显示方法 |
CN108230430B (zh) * | 2016-12-21 | 2021-12-21 | 网易(杭州)网络有限公司 | 云层遮罩图的处理方法及装置 |
CN107220943A (zh) * | 2017-04-02 | 2017-09-29 | 南京大学 | 融合区域纹理梯度的船舶阴影去除方法 |
CN108520551B (zh) * | 2018-03-30 | 2022-02-22 | 苏州蜗牛数字科技股份有限公司 | 实现光贴图动态光照的方法、存储介质及计算设备 |
CN109985384B (zh) * | 2019-03-21 | 2022-10-04 | 网易(杭州)网络有限公司 | 贴图动态调整方法及装置 |
CN113313808A (zh) * | 2020-08-27 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 图像处理方法及系统、图像处理设备 |
CN112446944B (zh) * | 2020-11-10 | 2024-03-19 | 杭州易现先进科技有限公司 | 一种在ar场景中模拟真实环境光的方法和系统 |
CN112562051B (zh) * | 2020-11-30 | 2023-06-27 | 腾讯科技(深圳)有限公司 | 虚拟对象显示方法、装置、设备及存储介质 |
CN115375828B (zh) * | 2022-10-24 | 2023-02-03 | 腾讯科技(深圳)有限公司 | 模型的阴影生成方法、装置、设备、介质 |
CN117830311B (zh) * | 2024-03-05 | 2024-05-28 | 中山大学 | 医学影像图片分段和关键帧标识方法、系统、设备及介质 |
-
2008
- 2008-02-25 CN CN2008101008575A patent/CN101271587B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101271587A (zh) | 2008-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101271587B (zh) | 一种基于过渡光贴图的光照和阴影绘制方法 | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
US11734879B2 (en) | Graphics processing using directional representations of lighting at probe positions within a scene | |
Steinbrücker et al. | Volumetric 3D mapping in real-time on a CPU | |
CN105336003B (zh) | 结合gpu技术实时流畅绘制出三维地形模型的方法 | |
CN105787865B (zh) | 基于游戏引擎和gpu并行处理的分形图生成与渲染方法 | |
CN106570929B (zh) | 一种动态体积云的构建与绘制方法 | |
JP2669599B2 (ja) | 陰影描画方法及び3次元グラフィック・コンピュータ・システム | |
CA2291408C (en) | Method for time based shadow rendering | |
CN108805971B (zh) | 一种环境光遮蔽方法 | |
CN107220372B (zh) | 一种三维地图线要素注记自动放置方法 | |
US9330492B2 (en) | Prediction method, generation method and storage medium | |
CN113658316B (zh) | 三维模型的渲染方法和装置、存储介质及计算机设备 | |
CN103700134A (zh) | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 | |
Cornish et al. | View-dependent particles for interactive non-photorealistic rendering | |
CN106204719A (zh) | 基于二维邻域检索的三维场景中海量模型实时调度方法 | |
CN1932884A (zh) | 一种基于分形层次树的过程式地形快速绘制方法 | |
CN110400366B (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN112017254A (zh) | 一种混合式光线跟踪绘制方法及系统 | |
KR102269648B1 (ko) | 성능이 개선된 레이 트레이싱 장치 및 방법 | |
Yagel et al. | Priority‐driven Ray Tracing | |
CN106709977A (zh) | 一种基于场景夜景图的光源自动排列方法 | |
CN116958367A (zh) | 一种快速组合并渲染复杂神经场景的方法 | |
US20090009526A1 (en) | Method and system for rendering a shape | |
Kolivand et al. | Anti-aliasing in image based shadow generation techniques: a comprehensive survey |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100908 Termination date: 20110225 |