CN107330964A - 一种复杂三维物体的显示方法及系统 - Google Patents
一种复杂三维物体的显示方法及系统 Download PDFInfo
- Publication number
- CN107330964A CN107330964A CN201710606522.XA CN201710606522A CN107330964A CN 107330964 A CN107330964 A CN 107330964A CN 201710606522 A CN201710606522 A CN 201710606522A CN 107330964 A CN107330964 A CN 107330964A
- Authority
- CN
- China
- Prior art keywords
- image
- vector
- viewpoint
- modeled
- shade
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/32—Image data format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/62—Semi-transparency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Abstract
本发明公开了一种复杂三维物体的显示方法及系统,该方法包括:获取待建模物体的系列图像,并记录视点相对于待建模物体的相对坐标;利用图像处理软件对系列图像进行处理,得到图像大小相同的系列图像,并保存为透明图像格式;利用XML文件记录待建模物体的视点到球心矢量与系列图像中各图像的对应关系;根据对应关系,以数据结构图的形式构建程序加载模型;计算待建模物体的球心到视点的渲染矢量,并根据程序加载模型选择与渲染矢量夹角最小的矢量对应的视点的图像进行显示;该方法对矢量图像模型显示逼真,对于形状复杂的物体可以节约CPU与内存的消耗,对于运行大规模的实时渲染场景以及提高其运行的流畅度,具有很大的现实价值。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种复杂三维物体的显示方法及系统。
背景技术
用计算机三维模型模拟表示客观世界是计算机图形学的一个重要研究内容。目前在计算机图形学中表示场景和物体最主要的方法是使用几何顶点集合和多边形面片来模拟物体的几何结构(不妨称之为“基于几何结构的点集模拟方法”)。顶点集合离散地记录了客观物体表面的坐标和颜色信息。三维模型的构建与编辑通常通过软件来进行。
对于形状复杂的物体,即便用最出色的建模软件,其手工建模也是费时费力并且十分需要技术经验的工作。为了克服这个难题,近年来,三维扫描的研究成为热点,取得了很多成果,如通过激光三维扫描、结构光三维扫描的方法、双目/多目视觉照片三维重建等。这些方法使得人们可以使用自动化或半自动化的方法获得形状复杂物体的精确模型数据,降低了模型数据获取的难度和成本。
但使用这些方法获得的点云数据的数据量极大,用传统的光线追踪方法难以渲染。因此,如何利用这些点云数据进行显示和表现也是值得研究的课题。目前,一种方法是放弃光线追踪的方法,使用新的点云渲染,例如抛雪球技术,可以取得比光线追踪快4-10倍的效率。另一种方法是对庞大的点云数据进行精简处理。例如基于三角面片的简化法可以把模型顶点数据精简至光线追踪能够处理的程度。但无论是点云渲染还是点云精简,都还远远不能把模型优化简化到可以实时渲染的程度。例如Pixar目前在制作动画电影时,渲染一帧复杂的场景需花费高达20小时!这对于实时渲染的应用(例如虚拟现实应用,三维游戏应用等)是无法适用的。
因此,如何可以用图像集来表示复杂的三维物体,以克服复杂物体难以建模和三维模型太复杂无法进行实时渲染的问题,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种复杂三维物体的显示方法及系统,可以用图像集来表示复杂的三维物体,以克服复杂物体难以建模和三维模型太复杂无法进行实时渲染的问题。
为解决上述技术问题,本发明提供一种复杂三维物体的显示方法,所述方法包括:
获取待建模物体的系列图像,并记录视点相对于所述待建模物体的相对坐标;
利用图像处理软件对所述系列图像进行处理,得到图像大小相同的系列图像,并保存为透明图像格式;
利用XML文件记录所述待建模物体的视点到球心矢量与所述系列图像中各图像的对应关系;
根据所述对应关系,以数据结构图的形式构建程序加载模型;
计算待建模物体的球心到视点的渲染矢量,并根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像进行显示。
可选的,当场景中具有多个待建模物体时,根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像进行显示,包括:
根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像,利用多线程动态加载策略进行显示。
可选的,所述多线程动态加载策略包括:
当所述待建模物体与视点的距离不大于距离阈值时,将所述待建模物体的系列图像全部加载;
当所述待建模物体与视点的距离大于距离阈值时,只加载当前视点方向的对应的图像以及当前视点相邻视点对应的图像。
可选的,所述程序加载模型具体为:其中,A为图像的集合,Imgi为第i幅图像,为观察到图像的视点方向,以单位向量形式表示。
可选的,根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像进行显示,还包括:
利用仿射变换和多重纹理对与所述渲染矢量夹角最小的矢量对应的视点的图像进行动态阴影计算和显示。
可选的,利用仿射变换和多重纹理对与所述渲染矢量夹角最小的矢量对应的视点的图像进行动态阴影计算和显示,包括:
获取初始化的阴影贴图,并根据所述待建模物体的球心到光源的矢量确定对应的阴影贴图;
计算阴影承载面顶点的纹理坐标;
根据所述纹理坐标以及所述阴影贴图进行阴影纹理贴图。
可选的,所述阴影贴图的获取方式,包括:
对所述系列图像中每一个图像进行去色处理,得到黑白图像;
随所述黑白图像进行二值化处理,并将掩码颜色转化成透明度;
利用高斯模糊方法对二值化处理后的图像的透明度进行模糊处理;
将模糊处理后的图像按照预定比例进行缩小处理;
利用夹紧模式对缩小处理后的图像进行边缘清理得到所述阴影贴图。
本发明还提供一种复杂三维物体的显示系统,所述系统包括:
图像获取模块,阴影获取待建模物体的系列图像,并记录视点相对于所述待建模物体的相对坐标;
预处理模块,阴影利用图像处理软件对所述系列图像进行处理,得到图像大小相同的系列图像,并保存为透明图像格式;
对应关系构建模块,阴影利用XML文件记录所述待建模物体的视点到球心矢量与所述系列图像中各图像的对应关系;
程序加载模型构建模块,阴影根据所述对应关系,以数据结构图的形式构建程序加载模型;
渲染显示模块,阴影计算待建模物体的球心到视点的渲染矢量,并根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像进行显示。
可选的,渲染显示模块具体为阴影计算待建模物体的球心到视点的渲染矢量,并根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像,利用多线程动态加载策略进行显示的模块。
可选的,该系统还包括:
阴影显示模块,用于利用仿射变换和多重纹理对与所述渲染矢量夹角最小的矢量对应的视点的图像进行动态阴影计算和显示。
本发明所提供的一种复杂三维物体的显示方法,包括:获取待建模物体的系列图像,并记录视点相对于待建模物体的相对坐标;利用图像处理软件对系列图像进行处理,得到图像大小相同的系列图像,并保存为透明图像格式;利用XML文件记录待建模物体的视点到球心矢量与系列图像中各图像的对应关系;根据对应关系,以数据结构图的形式构建程序加载模型;计算待建模物体的球心到视点的渲染矢量,并根据程序加载模型选择与渲染矢量夹角最小的矢量对应的视点的图像进行显示,。
可见,该方法通过拍照或渲染取得多张不同空间角度观察的物体的图片,每张图片对应一个视点方向矢量(如法向量),实时渲染时,选取矢量与视点方向最接近的方向来显示。该方法对矢量图像模型显示逼真,对于形状复杂的物体可以节约CPU与内存的消耗,对于运行大规模的实时渲染场景以及提高其运行的流畅度,具有很大的现实价值。本发明所还提供的一种复杂三维物体的显示系统,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的复杂三维物体的显示方法的流程图;
图2为本发明实施例所提供的拍摄环境示意图;
图3为本发明实施例所提供的不同拍摄方向视点的示意图;
图4为本发明实施例所提供的复杂三维物体的无阴影显示示意图;
图5为本发明实施例所提供的纹理坐标变换示意图;
图6为本发明实施例所提供的复杂三维物体的有阴影显示示意图;
图7为本发明实施例所提供的复杂三维物体的显示系统的结构框图。
具体实施方式
本发明的核心是提供一种复杂三维物体的显示方法及系统,对矢量图像模型显示逼真,对于形状复杂的物体可以节约CPU与内存的消耗,对于运行大规模的实时渲染场景以及提高其运行的流畅度,具有很大的现实价值。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例利用基于特征的模拟方法,该种方法的共同特点是并不追求十分准确地反映物体几何结构,而把物体的显著特征用简单形状和合适图像配合表达出来,例如布告板方法使用两个垂直的承载物体图像的面来表示树木;分形技术则通过分形迭代来模拟计算植物的枝状结构,进而表达三维植物;用粒子系统通过模拟微粒的产生、运动、消亡过程来表示火焰、喷泉、雨雪等自然现象等等。近年,全景图技术成为虚拟现实领域中的研究热点,全景图更是去除一切形状信息,直接用照相机拍摄拼接得到的照片图像来表达整个三维场景并在其中互动漫游。这些方法通过把物体或场景的主要特征(物理特征、视觉特征)抽取出来,用非形状点集的方法进行描述表达,对于某些特定类型的物体,比使用几何结构点集的方法更加有效。本实施例即基于视觉特征的三维物体表达方法,可以用图像集来表示复杂的三维物体,以克服复杂物体难以建模和三维模型太复杂无法进行实时渲染的问题。具体请参考图1,图1为本发明实施例所提供的复杂三维物体的显示方法的流程图;该方法可以包括:
S100、获取待建模物体的系列图像,并记录视点相对于待建模物体的相对坐标。
具体的,本实施例并不限定系列图像中各图像的数量以及各个图像的拍摄角度和方向,也不限定待建模物体的数量。即使用适当的拍摄器材和拍摄环境取得待建模物体的一系列图像。例如拍摄方向可以根据实际需要考虑经度360°×纬度180°的空间内(只在上半球方向观看的物体可只考虑经度360°×纬度90°的空间)。一个适合的拍摄环境如图2。拍摄时如有使相机可按纬度变化的支架更佳。对于大型实物,需要利用周边的建筑和地形拍摄。拍摄时,测量和记录相机(视点)对于物体(即待建模物体)的相对坐标。
S110、利用图像处理软件对系列图像进行处理,得到图像大小相同的系列图像,并保存为透明图像格式。
具体的,本实施例并不限定处理后系列图像中各图像的尺寸的具体数值,可以根据实际需要进行选择,但是要保证处理后的系列图像中各图像的尺寸一致。本实施例也不对透明图像格式进行限定。例如对拍摄得到的系列图像进行处理。拍摄好的照片要经过图像处理软件处理,以保证各个视点方向的大小相同,并保存成透明图像格式,如png。
S120、利用XML文件记录待建模物体的视点到球心矢量与系列图像中各图像的对应关系。
具体的,使用一个XML文件记录视点-球心矢量和图像的对应关系。具体格式可以如下:
S130、根据对应关系,以数据结构图的形式构建程序加载模型。
具体的,请参考图3,观察图3中的球(由多个平面拟合而成),物体放在球心位置,眼睛可通过拟合球面的各个顶点向球心观察,每个顶点的方向对应一张该方向观察到的图像。例如,当眼睛从P的方向观察时,屏幕显示一张P半径方向照的照片。眼睛移到P1的方向时,又显示P1方向的照片。当眼睛方向接近各个顶点又不与它们重合时,可以取最接近的点的图像。例如图3中的眼睛位置,其最接近的顶点是P,因此可取P点的图像。也可以根据最近的几个顶点的图像插值得到新的图像,例如眼睛处的方向可跟据P、P1和P6点的图像插值。这样的模型虽然不是真实的图形,但可以根据观察方向不断地调整显示的图像,造就逼真的效果。而且略去了复杂的建模和各种图形关系分析,系统的速度将会得到提高,性能得到保证。这些图像可用集合的形式记录,如式:其中,A为图像的集合,Imgi为第i幅图像,为观察到图像的视点方向,以单位向量形式表示。这样以一组向量以及一系列对应图像的物体(待建模物体),本文称为矢量图像物体。在计算机程序中,若采用图的数据结构来表示上述集合,运行效果将要比数组和链表的方法高很多。可以按如下方法建立图的数据结构:
数据结构中,pNode1到pNode6为相邻顶点的指针,用三角面拟合球面时,有的顶点有6个相邻点(如P1点),有的顶点却只有5个(如P3点)。该结构中,一个顶点对应一幅图像。
S140、计算待建模物体的球心到视点的渲染矢量,并根据程序加载模型选择与渲染矢量夹角最小的矢量对应的视点的图像进行显示。
具体的,实时渲染时,计算出物体的球心到视点的渲染矢量,选出与该渲染矢量夹角最小的矢量,显示该顶点对应的图像。可以用矢量的数量积计算,设眼睛点为E,任意顶点用Ki表示,球心为O,则可取其中,α为最小值的顶点。图像载入时,要比较全部顶点。一旦载入完成,每个时刻便只需比较相邻的6个顶点。因为视觉方向离开时只能先经过到这些顶点。
进一步,由于矢量图像物体由多幅图像组成,渲染时实际只显示一张。如果场景中有多个矢量图像物体,把所有的这些物体的所有图像全部加载进来可能会耗费大量的内存。为了提高内存的使用效率,可以使用动态调度和加载的策略:即设法使当前要显示的图像和后面一段时间内很可能要使用到的图像加载并保留在内存中;对后面一段时间内不太可能用到的图像则暂时不加载或卸载掉,等到可能即将用到它们时再加载。优选的,当场景中具有多个待建模物体时,根据程序加载模型选择与渲染矢量夹角最小的矢量对应的视点的图像进行显示可以包括:根据程序加载模型选择与渲染矢量夹角最小的矢量对应的视点的图像,利用多线程动态加载策略进行显示。具体多线程动态加载策略可以包括:
当待建模物体与视点的距离不大于距离阈值时,将待建模物体的系列图像全部加载;当待建模物体与视点的距离大于距离阈值时,只加载当前视点方向的对应的图像以及当前视点相邻视点对应的图像。
具体的,设置一个距离阈值D,检查每一个矢量图像物体与视点的距离(记为Dj),若Dj≤D,该物体的图像全部加载;若Dj>D,则只加载当前视点方向的图像以及相邻六个方向的图像。其中,加载卸载图像使用多线程。图像调度与管理线程要与渲染线程不同。若使用于渲染同一线程会使渲染明显拖慢并发生卡顿现象。至此,图像集物体已可显示在一个实时渲染的三维场景中,一个例子效果如图4所示。
基于上述技术方案,本发明实施例提供的复杂三维物体的显示方法,通过拍照或渲染取得多张不同空间角度观察的物体的图片,每张图片对应一个视点方向矢量(如法向量),实时渲染时,选取矢量与视点方向最接近的方向来显示。该方法对矢量图像模型显示逼真,对于形状复杂的物体可以节约CPU与内存的消耗,对于运行大规模的实时渲染场景以及提高其运行的流畅度,具有很大的现实价值。
基于上述实施例,根据程序加载模型选择与渲染矢量夹角最小的矢量对应的视点的图像进行显示,还包括:
利用仿射变换和多重纹理对与渲染矢量夹角最小的矢量对应的视点的图像进行动态阴影计算和显示。
具体的,对于一般的阴影算法,例如ShaddowVolumn,需要用物体的几何形体参加计算。而本实施例中的矢量图像物体只用一个图像承载面来表达物体,没有物体对应的形状,因此用这些方法是无法计算出阴影的。本实施例提出一种利用仿射变换和多重纹理的方法,可以实现动态阴影,思路与步骤如下:
阴影是光线投射到物体在其后形成的阴暗区域。矢量图像物体中虽然没有形状点集,但却记录有对应各个光源方向的图像。对于某一光源,可以考虑使用与其方向对应的图像,经过缩放、二值化、滤波等处理方法变换出阴影图像,再以合适的纹理贴图方式反映到阴影承载物体上。具体又可细分为以下步骤:
1、获取初始化的阴影贴图,并根据待建模物体的球心到光源的矢量确定对应的阴影贴图;
具体的,对于阴影纹理需要黑白的软阴影图像,为此可以根据物体原始图像处理得到。但是图像处理需要一些时间耗费,因此为了提高三维物体图像显示效率,可以在程序初始化的时候准备好各个图像对应的阴影贴图。阴影贴图处理过程可如下安排:
对系列图像中每一个图像进行去色处理,得到黑白图像;
随黑白图像进行二值化处理,并将掩码颜色转化成透明度;
利用高斯模糊方法对二值化处理后的图像的透明度进行模糊处理;
将模糊处理后的图像按照预定比例进行缩小处理;
利用夹紧模式对缩小处理后的图像进行边缘清理得到阴影贴图。
其中,<1>去色
对图像序列中的每个图像,可以按如下方法去色:
其中,Gray1(x,y)为输出图像在(x,y)转换得到的灰度,R(x,y)为原图像在(x,y)处红色值,G(x,y)为绿色值,B(x,y)为蓝色值。
<2>二值化
然后再对黑白图像进行二值化。因为图像中物体外的像素作了透明或黑色处理,其灰度值是0或者是很小的值。灰度值稍大的像素都是物体的像素,都会产生阴影。阴影部分统一用一种接近黑色的颜色表示,例如取RGB(0.05,0.05,0.05),但不设成纯黑色RGB(0,0,0),因为对于透明贴图很多时候RGB(0,0,0)是作为透明的掩码颜色。(注:本实施例中颜色值可以采用OpenGL记法,1.0为满值,0.0为虚无值,例如RGB(1,1,1)即为白色。)因此此处二值化可用以下方法:
其中,Gray2(x,y)表中输出的二值图像在(x,y)处的灰度值。cs表示阴影像素的统一灰度值,较暗的值即可,例如取RGB(0.05,0.05,0.05)。cv为二值化分类的阈值,也为一个较暗的值可,例如取RGB(0.1,0.1,0.1)。
<3>透明处理
进一步把掩码颜色转化成透明度,可以按如下方法:
其中,Alpha2(x,y)为输出图像在(x,y)处的透明度,Gray2(x,y)与cs参见上一式。
<4>模糊处理
二值化得到的阴影图像是硬阴影,要经过软化处理才逼真。可使用高斯模糊的方法对图像透明度进行处理:
当Alpha2(x,y)≠0
其中,Alpha3(x,y)是输出图像在(x,y)处的透明度,Alpha2(x,y)是前一式中(x,y)出的透明度,R为模糊半径,而C(m,n)是在输入图像在(m,n)处的高斯系数:
其中,x,y为模糊的中心点,σ为其方差。
<5>图像缩小
阴影本身是模糊的图像,不需要高清晰,为了节约内存资源,可将图像进行缩小。可按如下方法:
Gray4(x,y)=Gray3(kxx,kyy)
Alpha4(x,y)=Alpha3(kxx,kyy)
其中,Gray4(x,y)输出的缩小图像在(x,y)处的灰度值,Alpha4(x,y)输出的缩小图像在(x,y)处的透明度。kx、ky为沿x方向和y方向图像缩小系数,一般可取相同值。
<6>边缘清理
阴影贴图在做纹理映射时,可以采用夹紧摸式(GL_CLAMP),为了保证当纹理坐标s不属于[0,1]或t不属于[0,1]的地方没有图像,而且对图像的四个边界清除颜色值和透明度。作如下处理:
至此,阴影贴图就准备好了。对程序加载模型进行修改,经初始化处理的带阴影的序列图像集合为:其中,Shdi表示经初始化处理得到的与向量对应的阴影图像,根据光源方向选择阴影贴图。当然这里也可以由两个图像集合一个为没有阴影的图像集合,一个为各个方向阴影集合,最后在显示的过程中在进行合成显示也是可以的,但是利用效果会更好且效率更高。
在渲染显示的时候,需要根据光源的方向挑出合适的阴影图像。可以按照形式进行,但是需换成模型中心到光源的矢量。即渲染时使用模型中心到视点的矢量来选择模型图像,而根据模型中心到光源的矢量来选择阴影图像。
2、计算阴影承载面顶点的纹理坐标;
具体的,如图5,坐标系OXYZ是场景的全局坐标系(世界坐标系),坐标系OXYZ可经如下变换变为纹理坐标系PbPcPaB(注意:PbPc与PbPa未必垂直。且纹理坐标系的第三轴在此取为光线的反方向PbB,与平面也无垂直关系。即纹理坐标系三轴都未必垂直,这是一个仿射坐标系):坐标系OXYZ进行一个平移变换,原点移动到Pb点,即成为坐标系O'X'Y'Z',O'X'Y'Z再进行一个仿射变换,就可以变为纹标系PbPcPaB。取
就可使坐标系O'X'Y'Z'变换为坐标系PbPcPaB。而一个全局坐标系中的点(x,y,z)可使用下式变换成坐标系PbPcPaB的点:
使用该式即可算得阴影承载面的各顶点的纹理坐标。使用这些纹理坐标进行纹理贴图,就可渲染出阴影效果。
3、根据纹理坐标以及阴影贴图进行阴影纹理贴图。
具体的,因为阴影承载物体可能已贴有纹理,因此阴影纹理须新增一层纹理,并使用透明贴图和颜色混合。多重纹理贴图在OpenGL和DirectX中都支持。
另一方面,并不是所有场景中的物体都需要考虑该矢量图像物体的阴影,只有在矢量图像物体后面(按光源的位置而言)才会受影响。可以利用离差和纹理坐标范围判断:某些物体的某些面上的顶点的最小和最大纹理横坐标之间的范围包含[0,1],且最小和最大纹理纵坐标之间的范围也包含[0,1],对这些面的顶点进行比较,取其中对于面ABCD而言与光源异侧(离差异号)、且对面ABCD离差绝对值最小的那个顶点,取该顶点所在的物体。该物体就是承载阴影的物体,对该物体所有法线与光线方向成钝角的面进行阴影纹理贴图。具体判断条件表达和步骤如下:
F={fk|当(min{sVki},max{sVki})∩(0,1)≠Φ且
(min{tVki},max{tVki})∩(0,1)≠Φ且
有任意顶点Vki满足
其中,F为按大括号内条件选中的面的集合,fk为集合中的第k个面,Vki是这第k个面的第i个顶点,sVki、tVki是该顶点通过仿射变换计算出来的纹理横坐标和纵坐标,G是光源位置,平行光可用一个离场景非常远的位置代替,B是矢量图像物体图像矩形的左下角顶点,是图像矩形方向向量,可通过算得。为一个点P对于平面ABCD的离差。
在面集F中,选择以下面f作为最终挑选出来的一个面:
f=fj fj∈F且存在
其中,fj为面集F中的第j个面,Vjm为fj上的第m个顶点,其他变量含义同前式。fj属于某个物体,那这个物体就是要贴阴影纹理的物体。
如果场景比较复杂,按上两式搜索阴影承载物体是有点耗时的事情,如果事先知道并指定某一个或几个物体作为某个图像序列物体的阴影承载物体,效率就会高得多。例如雕塑、树木一般只会投影到地面,因此可指定地面作为这些图像序列物体的阴影承载物体。
至此,三维场景中的图像集物体已可支持实时阴影。支持阴影的例子效果如图6。即实时阴影计算需经去色、二值化、透明处理、模糊处理、图像缩小、边缘清理的方法来准备阴影纹理图像,再通过仿射变换的方法计算阴影承载面顶点的纹理坐标,然后再通过多重纹理贴图来实现动态阴影。
基于上述技术方案,本发明实施例提供的复杂三维物体的显示方法,通过以图像集来表示复杂物体的方法。通过用数据结构图来组织图像并使每一图像与一个观察方向矢量对应,使得在任何观察方向,都可显示适当的反映物体正确面貌的图像。本方法支持实时阴影的渲染。通过仿射变换实时纹理映射实现了实时阴影的渲染。
下面对本发明实施例提供的复杂三维物体的显示系统进行介绍,下文描述的复杂三维物体的显示系统与上文描述的复杂三维物体的显示方法可相互对应参照。
请参考图7,图7为本发明实施例所提供的复杂三维物体的显示系统的结构框图;该系统可以包括:
图像获取模块100,阴影获取待建模物体的系列图像,并记录视点相对于待建模物体的相对坐标;
预处理模块200,阴影利用图像处理软件对系列图像进行处理,得到图像大小相同的系列图像,并保存为透明图像格式;
对应关系构建模块300,阴影利用XML文件记录待建模物体的视点到球心矢量与系列图像中各图像的对应关系;
程序加载模型构建模块400,阴影根据对应关系,以数据结构图的形式构建程序加载模型;
渲染显示模块500,阴影计算待建模物体的球心到视点的渲染矢量,并根据程序加载模型选择与渲染矢量夹角最小的矢量对应的视点的图像进行显示。
基于上述实施例,渲染显示模块500具体为阴影计算待建模物体的球心到视点的渲染矢量,并根据程序加载模型选择与渲染矢量夹角最小的矢量对应的视点的图像,利用多线程动态加载策略进行显示的模块。
基于上述任意实施例,该系统还可以包括:
阴影显示模块,用于利用仿射变换和多重纹理对与渲染矢量夹角最小的矢量对应的视点的图像进行动态阴影计算和显示。
基于上述技术方案,本发明实施例提供的复杂三维物体的显示系统,可以以序列图像来表达复杂或难以建模物体的系统。通过准备多个视点的图像,实施渲染时显示朝向视点的那张图像;再通过仿射变换和多重纹理的方式实现动态的阴影。经测试该系统可以应用在普通三维场景中,效果逼真;对于形状复杂的三维模型,可以让CPU消耗大幅降低,内存消耗也有所降低。该系统可使实时渲染的三维应用运行的更流畅,可使运行的三维场景更大规模,对于实时渲染应用有较大的现实价值。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种复杂三维物体的显示方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种复杂三维物体的显示方法,其特征在于,所述方法包括:
获取待建模物体的系列图像,并记录视点相对于所述待建模物体的相对坐标;
利用图像处理软件对所述系列图像进行处理,得到图像大小相同的系列图像,并保存为透明图像格式;
利用XML文件记录所述待建模物体的视点到球心矢量与所述系列图像中各图像的对应关系;
根据所述对应关系,以数据结构图的形式构建程序加载模型;
计算待建模物体的球心到视点的渲染矢量,并根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像进行显示。
2.根据权利要求1所述的方法,其特征在于,当场景中具有多个待建模物体时,根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像进行显示,包括:
根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像,利用多线程动态加载策略进行显示。
3.根据权利要求2所述的方法,其特征在于,所述多线程动态加载策略包括:
当所述待建模物体与视点的距离不大于距离阈值时,将所述待建模物体的系列图像全部加载;
当所述待建模物体与视点的距离大于距离阈值时,只加载当前视点方向的对应的图像以及当前视点相邻视点对应的图像。
4.根据权利要求3所述的方法,其特征在于,所述程序加载模型具体为:其中,A为图像的集合,Im gi为第i幅图像,为观察到图像的视点方向,以单位向量形式表示。
5.根据权利要求1-4任一项所述的方法,其特征在于,根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像进行显示,还包括:
利用仿射变换和多重纹理对与所述渲染矢量夹角最小的矢量对应的视点的图像进行动态阴影计算和显示。
6.根据权利要求5所述的方法,其特征在于,利用仿射变换和多重纹理对与所述渲染矢量夹角最小的矢量对应的视点的图像进行动态阴影计算和显示,包括:
获取初始化的阴影贴图,并根据所述待建模物体的球心到光源的矢量确定对应的阴影贴图;
计算阴影承载面顶点的纹理坐标;
根据所述纹理坐标以及所述阴影贴图进行阴影纹理贴图。
7.根据权利要求6所述的方法,其特征在于,所述阴影贴图的获取方式,包括:
对所述系列图像中每一个图像进行去色处理,得到黑白图像;
随所述黑白图像进行二值化处理,并将掩码颜色转化成透明度;
利用高斯模糊方法对二值化处理后的图像的透明度进行模糊处理;
将模糊处理后的图像按照预定比例进行缩小处理;
利用夹紧模式对缩小处理后的图像进行边缘清理得到所述阴影贴图。
8.一种复杂三维物体的显示系统,其特征在于,所述系统包括:
图像获取模块,阴影获取待建模物体的系列图像,并记录视点相对于所述待建模物体的相对坐标;
预处理模块,阴影利用图像处理软件对所述系列图像进行处理,得到图像大小相同的系列图像,并保存为透明图像格式;
对应关系构建模块,阴影利用XML文件记录所述待建模物体的视点到球心矢量与所述系列图像中各图像的对应关系;
程序加载模型构建模块,阴影根据所述对应关系,以数据结构图的形式构建程序加载模型;
渲染显示模块,阴影计算待建模物体的球心到视点的渲染矢量,并根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像进行显示。
9.根据权利要求8所述的系统,其特征在于,渲染显示模块具体为阴影计算待建模物体的球心到视点的渲染矢量,并根据所述程序加载模型选择与所述渲染矢量夹角最小的矢量对应的视点的图像,利用多线程动态加载策略进行显示的模块。
10.根据权利要求8或9所述的系统,其特征在于,还包括:
阴影显示模块,用于利用仿射变换和多重纹理对与所述渲染矢量夹角最小的矢量对应的视点的图像进行动态阴影计算和显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710606522.XA CN107330964B (zh) | 2017-07-24 | 2017-07-24 | 一种复杂三维物体的显示方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710606522.XA CN107330964B (zh) | 2017-07-24 | 2017-07-24 | 一种复杂三维物体的显示方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107330964A true CN107330964A (zh) | 2017-11-07 |
CN107330964B CN107330964B (zh) | 2020-11-13 |
Family
ID=60199872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710606522.XA Active CN107330964B (zh) | 2017-07-24 | 2017-07-24 | 一种复杂三维物体的显示方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107330964B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108010118A (zh) * | 2017-11-28 | 2018-05-08 | 网易(杭州)网络有限公司 | 虚拟对象处理方法、虚拟对象处理装置、介质和计算设备 |
CN108010120A (zh) * | 2017-11-30 | 2018-05-08 | 网易(杭州)网络有限公司 | 静态阴影的显示方法、装置、存储介质、处理器及终端 |
CN108320334A (zh) * | 2018-01-30 | 2018-07-24 | 公安部物证鉴定中心 | 基于点云的三维场景漫游系统的建立方法 |
CN109698951A (zh) * | 2018-12-13 | 2019-04-30 | 潍坊歌尔电子有限公司 | 立体图像重现方法、装置、设备和存储介质 |
CN110084874A (zh) * | 2018-01-24 | 2019-08-02 | 谷歌有限责任公司 | 对于三维模型的图像风格迁移 |
CN110458932A (zh) * | 2018-05-07 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 图像处理方法、装置、系统、存储介质和图像扫描设备 |
CN110660121A (zh) * | 2019-08-22 | 2020-01-07 | 稿定(厦门)科技有限公司 | 三维字体渲染方法、介质、设备及装置 |
CN110717969A (zh) * | 2018-07-13 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 一种阴影生成方法和装置 |
CN111145360A (zh) * | 2019-12-29 | 2020-05-12 | 浙江科技学院 | 一种实现虚拟现实地图漫游的系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102013110A (zh) * | 2010-11-23 | 2011-04-13 | 李建成 | 三维全景图像生成方法及系统 |
CN102236911A (zh) * | 2010-03-17 | 2011-11-09 | 卡西欧计算机株式会社 | 三维建模装置和三维建模方法 |
CN102568026A (zh) * | 2011-12-12 | 2012-07-11 | 浙江大学 | 一种多视点自由立体显示的三维增强现实方法 |
CN103426201A (zh) * | 2013-08-30 | 2013-12-04 | 天津市测绘院 | 基于三维数字城市系统海量模型数据的浏览方法 |
US20140218360A1 (en) * | 2011-09-21 | 2014-08-07 | Dalux Aps | Bim and display of 3d models on client devices |
CN104361624A (zh) * | 2014-11-20 | 2015-02-18 | 南京大学 | 一种计算机三维模型中全局光照的渲染方法 |
CN105976426A (zh) * | 2016-04-27 | 2016-09-28 | 中国电子科技集团公司第二十八研究所 | 一种快速的三维地物模型构建方法 |
CN106910243A (zh) * | 2017-02-09 | 2017-06-30 | 景致三维(江苏)股份有限公司 | 基于转台的自动化数据采集与三维建模的方法及装置 |
-
2017
- 2017-07-24 CN CN201710606522.XA patent/CN107330964B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236911A (zh) * | 2010-03-17 | 2011-11-09 | 卡西欧计算机株式会社 | 三维建模装置和三维建模方法 |
CN102013110A (zh) * | 2010-11-23 | 2011-04-13 | 李建成 | 三维全景图像生成方法及系统 |
US20140218360A1 (en) * | 2011-09-21 | 2014-08-07 | Dalux Aps | Bim and display of 3d models on client devices |
CN102568026A (zh) * | 2011-12-12 | 2012-07-11 | 浙江大学 | 一种多视点自由立体显示的三维增强现实方法 |
CN103426201A (zh) * | 2013-08-30 | 2013-12-04 | 天津市测绘院 | 基于三维数字城市系统海量模型数据的浏览方法 |
CN104361624A (zh) * | 2014-11-20 | 2015-02-18 | 南京大学 | 一种计算机三维模型中全局光照的渲染方法 |
CN105976426A (zh) * | 2016-04-27 | 2016-09-28 | 中国电子科技集团公司第二十八研究所 | 一种快速的三维地物模型构建方法 |
CN106910243A (zh) * | 2017-02-09 | 2017-06-30 | 景致三维(江苏)股份有限公司 | 基于转台的自动化数据采集与三维建模的方法及装置 |
Non-Patent Citations (1)
Title |
---|
罗立宏,谭夏梅: "基于XML的Web3D大场景虚拟现实应用的研究和实现", 《工程图学学报》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108010118A (zh) * | 2017-11-28 | 2018-05-08 | 网易(杭州)网络有限公司 | 虚拟对象处理方法、虚拟对象处理装置、介质和计算设备 |
CN108010118B (zh) * | 2017-11-28 | 2021-11-30 | 杭州易现先进科技有限公司 | 虚拟对象处理方法、虚拟对象处理装置、介质和计算设备 |
CN108010120A (zh) * | 2017-11-30 | 2018-05-08 | 网易(杭州)网络有限公司 | 静态阴影的显示方法、装置、存储介质、处理器及终端 |
CN110084874A (zh) * | 2018-01-24 | 2019-08-02 | 谷歌有限责任公司 | 对于三维模型的图像风格迁移 |
CN110084874B (zh) * | 2018-01-24 | 2022-05-17 | 谷歌有限责任公司 | 对于三维模型的图像风格迁移 |
CN108320334A (zh) * | 2018-01-30 | 2018-07-24 | 公安部物证鉴定中心 | 基于点云的三维场景漫游系统的建立方法 |
CN110458932B (zh) * | 2018-05-07 | 2023-08-22 | 阿里巴巴集团控股有限公司 | 图像处理方法、装置、系统、存储介质和图像扫描设备 |
CN110458932A (zh) * | 2018-05-07 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 图像处理方法、装置、系统、存储介质和图像扫描设备 |
CN110717969A (zh) * | 2018-07-13 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 一种阴影生成方法和装置 |
CN109698951B (zh) * | 2018-12-13 | 2021-08-24 | 歌尔光学科技有限公司 | 立体图像重现方法、装置、设备和存储介质 |
CN109698951A (zh) * | 2018-12-13 | 2019-04-30 | 潍坊歌尔电子有限公司 | 立体图像重现方法、装置、设备和存储介质 |
CN110660121B (zh) * | 2019-08-22 | 2022-04-05 | 稿定(厦门)科技有限公司 | 三维字体渲染方法、介质、设备及装置 |
CN110660121A (zh) * | 2019-08-22 | 2020-01-07 | 稿定(厦门)科技有限公司 | 三维字体渲染方法、介质、设备及装置 |
CN111145360A (zh) * | 2019-12-29 | 2020-05-12 | 浙江科技学院 | 一种实现虚拟现实地图漫游的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107330964B (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107330964A (zh) | 一种复杂三维物体的显示方法及系统 | |
CN108648269B (zh) | 三维建筑物模型的单体化方法和系统 | |
CN112258390B (zh) | 一种高精度微观虚拟学习资源生成方法 | |
CN102096941B (zh) | 虚实融合环境下的光照一致性方法 | |
Zhou et al. | Digital preservation technology for cultural heritage | |
CN108919944A (zh) | 一种基于数字城市模型实现在显示端进行数据无损交互的虚拟漫游方法 | |
CN107452048A (zh) | 全局光照的计算方法及装置 | |
Ganovelli et al. | Introduction to computer graphics: A practical learning approach | |
CN105184843B (zh) | 一种基于OpenSceneGraph的三维动画制作方法 | |
CN115661404A (zh) | 一种多细粒度树木实景参数化建模方法 | |
CN111915710A (zh) | 基于实时渲染技术的建筑渲染方法 | |
CN116051713A (zh) | 渲染方法、电子设备和计算机可读存储介质 | |
CN103617593B (zh) | 三维流体物理动画引擎的实现方法及装置 | |
Zhang et al. | Virtual reality design and realization of interactive garden landscape | |
CN116385619B (zh) | 对象模型渲染方法、装置、计算机设备和存储介质 | |
Boudon et al. | Survey on computer representations of trees for realistic and efficient rendering | |
Yang et al. | Study on the virtual natural landscape walkthrough by using Unity 3D | |
CN116977532A (zh) | 立方体纹理生成方法、装置、设备、存储介质和程序产品 | |
CN108230430A (zh) | 云层遮罩图的处理方法及装置 | |
Jie et al. | Study on the virtual natural landscape walkthrough by using unity 3D | |
CN117274465B (zh) | 匹配真实地理水域环境的水体渲染方法、系统、介质和设备 | |
CN117456074B (zh) | 基于数字孪生仿真的海上风电冲刷坑三维渲染方法和设备 | |
Tousant et al. | The Digital Restitution of Lot 3317: Using Underwater Image Based Modelling to Generate Value in Virtual Heritage Experiences | |
He | Three-dimensional Digital Realization of Cultural Heritage | |
Sahibgareeva | Skeletal Animation of Three-Dimensional Models Using Nanite Technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |