一种实时阴影的生成方法及装置与流程

文档序号:12787380阅读:268来源:国知局
一种实时阴影的生成方法及装置与流程

本发明涉及计算图形学技术领域,特别是涉及一种实时阴影的生成方法及装置。



背景技术:

实时阴影是一种利用算法实时的在三维空间中绘制出物体在光源下的阴影的技术。实时阴影技术在虚拟现实、增强现实、仿真和游戏领域都有非常重要的应用。

衡量实时阴影技术好坏的指标主要有两点:实时性和逼真度。已知的实时阴影技术在上述指标都存在可改进的空间。随着iOS、Android等移动平台的广泛使用,基于移动平台实现的实时阴影技术在虚拟穿戴领域应用有着广泛的应用前景。传统的实时阴影技术是基于阴影图技术、投影阴影,这种技术的阴影是不够逼真的,阴影的实时性也不够好。

为此,非常有必要找到一种实时性好、逼真度高的阴影技术,这将带来很大的应用价值和商业价值。



技术实现要素:

本发明的目的是提供一种实时阴影的生成方法及装置,以解决现有实时阴影技术实时性较差、逼真度不高的问题。

为解决上述技术问题,本发明提供一种实时阴影的生成方法,包括:

根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图;

将所述阴影纹理贴图烘焙于所述人头模型中;

根据眼镜的运动状态,实时调整所述眼镜对应的阴影的运动状态,以使阴影与眼镜的运动状态保持一致;

对所述人头模型上的眼镜阴影进行渲染,生成眼镜在对应灯光模型下的阴影。

可选地,所述根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图包括:

将所述眼镜模型以及所述人头模型置于3D场景中,在所述3D场景中放入灯光模拟现实光照场景;

对所述眼镜模型以及所述人头模型进行渲染,构建所述眼镜模型的阴影纹理贴图。

可选地,在所述根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图之后还包括:

对所述阴影纹理贴图进行去杂处理。

可选地,所述将所述阴影纹理贴图烘焙于所述人头模型中包括:

遍历所述人头模型的图像像素坐标与所述阴影纹理贴图的像素坐标;

若所述人头模型的图像像素坐标与所述阴影纹理贴图的像素坐标一致,则将所述阴影纹理贴图的像素点的像素值烘焙到所述人头模型的像素点中,直到遍历完所有像素点。

可选地,所述根据眼镜的运动状态,实时调整所述眼镜对应的阴影的运动状态包括:

将所述眼镜分为镜框、镜腿前半部分以及镜腿后半部分,分别对三个部分的运动状态做运动匹配处理;

对于镜框部分,根据vOffset=w*V′对阴影的运动状态进行调整;其中,(u,v)表示阴影运动前的坐标,(u′,v′)表示阴影产生运动后的坐标,vOffset为眼镜运动对阴影运动产生的影响因子,V′为眼镜的纵坐标,w为人头所在的局部坐标系与阴影纹理贴图坐标系的转换系数;

对于镜腿前半部分,根据y=vOffset-[|u-uO|-|uA-uO|]*tan n,对阴影的运动运动状态进行调整;其中,uO,uA,uB,uC分别表示点O、点A、点B、点C的横坐标;O点为左右镜片中间连接的点,A点为镜腿与镜框连接的点,B点为镜腿前半部分与后半部分连接的点,C点为镜腿末端的点;

对于镜腿后半部分,根据对阴影的运动状态进行调整。

本发明还提供了一种实时阴影的生成装置,包括:

构建模块,用于根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图;

烘焙模块,用于将所述阴影纹理贴图烘焙于所述人头模型中;

调整模块,用于根据眼镜的运动状态,实时调整所述眼镜对应的阴影的运动状态,以使阴影与眼镜的运动状态保持一致;

渲染模块,用于对所述人头模型上的眼镜阴影进行渲染,生成眼镜在对应灯光模型下的阴影。

可选地,所述构建模块包括:

模拟单元,用于将所述眼镜模型以及所述人头模型置于3D场景中,在所述3D场景中放入灯光模拟现实光照场景;

构建单元,用于对所述眼镜模型以及所述人头模型进行渲染,构建所述眼镜模型的阴影纹理贴图。

可选地,还包括:

处理模块,用于在根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图之后,对所述阴影纹理贴图进行去杂处理。

可选地,所述烘焙模块包括:

