双目三维图形渲染方法及相关系统的制作方法_2

文档序号:9471128阅读:来源:国知局
顶点数据300称为对象坐标,首先会经过 模型视图矩阵301阶段的变换,把对象坐标变换成视点坐标,视点坐标的原点是摄像机的 位置。视点坐标经过投影矩阵302阶段的变换,包括透视、位移和缩放变换三步,将坐标控 件变换为[-1,1]之间的立方体,此时得到的坐标称为裁剪坐标,坐标的z分量称为伪深度。 在投影矩阵阶段的变换,还会进行平面着色或者平滑着色处理,若增加了光照和纹理,还会 实现顶点间像素值的计算。接着是裁剪303阶段,裁剪掉非[-1,1]立方体区域内的图元, 只有在[-1,1]立体区域内的图元对用户是可见的。对可见片断的四元齐次坐标完成透视 除法304操作,得到三元的归一化的设备坐标;再经过窗口变换305转换为屏幕上的坐标。 为了提高对纹理数据的处理效率,例如纹理存储格式在内存与GPU之间的转换,GPU提供了 专用的数据通道。通过GPU渲染管线,三维信息可以实时、高效地转化为二维图像,存储在 GPU中的帧缓冲区中,用于显示器的显示。
[0058] 本实施例所涉及的渲染中的投影变换过程可以采用实施例1的方法,渲染中涉及 的其它过程如模型视图变换、以及后续的合成、显示等处理可以参考常用的相关技术实现, 此处不作详述。
[0059] [实施例3]
[0060]依据本发明的一种实施方式,提供一种立体影像重现方法,包括:
[0061] 创建步骤:创建用于分别存放不同视点的图像数据的至少两个视帧缓冲区;
[0062] 渲染步骤:接收至少两种视点的包含三维图形的数据,对每个视点的数据进行渲 染,该渲染为采用实施例1的双目三维图形渲染方法,将渲染结果存入对应的视帧缓冲区; [0063] 合成步骤:将至少两个视帧缓冲区中的渲染结果进行合成得到立体帧,输出立体 帧。
[0064] 以左视点和右视点两种视点为例,如图5所示,本实施例的立体影像重现方法。首 先读取3D显示器的属性信息,包括显示器的长、宽、分辨率、类型(比如左右并列或者上下 并列等)等信息;初始化处理器内存中左右视点的缓冲区,把两个缓冲区清空;设置GPU渲 染管线中左视点,把两个缓冲区清空;设置GPU渲染管线中左视点的投影矩阵和模型视图 矩阵;渲染整个场景,将结果存储进左缓冲区中;设置GPU渲染管线中右视点的投影矩阵和 模型视图矩阵;渲染整个场景,将渲染结果存储进右缓冲区中;根据3D显示器类型,把左右 视帧进行格式转换或合成,再拷贝到帧缓冲区中;最后,双目3D视帧会呈现到3D显示器上。 [0065] 本实施例所涉及的渲染中的投影变换过程可以采用实施例1的方法,渲染中涉及 的其它过程如模型视图变换、以及后续的合成、显示等处理可以参考常用的相关技术实现, 此处不作详述。
[0066] 基于上述方法实施例,本发明还提供一种立体影像重现系统,包括:
[0067] 创建模块,用于创建用于分别存放不同视点的图像数据的至少两个视帧缓冲区; [0068] 渲染模块,用于接收至少两种视点的包含三维图形的数据,对每个视点的数据进 行渲染,所述渲染为采用前述实施例的双目三维图形渲染方法,将渲染结果存入对应的视 帧缓冲区;
[0069] 合成模块,用于将至少两个视帧缓冲区中的渲染结果进行合成得到立体帧,输出 立体帧。
[0070] 各模块的实现参考前述实施例,此处不作重述。
[0071] 综上,本发明涉及双目3D图形渲染方法及其系统,其基于GPU渲染管线和双目视 差原理,提供一种兼容OpenGL的双目3D渲染方法和系统,能在快门、偏振、裸眼等方式的3D 显示器上显示出立体3D效果,同时兼容传统图形学中的特效渲染算法,如:粒子系统、纹理 着色、阴影等。采用本方法得到的双目3D图形和3D视频一样可呈现具有景深和层次感的 立体3D世界。
[0072] 本发明通过3D显示器呈现出立体3D效果,解决了GPU硬件不支持OpenGL双目3D 渲染API的情况下如何渲染出立体3D效果的问题。所采用的方法是,基于现有的GPU渲染 管线,充分地利用该管线硬件加速的特性,提高处理效率,兼容OpenGL的大部分应用编程 接口,使用已有的OpenGL应用编程接口实时渲染立体3D场景。基于双目视差原理,根据左 右眼的视差和物体的深度,产生不同的左右视帧,最后根据3D显示器的类型,合成一个双 目3D视帧。
[0073] 针对不支持双目3D渲染的GPU(即没提供立体渲染左右视帧缓冲区)硬件平台, 本发明提供的双目3D渲染方法和系统中,需要左右两个视帧(多视点的情况下需要多个视 帧),可以在处理器内存中创建两个视帧缓冲区,一个用于存储左视图,另一个用于存储右 视图;再根据3D显示器的立体3D视帧格式进行合成,本方法还兼容传统图形学中的大部分 特效渲染算法。
[0074] 由顶点、纹理等构造的场景只有一个,可以分两次渲染相同的场景数据,每次渲染 时调整模型视图矩阵和投影矩阵,将两次渲染的结果分别保存进左右视帧缓冲区内,即把 GPU帧缓冲区中的数据拷贝到处理器内存中的视帧缓冲区。在得到左右视帧的图像数据后, 根据3D显示器的类型,将左右视帧合成双目3D视帧;最后,将3D视帧拷贝到GPU上的帧缓 冲区中,并在3D显示器上呈现。所涉及的渲染过程包括:设置左视点的模型视图矩阵和投 影矩阵,渲染场景数据,将帧缓冲区中的数据拷贝到处理器内存的左视帧缓冲区中;设置右 视点的模型视图矩阵和投影矩阵,渲染场景数据,将帧缓冲区中的数据拷贝到处理器内存 的右视帧缓冲区中;根据3D显示器的类型,将两帧数据合成双目3D视帧,发送到GPU上的 帧缓冲区中;最后,渲染到3D显示器上。
[0075] 本领域技术人员可以理解,上述实施方式中各种方法的全部或部分步骤可以通过 程序来指令相关硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包 括:只读存储器、随机存储器、磁盘或光盘等。
[0076] 以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发 明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱 离本发明构思的前提下,还可以做出若干简单推演或替换。
【主权项】
1. 一种双目三维图形渲染方法,包括投影变换步骤,其特征在于,所述投影变换步骤包 括:在近平面和远平面之间增加中平面作为投影面,将近平面与远平面之间的图元投影到 中平面上。2. 如权利要求1所述的双目三维图形渲染方法,其特征在于,所述投影变换步骤采用 的投影矩阵为:其中,Mpt表示投影矩阵,M表示中平面与原点的距离,N表示近平面与原点的距离,F表示远平面与原点的距离,=-right, 0表示视角的大小,s表示视点由原点向水平方向上进行的位移量。3. -种立体影像重现方法,其特征在于,包括: 创建步骤:创建用于分别存放不同视点的图像数据的至少两个视帧缓冲区; 渲染步骤:接收至少两种视点的包含三维图形的数据,对每个视点的数据进行渲染,所 述渲染包括使用如权利要求1或2所述的双目三维图形渲染方法,将渲染结果存入对应的 视帧缓冲区; 合成步骤:将所述至少两个视帧缓冲区中的渲染结果进行合成得到立体帧,输出所述 立体帧。4. 如权利要求3所述的立体影像重现方法,其特征在于, 所述创建步骤包括:在内存中创建并初始化左视帧缓冲区和右视帧缓冲区; 所述渲染步骤包括:接收包含三维图形的左视帧的数据,对左视帧的数据进行渲染,将 渲染结果存入所述左视帧缓冲区;接收包含三维图形的右视帧的数据,对右视帧的数据进 行渲染,将渲染结果存入所述右视帧缓冲区; 所述合成步骤包括:将所述左视帧缓冲区中的渲染结果和所述右视帧缓冲区中的渲染 结果进行拼接得到立体帧,将所述立体帧存入图形处理器的帧缓冲区。5. 如权利要求3所述的立体影像重现方法,其特征在于,还包括显示步骤,显示所述立 体帧。6. -种立体影像重现系统,其特征在于,包括: 创建模块,用于创建用于分别存放不同视点的图像数据的至少两个视帧缓冲区; 渲染模块,用于接收至少两种视点的包含三维图形的数据,对每个视点的数据进行渲 染,所述渲染包括使用如权利要求1或2所述的双目三维图形渲染方法,将渲染结果存入对 应的视帧缓冲区; 合成模块,用于将所述至少两个视帧缓冲区中的渲染结果进行合成得到立体帧,输出 所述立体帧。7. 如权利要求6所述的立体影像重现系统,其特征在于,还包括显示模块,用于显示所 述立体帧。8. -种双目三维图形渲染与显示系统,其特征在于,包括: 存储设备,用于保存包含三维图形的数据文件; 处理器,用于对所述存储设备中的数据文件进行解析处理; 处理器内存,用于提供分别存放不同视点的数据的至少两个视帧缓冲区; 图形处理器,用于对所述处理器处理后的数据文件实现三维图形渲染,所述渲染包括 使用如权利要求1或2所述的双目三维图形渲染方法,生成不同视点的视帧; 所述处理器内存还用于存放所述图形处理器生成的不同视点的视帧; 所述处理器还用于对所述不同视点的视帧进行合成,得到立体帧; 三维显示器,用于显示所述立体帧。
【专利摘要】本发明涉及双目三维图形渲染方法及相关系统。方法包括投影变换步骤,所述投影变换步骤包括:在近平面和远平面之间增加中平面作为投影面,将近平面与远平面之间的图元投影到中平面上。本发明通过增加的中平面,将近平面与远平面之间的图元投影到中平面上,则近平面与中平面之间的图元会有出屏的立体效果,中平面与远平面之间的图元会有入屏的立体效果;从而,使得在3D显示设备中使用现有的渲染管线时不需要特别的硬件,就可以渲染“出屏”和“入屏”效果。
【IPC分类】G06F9/50, G06T15/00, G06F9/38
【公开号】CN105224288
【申请号】CN201410302221
【发明人】王文敏, 张建龙, 王荣刚, 董胜富, 王振宇, 李英, 高文
【申请人】北京大学深圳研究生院
【公开日】2016年1月6日
【申请日】2014年6月27日
【公告号】WO2015196791A1
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1