背景技术
绝大多数人所看到的世界都是三维的,而所触及的几乎所有介质,无论是印刷的、照片或影像,都是二维的。如今,随着人们对三维影像兴趣的日趋强烈,最新的立体显示技术可以满足人们对影像和复杂数据深入观察的需求。科技的进步正逐步使我们在显示器上观看的图像和我们用双眼直接看到的事物相一致,这是由于有很多种原因促使人们对三维显示感兴趣。许多专业应用需要具有立体感的视觉,还有一些场合采用三维图像从复杂的虚拟数据中快速而更加精确地抽取信息,并且具有改善交互效率和减小图像信噪比的优势。
在计算机里显示3d图形,就是说在二维平面里显示三维图形。不像现实世界里真实的三维空间,有真实的距离空间。计算机里只是看起来很像真实世界,因此在计算机显示的3d图形,就是让人眼看上就像真的一样。人眼有一个特性就是近大远小,就会形成立体感。计算机屏幕是平面二维的,我们之所以能欣赏到真如实物般的三维图像,是因为显示在计算机屏幕上时色彩灰度的不同而使人眼产生视觉上的错觉,而将二维的计算机屏幕感知为三维图像。基于色彩学的有关知识,三维物体边缘的凸出部分一般显高亮度色,而凹下去的部分由于受光线的遮挡而显暗色。这一认识被广泛应用于网页或其他应用中对按钮、3d线条的绘制。
20世纪80年代,基于CRT(Cathode Ray Tube,阴极射线管)的立体显示器采用了将左右眼图像作为独立帧连续显示的技术。观看时,图像以两种方式之一进行同步,一种方法是佩戴采用快速切换LCD快门的眼镜,来连续适时遮挡左眼和右眼图像。另一种方法是采用CRT产生在相反方向上的圆偏振图像,该图像是通过放在显示器前面的一个响应时间很快的液晶板产生的,并通过比较轻的圆偏振眼镜观看。在这两种方法中,为了避免闪烁,CRT的刷新频率是正常帧速率的两倍,大约是100Hz。但这种立体显示需要大量的通过复杂的三维技术拍摄的影片,当没有这些特殊拍摄片源的时候,用户无法在立体显示设备上享受三维立体效果。
有些人认为,完美的三维显示技术不需要观看者在眼前佩戴任何立体观看工具,而且也有很多公司已经开发出了不需要眼镜的立体显示产品,或称为自动立体显示设备。这些产品一般通过向一只眼睛发送奇数场图像,向另一只眼睛发送偶数场图像的方式将显示分辨率分解成两部分,但这也要求观看者使他们的头保持在最佳观察点的位置。另外,实现三维立体视觉的方法还包括通过两个头戴式显示器来隔离每个眼睛的图像,以及需要用户将头保持一种可以隔离双眼图像姿势的方法。另外也有一种对于大量观众的剧院式立体图像生成技术,它可以通过前后投射系统来投射环幕图像到真实的三维空间,左右图像通过帧序列或帧偏振极性来区分。
但是无论如何,首先,立体显示方案一定要有好的图像源,因为人们已经习惯了在常规的桌面显示器上观看优质图像,也期望立体图像具有同样的画质。此外,左右眼图像必须在没有牺牲图像品质的前提下尽可能地分离。其次,显示系统也必须是令人观看舒适的。人们观看立体三维图像时,希望能够不改变他们通常的观看习惯,例如,不希望佩戴沉重的眼镜等。第三,优秀的立体显示设备一定是容易安装和使用的,而且与计算机、图像卡和软件等的接口简单。使用三维显示技术来观看复杂数据和图像的用户,应该将他们的注意力集中在所观看的内容而不是观看的手段。但目前没有相关的技术公开。
发明内容
本发明要解决的技术问题,在于提供一种三维图像源的制作方法和装置,其是通过改变视点角度来模拟人眼观看角度来分别绘制两个画面制作用于三维立体显示的三维图像源,以供立体显示设备显示为三维立体效果,在不需要佩戴专门的眼镜的条件下使用户在使用用户界面时或者进行三维游戏时享受立体显示效果,大幅提高用户体验。
本发明是这样实现的:
提供一种通过改变视点角度制作三维图像源的方法,包括如下步骤:
步骤10、首先,先在X、Y、Z三维绘图空间中绘制好三维界面图形,并设置一透视视点的位置;
步骤20、然后按步骤30和40设置左眼视图的视点和右眼视图的视点,并得到相应的视图图像;
步骤30、左眼视图的视点的位置是从透视视点出发,以所述三维界面图形的中心点为圆心,以透视视点到三维界面图形的中心点的距离为半径,在俯视XZ平面上,顺时针旋转角度a,所得到左眼视点位置;之后,将三维界面图形投射到左眼视点位置所对应的屏幕上,得到左眼视图图像,然后将左眼视图图像写到存储器中;
步骤40、右眼视图的视点的位置是从透视视点出发,以所述三维界面图形的中心点为圆心,以透视视点到三维界面图形的中心点的距离为半径,在俯视XZ平面上,逆时针旋转角度a,所得到右眼视点位置;之后,将三维界面图形投射到右眼视点位置所对应的屏幕上,得到右眼视图图像,然后将右眼视图图像写到存储器中;
步骤50、就此完成了一帧立体显示所需的左右眼视图图像,重复步骤20~40,直至完成所需的每一帧立体显示所需的左右眼视图图像,以供三维立体显示设备使用;
其中,步骤30和40的顺序不限先后;所述透视视点是画透视图时视线集中于一点的位置;所述旋转角度a的计算公式为:
tan(a)=(D_eye/2)/(L_panel+L_graphic),式中:
D_eye表示正常人双眼的瞳孔距离;
L_panel表示人的面部到屏幕的距离;
L_graphic表示三维界面图形的中心点到屏幕的距离。
本发明还提供一种三维图像实现装置,包括:
基本设置单元,用于在基于XYZ坐标系的X、Y、Z三维绘图空间中绘制好三维界面图形,并设置一透视视点的位置;
左眼视图视点图像生成单元,用于以左眼视图的视点的位置从透视视点出发,以所述三维界面图形的中心点为圆心,以透视视点到三维界面图形的中心点的距离为半径,在俯视XZ平面上,顺时针旋转角度a,所得到左眼视点位置;之后,将三维界面图形投射到左眼视点位置所对应的屏幕上,得到左眼视图图像,然后将左眼视图图像写到存储器中;
右眼视图视点图像生成单元,用于以右眼视图的视点的位置是从透视视点出发,以所述三维界面图形的中心点为圆心,以透视视点到三维界面图形的中心点的距离为半径,在俯视XZ平面上,逆时针旋转角度a,所得到右眼视点位置;之后,将三维界面图形投射到右眼视点位置所对应的屏幕上,得到右眼视图图像,然后将右眼视图图像写到存储器中;
重复绘制单元,用于收集所述左眼视图视点图像生成单元和右眼视图视点图像生成单元分别得到的图像,完成一帧立体显示所需的左右眼视图图像,并且持续收集,直至完成所需的每一帧立体显示所需的左右眼视图图像,以供三维立体显示设备使用;
其中,所述透视视点是画透视图时视线集中于一点的位置;所述旋转角度a的计算公式为:
tan(a)=(D_eye/2)/(L_panel+L_graphic),式中:
D_eye表示正常人双眼的瞳孔距离;
L_panel表示人的面部到屏幕的距离;
L_graphic表示三维界面图形的中心点到屏幕的距离。
本发明具有如下优点:在三维界面图形的基础上,通过分别绘制左右眼视图图像得到立体显示设备所需要的三维图像源,为后续的立体显示提供基础,同时让用户得到立体显示和三维图形界面的震撼享受;可广泛用于各种三维游戏画面、手持设备的用户界面和立体电影等领域。
具体实施方式
如图1和图2所示,以正常三维图形屏幕投射原理为例,首先是在绘图空间中绘制好三维界面图形100,并设置视点位置,然后再从视点位置出发,将三维界面图形100投射到屏幕200上,从而得到需要显示的图像即界面图形300;该投射方法即为常规三维图像透视画法,此处的视点即为所述的透视视点。
再如图3所示,如果是立体显示,则需要模拟人眼看到的效果,图中四条虚线两两所夹的范围即为左、右眼观看该界面图形300的效果。因此要产生立体显示所需的左右眼图像,可以使绘制的三维界面图形100不动,在水平面(即XY面)旋转视点的角度,以实现左右眼的视差效果(视差就是从有一定距离的两个点上观察同一个目标所产生的方向差异;从目标看两个点之间的夹角,叫做这两个点的视差)。
基于上述原理,同时参考图4至图7,本发明的通过改变视点角度制作三维图像源的方法,包括如下步骤:
步骤10、首先,先在X、Y、Z三维绘图空间中绘制好三维界面图形100,并设置一透视视点的位置;
步骤20、然后按步骤30和40设置左眼视图的视点和右眼视图的视点,并得到相应的视图图像;
步骤30、左眼视图的视点的位置是从透视视点出发,以所述三维界面图形100的中心点为圆心,以透视视点到三维界面图形100的中心点的距离为半径,在俯视XZ平面上,顺时针旋转角度a,所得到左眼视点位置;之后,将三维界面图形100投射到左眼视点位置所对应的屏幕上,得到左眼视图图像,然后将左眼视图图像写到存储器中;
步骤40、右眼视图的视点的位置是从透视视点出发,以所述三维界面图形100的中心点为圆心,以透视视点到三维界面图形100的中心点的距离为半径,在俯视XZ平面上,逆时针旋转角度a,所得到右眼视点位置;之后,将三维界面图形100投射到右眼视点位置所对应的屏幕上,得到右眼视图图像,然后将右眼视图图像写到存储器中;
步骤50、就此完成了一帧立体显示所需的左右眼视图图像,重复步骤20~40,直至完成所需的每一帧立体显示所需的左右眼视图图像,以供三维立体显示设备使用;
其中,步骤30和40的顺序不限先后;所述透视视点是画透视图时视线集中于一点的位置;重点参考图7所示,所述旋转角度a的三角正切函数为:
tan(a)=(D_eye/2)/(L_panel+L_graphic),式中:
D_eye表示正常人双眼的瞳孔距离;
L_panel表示人的面部到屏幕的距离;
L_graphic表示三维界面图形的中心点到屏幕的距离;
通过公式计算tan(a)的值后即可通过查表方式得到旋转角度a的值。
最后如图8所示,为显示由本发明方法所得图像源,可设置如下一立体显示装置,该立体显示装置包括均连接于总线的一CPU、一外部存储器、一立体显示控制单元以及一GPU,以及包括一连接于所述立体显示控制单元的立体显示设备。其中,
所述CPU:负责通过总线对触摸屏控制器和显示控制单元和GPU进行控制;
所述GPU:负责根据CPU的控制,通过总线从外部存储器获取所需的材质图像,然后绘制出待显示的图像数据后存储到外部存储器;
所述外部存储器:负责存储用户界面所需的全部材质和图像数据和经过GPU处理后待显示的图像数据;
所述总线:为一个互联的单元,将挂载在总线上的各个单元连接在一起,任一个总线上的单元可以通过总线访问到挂载在总线的其他单元;
所述立体显示控制单元:负责通过总线从外部存储器分别读取左右眼待显示图像数据,并把左右眼图像数据按照立体设备所需要的格式输送给立体显示设备显示;
所述立体显示设备:负责将左右眼图像数据显示,为用户提供立体显示效果。
所述立体显示装置总体硬件的操作流程:
1.当硬件开始上电工作后,CPU将各个单元初始化,使得各个单元开始正常工作;
2.当软件系统启动后,CPU开始控制GPU绘制立体显示使用的三维图形界面;
3.当GPU得到CPU的命令后,开始从外部存储器读取绘制所需的材质图像,然后再绘制三维界面图形;
4.在绘制完三维界面图形后,将三维界面图形投射到二维屏幕时,模拟人的左右眼使用不同角度分别投射出供左眼和右眼观看的用户界面,即左、右眼视图图像;
5.将待显示的左右眼视图图像存储到外部存储器;
6.CPU开始配置立体显示控制单元,命令立体显示控制单元显示GPU绘制的图像;
7.立体显示控制单元得到CPU命令后,从外部存储器读取待显示左右眼视图图像,处理为立体显示设备所需的数据格式后,送往立体显示设备显示;
8.当一帧用户界面的左右眼图像绘制完毕后,CPU会根据用户的控制或者系统需要继续配置GPU绘制下一帧用户界面所需的左右眼用户界面图像。
本发明还提供一种三维图像实现装置,包括:
基本设置单元,用于在基于XYZ坐标系的X、Y、Z三维绘图空间中绘制好三维界面图形,并设置一透视视点的位置;
左眼视图视点图像生成单元,用于以左眼视图的视点的位置从透视视点出发,以所述三维界面图形的中心点为圆心,以透视视点到三维界面图形的中心点的距离为半径,在俯视XZ平面上,顺时针旋转角度a,所得到左眼视点位置;之后,将三维界面图形投射到左眼视点位置所对应的屏幕上,得到左眼视图图像,然后将左眼视图图像写到存储器中;
右眼视图视点图像生成单元,用于以右眼视图的视点的位置是从透视视点出发,以所述三维界面图形的中心点为圆心,以透视视点到三维界面图形的中心点的距离为半径,在俯视XZ平面上,逆时针旋转角度a,所得到右眼视点位置;之后,将三维界面图形投射到右眼视点位置所对应的屏幕上,得到右眼视图图像,然后将右眼视图图像写到存储器中;
重复绘制单元,用于收集所述左眼视图视点图像生成单元和右眼视图视点图像生成单元分别得到的图像,完成一帧立体显示所需的左右眼视图图像,并且持续收集,直至完成所需的每一帧立体显示所需的左右眼视图图像,以供三维立体显示设备使用;
其中,所述透视视点是画透视图时视线集中于一点的位置;所述旋转角度a的计算公式为:
tan(a)=(D_eye/2)/(L_panel+L_graphic),式中:
D_eye表示正常人双眼的瞳孔距离;
L_panel表示人的面部到屏幕的距离;
L_graphic表示三维界面图形的中心点到屏幕的距离。
综上所述,本发明是在三维界面图形的基础上,通过分别绘制左右眼视图图像得到立体显示设备所需要的三维图像源,为后续的立体显示提供基础,同时让用户得到立体显示和三维图形界面的震撼享受;可广泛用于各种三维游戏画面、手持设备的用户界面和立体电影等领域。