遍历单元,用于遍历所述人头模型的图像像素坐标与所述阴影纹理贴图的像素坐标;

烘焙单元,用于若所述人头模型的图像像素坐标与所述阴影纹理贴图的像素坐标一致,则将所述阴影纹理贴图的像素点的像素值烘焙到所述人头模型的像素点中,直到遍历完所有像素点。

可选地,所述调整模块包括:

划分单元,用于将所述眼镜分为镜框、镜腿前半部分以及镜腿后半部分,分别对三个部分的运动状态做运动匹配处理;

第一调整单元,用于对于镜框部分,根据对阴影的运动状态进行调整;其中,(u,v)表示阴影运动前的坐标,(u′,v′)表示阴影产生运动后的坐标,vOffset为眼镜运动对阴影运动产生的影响因子,V′为眼镜的纵坐标,w为人头所在的局部坐标系与阴影纹理贴图坐标系的转换系数;

第二调整单元,用于对于镜腿前半部分,根据y=vOffset-[|u-uO|-|uA-uO|]*tan n,对阴影的运动运动状态进行调整;其中,uO,uA,uB,uC分别表示点O、点A、点B、点C的横坐标;O点为左右镜片中间连接的点,A点为镜腿与镜框连接的点,B点为镜腿前半部分与后半部分连接的点,C点为镜腿末端的点;

第三调整单元,用于对于镜腿后半部分,根据

对阴影的运动状态进行调整。

本发明所提供的实时阴影的生成方法及装置,根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图;将阴影纹理贴图烘焙于人头模型中;根据眼镜的运动状态,实时调整眼镜对应的阴影的运动状态,以使阴影与眼镜的运动状态保持一致;对人头模型上的眼镜阴影进行渲染,生成眼镜在对应灯光模型下的阴影。本发明所提供的实时阴影的生成方法及装置,实时性好、鲁棒性高,同时能够高精度地实现阴影与虚拟物件的同步实时移动,逼真度高。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的实时阴影的生成方法的一种具体实施方式的流程图;

图2为本发明所提供的实时阴影的生成方法的另一种具体实施方式的流程图;

图3为本发明所提供的实时阴影的生成方法的又一种具体实施方式的流程图;

图4为模拟的现实光照场景以及灯光的摆放位置示意图;

图5为采用3Dmax构建的阴影贴图的示意图;

图6为将阴影烘焙于人头模型的示意图;

图7为人头模型uv坐标示意图;

图8为阴影三部分具体示意图;

图9为眼镜三部分具体示意图;

图10为本发明实施例提供的实时阴影的生成装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明所提供的实时阴影的生成方法的一种具体实施方式的流程图如图1所示,该方法包括:

步骤S101:根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图;

具体地,可以将所述眼镜模型以及所述人头模型置于3D场景中,在所述3D场景中放入灯光模拟现实光照场景;对所述眼镜模型以及所述人头模型进行渲染,构建所述眼镜模型的阴影纹理贴图。

步骤S102:将所述阴影纹理贴图烘焙于所述人头模型中;

作为一种具体实施方式,本步骤可以具体为:遍历所述人头模型的图像像素坐标与所述阴影纹理贴图的像素坐标;若所述人头模型的图像像素坐标与所述阴影纹理贴图的像素坐标一致,则将所述阴影纹理贴图的像素点的像素值烘焙到所述人头模型的像素点中,直到遍历完所有像素点。

步骤S103:根据眼镜的运动状态,实时调整所述眼镜对应的阴影的运动状态,以使阴影与眼镜的运动状态保持一致;

步骤S104:对所述人头模型上的眼镜阴影进行渲染,生成眼镜在对应灯光模型下的阴影。

本发明所提供的实时阴影的生成方法,根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图;将阴影纹理贴图烘焙于人头模型中;根据眼镜的运动状态,实时调整眼镜对应的阴影的运动状态,以使阴影与眼镜的运动状态保持一致;对人头模型上的眼镜阴影进行渲染,生成眼镜在对应灯光模型下的阴影。本发明所提供的实时阴影的生成方法,实时性好、鲁棒性高,同时能够高精度地实现阴影与虚拟物件的同步实时移动,逼真度高。

本发明所提供的实时阴影的生成方法的另一种具体实施方式的流程图如图2所示,该方法包括:

步骤S201:根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图;

步骤S202:对所述阴影纹理贴图进行去杂处理;

步骤S203:将所述阴影纹理贴图烘焙于所述人头模型中;

步骤S204:根据眼镜的运动状态,实时调整所述眼镜对应的阴影的运动状态,以使阴影与眼镜的运动状态保持一致;

具体地,将所述眼镜分为镜框、镜腿前半部分以及镜腿后半部分,分别对三个部分的运动状态做运动匹配处理;

对于镜框部分,根据vOffset=w*V′对阴影的运动状态进行调整;其中,(u,v)表示阴影运动前的坐标,(u′,v′)表示阴影产生运动后的坐标,vOffset是眼镜运动对阴影的运动产生的影响因子,V为眼镜的纵坐标,w是人头所在的局部坐标系与阴影纹理贴图坐标系的转换系数;

对于镜腿前半部分,根据y=vOffset-[|u-uO|-|uA-uO|]*tan n,对阴影的运动运动状态进行调整;其中,uO,uA,uB,uC分别表示点O、点A、点B、点C的横坐标;O点为左右镜片中间连接的点,A点为镜腿与镜框连接的点,B点为镜腿划分为前半部分与后半部分的点,C点为镜腿末端的点;

对于镜腿后半部分,根据

对阴影的运动状态进行调整。

步骤S205:对所述人头模型上的眼镜阴影进行渲染,生成眼镜在对应灯光模型下的阴影。

本实施例先通过3dmax模拟光照场景获得阴影贴图,然后对阴影贴图进行去杂处理,使得渲染出的阴影自然、比较逼真,使得阴影贴图在感观上更加完美。

参照图3,下面结合具体场景对本发明提供的实时阴影的生成方法进行进一步详细阐述。

步骤S301:依据眼镜模型和人头模型的尺寸利用3dmax构建一个眼镜模型的阴影纹理贴图。

具体方式为:将眼镜3D模型和人头3D模型放到3D场景中。模拟现实光照场景:在3D场景中放入灯光来模拟现实光照场景,灯光放置位置如图4所示。需要指出的是,在对模型打灯光时,光源可以多打几盏,并且在空间上均匀分布,以模拟现实光源分布照射在人脸上的亮度,调整灯光参数,形成明暗对比。通过调节3dmax里面的参数,进行渲染,得到眼镜投影在人头模型上的模拟阴影纹理贴图。

步骤S302:将步骤S301得到的阴影贴图保存下来,然后利用PS技术对阴影贴图进行去杂处理,使得阴影贴图在感观上更加完美。如图5所示。

步骤S303:调用PS处理以后的阴影贴图,将阴影贴图烘焙于人头模型中。

具体方式为:遍历人头模型图像像素坐标(U,V)与阴影贴图像素坐标(u,v)。如果人头模型图像像素坐标(U,V)与阴影贴图像素坐标(u,v)一致,则将阴影贴图的像素点(u,v)的像素值烘焙到人头模型像素点(U,V)中,直到遍历完所有像素点,如图6所示。如此,即可将阴影重新烘焙到人头模型上,如图7所示。

步骤S304:根据眼镜的运动状态,实时调整阴影的运动状态,使得阴影与眼镜的运动状态一致。

眼镜的运动主要是以镜腿脚套弯曲处为定点,沿鼻梁上下移动。眼镜沿着鼻梁向下移动的过程中,阴影也随着向下移动,眼镜沿着鼻梁向上移动的过程中,阴影也随着向上移动,这就达到了模拟实时阴影的效果。阴影的移动受眼镜移动参数的控制,使得模拟的实时阴影逼真。

具体的阴影移动调整方式如下:

将阴影和眼镜分为三个部分,如图8和图9所示,分别对这三个部分的运动状态做运动匹配处理。

对于第一部分的阴影运动进行调整采用如下数学公式描述:

其中,(u,v)表示阴影运动前的坐标,(u′,v′)表示阴影产生运动后的坐标。vOffset是眼镜运动对阴影的运动产生的影响因子,表示将眼镜在局部坐标系下的上下移动量转换为阴影的坐标变化量,由眼镜的运动姿态决定。vOffset表示如下:vOffset=w*V′

其中,V′为眼镜的纵坐标,可以通过平板屏幕实时获取;w是人头所在的局部坐标系和与阴影贴图坐标系的转换系数,是一个定值,一般的,w=0.016。

对于第二部分的阴影运动进行调整采用如下数学公式描述:

y=vOffset-[|u-uO|-|uA-uO|]*tann

其中,uO,uA,uB,uC分别表示点O、点A、点B、点C的横坐标。

对于第三部分的阴影运动进行调整采用如下数学公式描述:

步骤S305:对人头模型上的眼镜阴影进行渲染,即可得到眼镜以及在对应灯光模型下眼镜的阴影。

本申请能够根据眼镜的运动实时模拟阴影,使得阴影实时性好,符合人的感观。另外,本实施例先通过3dmax模拟光照场景获得阴影贴图,然后对阴影贴图进行去杂处理,使得渲染出的阴影自然、比较逼真。

下面对本发明实施例提供的实时阴影的生成装置进行介绍,下文描述的实时阴影的生成装置与上文描述的实时阴影的生成方法可相互对应参照。

图10为本发明实施例提供的实时阴影的生成装置的结构框图,参照图10实时阴影的生成装置可以包括:

构建模块100,用于根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图;

烘焙模块200,用于将所述阴影纹理贴图烘焙于所述人头模型中;

调整模块300,用于根据眼镜的运动状态,实时调整所述眼镜对应的阴影的运动状态,以使阴影与眼镜的运动状态保持一致;

渲染模块400,用于对所述人头模型上的眼镜阴影进行渲染,生成眼镜在对应灯光模型下的阴影。

作为一种具体实施方式,本发明所提供的实时阴影的生成装置中,所述构建模块包括:

模拟单元,用于将所述眼镜模型以及所述人头模型置于3D场景中,在所述3D场景中放入灯光模拟现实光照场景;

构建单元,用于对所述眼镜模型以及所述人头模型进行渲染,构建所述眼镜模型的阴影纹理贴图。

进一步地,本发明实施例还可以包括:

处理模块,用于在根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图之后,对所述阴影纹理贴图进行去杂处理。

在上述任一实施例的基础上,所述烘焙模块可以具体包括:

遍历单元,用于遍历所述人头模型的图像像素坐标与所述阴影纹理贴图的像素坐标;

烘焙单元,用于若所述人头模型的图像像素坐标与所述阴影纹理贴图的像素坐标一致,则将所述阴影纹理贴图的像素点的像素值烘焙到所述人头模型的像素点中,直到遍历完所有像素点。

可选地,所述调整模块包括:

划分单元,用于将所述眼镜分为镜框、镜腿前半部分以及镜腿后半部分,分别对三个部分的运动状态做运动匹配处理;

第一调整单元,用于对于镜框部分,根据vOffset=w*V′对阴影的运动状态进行调整;其中,(u,v)表示阴影运动前的坐标,(u′,v′)表示阴影产生运动后的坐标,vOffset是眼镜运动对阴影的运动产生的影响因子,V′为眼镜的纵坐标,w是人头所在的局部坐标系与阴影纹理贴图坐标系的转换系数;

第二调整单元,用于对于镜腿前半部分,根据y=vOffset-[|u-uO|-|uA-uO|]*tann,对阴影的运动运动状态进行调整;其中,uO,uA,uB,uC分别表示点O、点A、点B、点C的横坐标;O点为左右镜片中间连接的点,A点为镜腿与镜框连接的点,B点为镜腿划分为前半部分与后半部分的点,C点为镜腿末端的点;

第三调整单元,用于对于镜腿后半部分,根据

对阴影的运动状态进行调整。

本实施例的实时阴影的生成装置用于实现前述的实时阴影的生成方法,因此实时阴影的生成装置中的具体实施方式可见前文中的实时阴影的生成方法的实施例部分,例如,构建模块100,烘焙模块200,调整模块300,渲染模块400,分别用于实现上述实时阴影的生成方法中步骤S101,S102,S103和S104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明所提供的实时阴影的生成装置,根据可穿戴设备的眼镜模型以及人头模型,构建眼镜模型的阴影纹理贴图;将阴影纹理贴图烘焙于人头模型中;根据眼镜的运动状态,实时调整眼镜对应的阴影的运动状态,以使阴影与眼镜的运动状态保持一致;对人头模型上的眼镜阴影进行渲染,生成眼镜在对应灯光模型下的阴影。本发明所提供的实时阴影的生成装置,实时性好、鲁棒性高,同时能够高精度地实现阴影与虚拟物件的同步实时移动,逼真度高。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的实时阴影的生成方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1