CN110335200A - 一种虚拟现实反畸变方法、装置以及相关设备 - Google Patents
一种虚拟现实反畸变方法、装置以及相关设备 Download PDFInfo
- Publication number
- CN110335200A CN110335200A CN201810273751.9A CN201810273751A CN110335200A CN 110335200 A CN110335200 A CN 110335200A CN 201810273751 A CN201810273751 A CN 201810273751A CN 110335200 A CN110335200 A CN 110335200A
- Authority
- CN
- China
- Prior art keywords
- data
- vertex
- distortion
- image
- transformation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 238000009877 rendering Methods 0.000 claims abstract description 134
- 238000012545 processing Methods 0.000 claims abstract description 79
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 41
- 230000009466 transformation Effects 0.000 claims description 92
- 238000005516 engineering process Methods 0.000 claims description 19
- 230000006854 communication Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 9
- 239000011521 glass Substances 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 239000007787 solid Substances 0.000 claims description 2
- 238000013499 data model Methods 0.000 claims 3
- 230000001046 anti-mould Effects 0.000 claims 1
- 239000002546 antimould Substances 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 36
- 238000004364 calculation method Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 17
- 238000011161 development Methods 0.000 description 11
- 241000226585 Antennaria plantaginifolia Species 0.000 description 8
- 238000012360 testing method Methods 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 7
- 230000004075 alteration Effects 0.000 description 4
- 238000007654 immersion Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012905 input function Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 210000000697 sensory organ Anatomy 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/60—Rotation of a whole image or part thereof
- G06T3/608—Skewing or deskewing, e.g. by two-pass or three-pass rotation
Abstract
本发明实施例提供了一种虚拟现实反畸变方法,该方法包括:读取待渲染的图像的顶点数据;对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对所述顶点数据作反畸变处理得到图像帧数据,根据所述图像帧数据输出图像。该方法提出了将反畸变处理融合到一次图像渲染中,从而使得经过一次图像渲染后得到的图像帧数据已经是经过了反畸变的图像帧数据,相应地根据该图像帧数据输出的图像为具有反畸变效果的图像,因此,利用该方法能够节省图形处理器的计算量,提高虚拟现实设备的显示帧率。另外,本申请实施例对应的虚拟现实反畸变装置及其相关设备,能够达到相同的技术效果。
Description
技术领域
本发明涉及虚拟现实技术领域,特别涉及虚拟现实反畸变技术。
背景技术
虚拟现实(Vitual Reality,VR)技术是指一种利用电脑或者其他智能计算设备模拟产生一个三维空间的虚拟世界的技术,能够提供给用户关于视觉、听觉、触觉等感官的模拟环境,让用户如同身临其境一般。
为了让用户在视觉上拥有真实的沉浸感,VR设备就要尽可能的覆盖人眼的视觉范围,因此就需要在VR设备里装一个特定的球面弧度镜片,即VR镜片。但VR镜片将传统的图像投射到人的眼中时,图像是扭曲的,人眼就没有办法获得虚拟空间中的定位,即在虚拟现实中你的周边都是哈哈镜的空间,四周是扭曲的图像,这一现象称之为VR镜片畸变。
但对于VR设备而言,出现VR镜片畸变是不可避免的,而且随着视场角的增大,边缘图像畸变会更加明显。由于畸变的存在,导致VR设备的画面效果根本无法正常观看。
发明内容
基于此,本发明提供了一种虚拟现实反畸变方法,该方法将反畸变处理融合到图像渲染过程中,即在对图像进行图像渲染时穿插反畸变处理,从而使得经过一次渲染所得到的图像就已经是经过反畸变处理的图像,该图像能够直接渲染到屏幕,从而解决VR镜片畸变导致的画面效果不好的问题。
有鉴于此,本发明第一方面提供了一种VR反畸变的方法,所述方法包括:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对所述顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
本发明第二方面提供了一种VR反畸变的装置,所述装置包括:
读取模块,用于读取待渲染的图像的顶点数据;
渲染及反畸变模块,用于对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据;
输出模块,用于根据所述图像帧数据输出图像。
本发明第三方面提供了一种智能终端,所述智能终端包括:
存储器和处理器;
所述存储器用于存储程序和虚拟现实应用;
所述处理器用于在运行所述虚拟现实应用时,读取所述存储器中的所述程序,所述程序用于:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
本发明第四方面提供了一种VR显示系统,所述VR显示系统包括:
智能终端和虚拟现实眼镜;所述虚拟现实眼镜与所述智能手机之间采用近场通信技术进行通信;
所述智能终端中装载有虚拟现实应用,所述智能终端在运行所述虚拟现实应用时,执行以下程序:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
本发明第五方面提供了一种VR设备,所述VR设备为VR一体机,包括:
存储器、处理器和显示单元;
所述存储器用于存储程序和虚拟现实应用;
所述处理器用于在运行所述虚拟现实应用时,读取所述存储器中的所述程序,所述程序用于:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
本发明第六方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的方法。
本发明第七方面提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行上述第一方面所述的方法。
从上述技术方案可以看出,本发明实施例具有以下优点:
利用本发明实施例提供的虚拟现实反畸变方法,在图像渲染的过程中穿插对图像的反畸变处理,即将图像的反畸变处理融合到传统的图像渲染过程中,从而使得经过一次图像渲染后得到的图像帧数据就已经是反畸变处理后的图像帧数据,根据该图像帧数据输出的图像即为具有反畸变效果的图像;具体的,先读取待渲染的图像的顶点数据;然后对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对所述顶点数据作反畸变处理得到图像帧数据,根据该图像帧数据输出图像。基于此,用户通过VR镜片观看到的图像就是正常图像,从而解决了VR镜片畸变现象导致的图像扭曲的问题;另外,该方法将反畸变处理融合到图像渲染过程中,从而无需额外的缓存,无需二次渲染,降低了图形处理器的计算量,提高了虚拟现实设备的显示帧率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明应用场景中的VR镜片畸变现象示意图;
图2为本发明应用场景中的一种VR反畸变方法的实现框架示意图;
图3为本发明实施例中的VR反畸变处理方法在实际中的场景示例图;
图4为本发明实施例中的一种VR反畸变方法的流程示意图;
图5为针对图4中步骤402的一种实现方式的流程示意图;
图6为本发明实施例中的一种VR反畸变装置的结构示意图;
图7为本发明实施例中的另一种VR反畸变装置的结构示意图;
图8为本发明实施例中的一种智能终端的架构示意图;
图9为本发明实施例中的一种VR显示系统的架构示意图;
图10为本发明实施例中的一种VR设备的架构示意图;
图11为本发明实施例中的智能终端的硬件结构示意图;
图12为本发明实施例中的VR设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了让用户通过VR设备在视觉上拥有更好的沉浸感,VR设备就要尽可能的覆盖人眼的视觉范围,增加视场角;基于此,VR设备需要配置有VR镜片,通过VR镜片给用户带来良好的沉浸感,但这是有代价的,由于VR镜片为球面弧度镜片,而透镜光学特性会引起畸变,造成投射到人眼的图像会扭曲畸变,越大的视场角,就会有越大的图像畸变,而这一现象被称为VR镜片畸变。正是由于VR镜片畸变的存在,导致用户使用VR设备观看正常图像时,实际所观看到的画面是扭曲的,特别是在VR镜片畸变严重时,用户根本无法正常观看。
下面结合图1对上述VR镜片畸变现象进行示例说明。图1中的图像101是通过显示屏显示的正常的网格图;用户使用VR设备观看图像101时,VR设备上配置的球面弧度镜片,即VR镜片,会对所观看的图像101的各部分以不同的放大率进行放大,具体的,VR镜片对图像101中间部分以较大的放大率进行放大,对图像边缘部分以较小的放大率进行放大,因而,会导致用户透过该VR镜片实际观看到的图像发生枕形畸变,如图1中的图像102所示。通过图1可知,通过VR设备观看图像时,会由于VR镜片畸变作用导致图像发生扭曲变形,视觉效果非常差。
为了使用户使用VR设备时能够观看到正常的图像,以保证画面质量,则在VR资源的图像在屏幕上显示之前,先主动对VR资源的图像作反向失真,通过这种主动的反向失真处理,把VR镜片造成的失真抵消掉。这个主动进行的反向失真处理,被称为反畸变处理。可以理解的是,反畸变处理就是与VR镜片畸变相反的失真处理。具体的,当有VR资源的图像需要显示时,则先利用反畸变处理方法对图像进行反畸变处理,然后在显示屏上显示经过反畸变处理图像,则用户使用VR设备观看时,由于VR镜片畸变作用正好与反畸变作用相互抵消,因此用户就能够观看到正常图像。
因此,对VR资源的图像作反畸变处理过程是决定VR设备显示优质画面的重要环节,本发明正是针对这一重要环节提出了对应的反畸变解决方案,下面结合图2对本发明实施例提供的VR反畸变方法的核心技术思路进行介绍,图2为该VR反畸变方法的核心技术框架图。
如图2所示,该VR反畸变方法的核心技术思路是,将反畸变处理操作穿插在图像渲染过程中,即在传统的图像渲染过程中融合有反畸变处理操作,则在对待处理图像进行图像渲染处理时,同时执行反畸变处理,从而使得一次图像渲染后得到的图像帧数据,是既经过图像渲染处理又经过反畸变处理的数据,无需再经过二次渲染,这样,VR设备根据该图像帧数据输出的图像即为具有反畸变效果的图像,用户通过VR设备观看该图像时,VR镜片畸变作用就能够与该反畸变处理的作用相互抵消,从而使得用户能够看到正常图像。
本发明提供的VR反畸变方法将反畸变处理穿插在图像渲染过程中执行,则经过一次图像渲染后的图像帧数据就是经过反畸变的图像帧数据,根据该图像帧数据输出的图像相应地具有反畸变效果,这样就能够减少一次渲染操作,从而减少GPU的计算量,提高了VR设备的总体工作性能。
应理解,本发明提供的VR反畸变方法可以应用于VR显示系统,参见图3,图3为本申请实施例提供的VR显示系统架构图,图3中包括智能终端301和VR设备302。其中,智能终端301为能够播放VR资源,其用于实现本发明实施例提供的VR反畸变方法;从硬件实现角度来讲,该智能终端301可以为智能手机、平板电脑等设备;VR设备302至少包括VR镜片,用户使用该VR设备302能够通过VR镜片观看智能终端301播放的VR资源的设备,例如,VR设备可以为VR眼镜,VR头盔等设备。
图3中的图像303为VR资源的正常网格图,为了保证用户使用VR设备仍可观看到如图像303所示的正常网格图,在显示之前智能终端301就需要对图像303在渲染过程中同时进行VR反畸变处理得到图像304;进而,在智能终端301的显示屏上显示图像304,用户使用VR设备302观看图像304时,由于VR设备302上配置的VR镜片发生镜片畸变作用,即会对图像304作枕形畸变,而该枕形畸变作用正好就抵消了预先的反畸变作用,即,图像304通过枕形畸变变回图像303,如此,用户使用VR设备实际观看到的图像为正常图像,如图3中的图像305所示,可以理解的是,图像305与图像303基本相同。
应理解,上述图3所示场景仅为一种示例,本发明实施例提供的VR反畸变方法也可以应用于包含VR一体机的硬件场景中,或者也可以应用于包含其他需要作VR反畸变处理的硬件场景中。
接下来,结合图4对本发明实施例提供的VR反畸变方法进行介绍。
参见图4,图4为本发明实施例提供的VR反畸变方法的流程示意图。需要说明的是,为了便于描述,下述实施例中以智能终端作为执行主体进行描述,应理解,该VR反畸变方法的执行主体并不限于智能终端,该VR反畸变方法适应于其他需要进行反畸变处理的VR设备中,如VR一体机等等。如图4所示,该VR反畸变方法包括以下步骤:
步骤401:读取待渲染的图像的顶点数据。
智能终端需要确定待渲染的图像,然后读取待渲染的图像的顶点数据;在具体实现时,智能终端可以响应于用户触发的VR资源查看操作,确定待渲染的图像,然后读取对应的顶点数据;例如,用户使用智能终端启用VR应用,在VR应用中选择自己感兴趣的VR资源,如点击查看某个VR电影,语音控制进入某个VR游戏等等;再例如,用户使用智能终端通过浏览器查看VR资源,选择自己感兴趣的VR资源,如点击查看某个VR视频等等。则智能终端响应于用户触发的相关查看操作,确定用户感兴趣的图像,作为待渲染的图像,进而智能终端可以在本地读取相关的待渲染的图像;若本地没有存储相关的待渲染的图像时,智能终端也可以通过网络通信,向存储有VR资源的服务器发送读取请求,以请求待渲染的图像,接收服务器反馈的待渲染的图像对应的数据,进而读取相关的顶点数据。其中,具有VR资源的服务器可以是为VR应用提供数据支持的服务器,可以是应用服务器,也可以是Web服务器。
在具体实现时,智能终端也可以无需在响应于用户实施操作之后再执行步骤401,而是自发执行步骤401,这样,智能终端可以预先对VR资源的图像作反畸变处理,以为后续用户观看做好数据准备。具体的,智能终端在运行VR应用时,可以按照预设的获取周期,主动地从智能终端本地获取待渲染的图像,或者与服务器进行网络通信,主动请求获取待渲染的图像。这里的待渲染的图像可以是VR应用所支持的任意资源对应的图像,智能终端可以按照VR资源的优先级来确定待渲染的图像,例如,可以优先选择热门的VR资源进行反畸变处理。
当然,智能终端也可以采用其他方式来实现步骤401,在本发明实施例中,对此不作具体限定。
需要说明的是,在本发明实施例中,待渲染的图像具体是指待渲染的VR资源所包含的图像;其中,VR资源如上文所述,可以是VR游戏、VR视频、VR电影等VR形式的数据资源。
智能终端在获取到待渲染的图像后,需要对该图像进行渲染处理,但渲染处理是以图像中的顶点数据为单位进行处理的,因此,需要从待渲染的图像中读取顶点数据,其中,顶点数据是指待渲染图像上的像素点的相关数据,该顶点数据包括顶点具有的属性信息,具体包括:顶点位置(空间中的位置)、顶点的颜色、顶点的纹理坐标、法线等等。
步骤402:对上述顶点数据进行图像渲染,在该图像渲染的过程中采用反畸变算法对上述顶点数据做反畸变处理得到图像帧数据。
步骤403:根据上述图像帧数据输出图像。
智能终端获取到待渲染图像的顶点数据之后,开始对顶点数据进行图像渲染处理,并在进行图像渲染处理的过程中,插入反畸变算法一并对顶点数据进行反畸变处理,将最终经过反畸变和图像渲染处理后得到的数据作为图像帧数据。根据该图像帧数据输出图像,所输出的图像即为具有反畸变效果的图像。
在本实施例中,智能终端基于图形图像程序开发接口技术来实现对待渲染的图像进行图像渲染处理,但在该图像渲染过程中特别穿插了反畸变处理操作,从而使得经过一次渲染处理就能够得到具有反畸变效果的图像帧数据,该图像帧数据能够直接渲染到屏幕。
本实施例在具体实现时,智能终端可以基于OpenGL(Open Graphics Library)图形图像程序开发接口技术实现对待渲染的图像进行图像渲染处理,当然,智能终端也可以基于其他类型的图形图像程序开发接口技术,例如D3D(Direct 3D)、Vulkan或者Metal等接口技术实现对待渲染的图像进行图像渲染处理。具体的,智能终端在基于图形图像程序开发接口技术来实现时,针对顶点数据进行渲染处理,并在此渲染处理的过程中对顶点数据进行反畸变操作,因此,本实施例对所采用调用的图形图像程序开发接口技术不作限定。
通过本发明实施例提供的VR反畸变方法,对图像进行渲染的同时一并进行反畸变处理得到图像帧数据,根据图像帧数据输出的图像即具备反畸变效果。基于此,智能终端就可以直接利用该图像帧数据,播放该图像帧数据以显示图像画面;如此,用户使用VR设备观看该图像画面时,VR镜片畸变作用就能够与该图像帧数据的反畸变效果抵消,从而使得用户观看到正常画面。
在具体实现时,由于VR镜片所产生的畸变一般为枕形畸变,VR镜片枕形畸变的特点是,对图像中间部分的放大率小于边缘部分的放大率,进而导致图像发生扭曲畸变。因此,本发明实施例提供的VR反畸变方法中采用的反畸变算法为桶形畸变算法,桶形畸变的特点是,对图像中间部分的放大率大于边缘部分的放大率;因此,桶形畸变的畸变效果正好与枕形畸变的畸变效果是完全相反的,基于此,采用桶形畸变对图像作反畸变处理,正好能够抵消掉VR镜片枕形畸变的畸变效果,从而使得用户通过VR镜片观看经过桶形畸变处理后的图像时,所看到的真实图像为正常图像。
在具体实现时,为了给用户提供更强的沉浸式虚拟现实体验,智能终端在渲染一幅图像时,具体针对左右眼视角分别渲染从而得到左右眼视角各自对应的图像,即上文中的图像帧数据具体包括左屏显示数据和右屏显示数据,左屏显示数据为从左眼视角出发对图像的顶点数据进行图像渲染处理得到的图像帧数据,右屏显示数据为从右眼视角出发对图像的顶点数据进行图像渲染处理得到的图像帧数据,其中,左屏显示数据和右屏显示数据具有一定的像差。基于此,智能终端根据该左屏显示数据输出左眼视角的图像,并且,根据该右屏显示数据输出右眼视角的图像。则用户利用VR设备能够观看到左眼视角的图像和右眼视角的图像,这两个图像具有一定的像差,从而能够呈现出三维立体效果。
本发明实施例提供的VR反畸变方法,将反畸变处理穿插在图像渲染过程中执行,即将图像渲染与反畸变处理同步进行,以在图像渲染过程中完成对待渲染图像的顶点数据的反畸变处理,从而在图像渲染完成后得到的图像帧数据就具有反畸变效果,相应地根据该图像帧数据输出的图像也具有反畸变效果。本发明实施例提供的VR反畸变方法无需进行二次渲染,减少了GPU资源的消耗,从而减少电能消耗,提高VR设备工作性能。
如上文所述,智能终端基于图形图像程序开发接口技术,在图像渲染过程中穿插反畸变处理,从而达到通过一次渲染处理就能够得到反畸变处理后的图像帧数据,根据该图像帧数据输出的图像即为具有反畸变效果的图像。下文将以基于OpenGL技术为例,对本申请提供的方法进行示例性说明。应理解,智能终端也可以基于D3D(Direct)、Vulkan和Metal等其他开发接口进行图像渲染,当基于其他开发接口进行图像渲染时,图像渲染的具体实现过程与基于OpenGL开发接口进行图像渲染的具体实现过程相类似。
当基于OpenGL开发接口技术进行图像渲染时,步骤402的具体实现可参见图5,图5为基于OpenGL开发接口技术对待渲染的图像的顶点数据进行图像渲染及反畸变处理的流程示意图,该图像渲染方法包括以下步骤:
步骤501:将读取的顶点数据传入可编程渲染管线。
首先对OpenGL开发接口技术作简单介绍,OpenGL是图像技术中最为广泛使用的2D/3D图像API,即是指定义了跨编程语言、跨平台的编程接口规格的专业的图形图像程序开发接口。其是与硬件无关的软件接口,其是一个开放的三维图像软件包,可以独立于窗口系统和操作系统,以其为基础开放的应用程序可以十分方便的在各种平台间移植,例如可以在不同的平台如Windows、Unix、Linux、OS之间进行移植,因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。
大部分OpenGL实现都有相似的操作顺序,这一系列相关的处理节点被称为OpenGL图像渲染管线,其被认为是实时图像渲染的核心,主要功能是由给定的虚拟摄像机、三维物体、灯源、光照模型、纹理贴图或其他来产生或渲染一个二维图像。
为了实现本发明的反畸变方法,本发明采用可编程渲染管线,对可编程渲染管线中的某些环节进行编程,从而控制在渲染过程中一并进行反畸变处理。在具体实现时,可编程渲染管线进行渲染的过程可以包括以下环节:顶点数据>顶点着色器>图元装配和光栅化>片断着色器>光栅操作。
本发明实施例提供的VR反畸变方法在实现过程中具体涉及的环节为:顶点数据>顶点着色器,该环节涉及GPU上的可编程顶点处理器组件(Programmable VertexProcessor),又称为顶点着色器,该顶点着色器为GPU的一个硬件单元,其用于运行顶点着色程序,以实现对顶点数据的处理。
以上是对本发明所采用的OpenGL开发接口的介绍。
接下来,对本发明实施例的具体实现步骤501进行说明。
智能终端读取到图像的顶点数据之后,其中,顶点数据可以理解为是图像的图元信息,将顶点数据输入至可编程渲染管线的功能组件中,可编程渲染管线就是按照流水线的方式通过各个功能组件实现各自的功能以完成图像渲染。
当然,需要说明的是,本发明实施例对可编程渲染管线的具体实现形式不作限定,可以采用上文列举的形式,也可以采用其他形式,例如,在某些实现场景下,该可编程渲染管线中所包含的环节也可以作适应性删减或改动。只要该可编程渲染管线中的顶点着色器采用上述实现方式,能够具有顶点变换以及反畸变处理功能即可。
步骤502:调用该可编程渲染管线对顶点数据进行渲染处理得到图像帧数据;其中,可编程渲染管线中包括预编程的顶点着色器;顶点着色器用于在对顶点数据进行顶点变换的过程中,采用反畸变算法对顶点数据进行反畸变处理。
如上文所述,在本发明实施例中,可编程渲染管线除了包含顶点处理之前之外,还可以包括其他功能组件,各个功能组件实现各自对应的功能,最终实现对图像的渲染。
在具体实现时,智能终端中装载有VR应用,通过VR应用的应用程序驱动GPU中的可编程渲染管线,又或者,智能终端中装载有浏览器,通过浏览器的搜索程序驱动GPU中的可编程渲染管线。具体的,在驱动GPU中的可编程渲染管线时,需要控制着色器的参数以及渲染状态。通过顶点着色器调用对应的顶点着色程序,运行该顶点着色程序以实现其功能。其中,该顶点着色程序用于实现对顶点数据进行顶点变换的过程中,采用反畸变算法对顶点数据进行反畸变处理。即,该顶点着色程序是根据传统的顶点变换的处理代码和反畸变算法的处理代码组合生成的。
进一步地,该顶点着色器用于对顶点数据进行模型变换、视图变换、投影变换(Model-View-Projection,MVP)以及基于反畸变算法的反畸变变换,具体对顶点数据进行模型变换、视图变换以及投影变换时,可以采用左乘变换矩阵的数学方式,将待渲染的图像的顶点坐标转换为二维像素点坐标,更重要的是,在进行变换过程中插入对顶点数据的反畸变处理,该反畸变处理也可以通过左乘反畸变矩阵的数学方式来实现。
进一步地,关于如何在顶点着色器中对顶点数据进行顶点变换和反畸变处理,本发明实施例提供了几种可选的实现方式。
第一种可选的实现方式是,先调用顶点着色器对顶点数据做模型变换和视图变换得到模型视图变换数据;再调用顶点着色器采用反畸变算法对模型视图变换数据做反畸变变换得到反畸变的模型视图变换数据;最后调用顶点着色器对反畸变的模型视图变换数据做投影变换得到反畸变的顶点变换数据。
本实现方式提供的VR反畸变方法将反畸变穿插在视图变换和投影变换之间执行,使得可编程渲染管线中的顶点着色器在对顶点数据作处理时,能够实现传统的顶点变换以及反畸变处理的双重作用。
第二种可选的实现方式是,先调用顶点着色器对顶点数据进行模型变换得到模型变换数据;再调用顶点着色器采用反畸变算法对模型变换数据进行反畸变变换得到反畸变的模型变换数据;最后调用顶点着色器对反畸变的模型变换数据做视图变换和投影变换得到反畸变的顶点变换数据。
本实现方式提供的VR反畸变方法将反畸变操作穿插在模型变换和视图变换之间,使得可编程渲染管线中的顶点着色器在对顶点数据作处理时,能够实现传统的顶点变换以及反畸变处理的双重作用。
第三种可选的实现方式,先调用顶点着色器对顶点数据做模型变换、视图变换和投影变换,得到顶点变换数据;再调用顶点着色器采用反畸变算法对顶点变换数据进行反畸变变换,得到反畸变的顶点变换数据。
本实现方式提供的VR反畸变方法将反畸变操作设置在投影变换后执行,同样可以使得可编程渲染管线中的顶点着色器在对顶点数据做处理时,能够实现传统的顶点变换及反畸变处理的双重作用。
可以理解的是,在实际实现时,上述三种实现方式的代码逻辑简单,从而能够节省GPU的计算量。另外,需要说明的是,通过试验证明,上述第一种可选的实现方式,其代码实现更为简单,并且其效果最好。
通过上述几种可选的实现方式可知,在本发明实施例中,通过预编辑的顶点着色器调用顶点着色器代码,实现对顶点数据作传统的坐标变换之外,还穿插执行反畸变处理操作,从而使得经过处理后的顶点数据是已经发生畸变的顶点数据,该畸变正是为了抵消VR镜片的畸变效果。
如上文描述的可编程渲染管线的工作原理可知,在通过顶点着色器对顶点数据进行处理得到反畸变的顶点变换数据之后,还需要继续调用可编程渲染管线中的其他组件对该反畸变的顶点变换数据进行处理,具体的,需要将该反畸变的顶点变换数据输入至图元装配和光栅化组件中,根据顶点数据位置的改变,相应地,改变各顶点数据之间的连通关系;进而,将图元装配和光栅化组件处理后的数据输入至片段着色器,该片段着色器根据顶点数据位置的改变,改变各顶点数据的纹理和颜色,以保证各顶点数据的纹理和颜色能够随着顶点数据位置的改变而对应的改变;最后,还需要利用光栅操作组件对已得到的数据进行一系列的测试,如裁减测试、透明度测试、模板测试和深度测试等测试,以得到最终的图像帧数据。
需要说明的是,由于VR镜片材质、折射率等不同,导致不同VR镜片所产生的畸变程度不同,而VR反畸变处理就是为了消除VR镜片的畸变,因此,在采用VR反畸变算法对待渲染图像进行VR反畸变处理时,需要根据VR镜片的能够决定畸变程度的属性参数,来适应性地配置反畸变操作过程中涉及的相关参数例如反畸变系数。具体的,用户在使用VR设备观看VR资源时,可以先选择需要适配的VR镜片的属性参数,进而智能终端根据该属性参数来配置反畸变操作过程中所需要的相关参数。
本发明实施例提供的VR反畸变方法,基于OpenGL开发接口对待渲染的图像中的顶点数据进行图像渲染,在图像渲染的过程中插入实现反畸变处理得到图像帧数据,这样,就能够保证该图像帧数据具有反畸变作用,从而解决使用VR设备时由VR镜片的畸变作用导致画面不好的问题;另外,由于OpenGL在图像处理领域发展较为成熟,实现较为简单,因此,这使得本发明实施例提供的VR反畸变方法的适用性非常强。
针对上文图6和图7描述的VR反畸变方法,本发明还提供了对应的VR反畸变装置,以便于这些方法在实际中的应用以及实现。
参见图6,图6是与上文图4所示方法相对应的一种VR反畸变装置600的结构图,该装置600包括:
读取模块601,用于读取待渲染的图像的顶点数据。
渲染及反畸变模块602,用于对顶点数据进行图像渲染,在图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据。
输出模块603,用于根据所述图像帧数据输出图像。
本发明实施例提供的VR反畸变装置,在图像渲染的过程中,还穿插有对图像的反畸变处理,从而使得图像渲染后得到的图像帧数据就已经是经过了反畸变处理的数据,根据该图像帧数据输出的图像,就能够起到反畸变效果,用户通过VR设备就能够看到正常的画面。这种在图像渲染过程中穿插作反畸变处理的方式,无需再利用额外的缓存,无需作二次渲染,降低了GPU的填充率,提高了VR设备的显示帧率。
可选的,在上述图6所示装置的基础上,参见图7,图7是与上文图5所示方法相对应的一种VR反畸变装置700的结构图,该装置中的渲染及反畸变模块602包括:
传输单元701,用于将顶点数据传入可编程渲染管线。
调用单元702,用于调用该可编程渲染管线对顶点数据进行渲染处理得到图像帧数据;其中,可编程渲染管线中包括预编程的顶点着色器;顶点着色器用于在对顶点数据进行顶点变换的过程中,采用反畸变算法进行反畸变处理。
可选的,调用单元702具体用于:
将顶点数据传入所述顶点着色器;
调用顶点着色器对顶点数据作模型变换、视图变换、投影变换以及基于反畸变算法的反畸变变换得到反畸变的顶点变换数据;
将顶点变换数据传入可编程渲染管线进行渲染得到所述图像帧数据。
可选的,调用单元702具体用于:
调用顶点着色器对顶点数据作模型变换和视图变换得到模型视图变换数据;
调用顶点着色器采用反畸变算法对模型视图变换数据作反畸变变换得到反畸变的模型视图变换数据;
调用顶点着色器对反畸变的模型视图变换数据作投影变换得到反畸变的顶点变换数据。
可选的,调用单元702具体用于:
调用顶点着色器对顶点数据作模型变换得到模型变换数据;
调用顶点着色器采用反畸变算法对模型变换数据进行反畸变变换得到反畸变的模型变换数据;
调用顶点着色器对反畸变的模型变换数据作视图变换和投影变换得到反畸变的顶点变换数据。
可选的,调用单元702具体用于:
调用顶点着色器对顶点数据作模型变换、视图变换、投影变换得到顶点变换数据;
调用顶点着色器采用反畸变算法对顶点变换数据进行反畸变变换得到反畸变的顶点变换数据。
本发明实施例提供的VR反畸变装置,基于图形图像程序开发接口技术将反畸变处理融合到图像渲染中,对待渲染的图像中的顶点数据进行图像渲染,在图像渲染的过程中插入实现反畸变处理得到图像帧数据,这样,就能够保证该图像帧数据具有反畸变作用,从而解决使用VR设备时由VR镜片的畸变作用导致画面不好的问题;另外,由于图形图像程序开发接口技术例如OpenGL技术,其在图像处理领域发展较为成熟,实现较为简单,因此,这使得本发明实施例提供的VR反畸变方法的适用性非常强,能够被大规模推广使用。
另外,为了保证上述本发明实施例提供的VR反畸变方法在VR资源播放场景中的应用与实现,本发明还提供了相应的硬件设备,具体的,本发明提供一种智能终端、一种VR显示系统和一种VR设备,下面分别对本发明提供的硬件设备进行介绍。
参见图8,图8为本发明实施例提供的智能终端的架构示意图。该智能终端800为能够播放VR资源的终端设备,例如,智能终端可以为智能手机、平板电脑或者个人数字助理(Personal Digital Assistant,PDA)等设备。该智能终端800包括存储器801和处理器802,其中,存储器801用于存储程序和VR应用,处理器802用于在运行VR应用时,读取存储器801中的程序,以执行本发明提供的VR反畸变方法;处理器802中具体包括中央处理器(CentralProcessing Unit,CPU)和GPU,CPU用于根据实际情况的需要,控制GPU执行本发明实施例提供的VR反畸变方法对待处理图像进行图像渲染的同时进行VR反畸变处理,得到具有VR反畸变效果的图像,CPU还用于控制播放经GPU处理得到的具有VR反畸变效果的图像。其中,本发明实施例提供的VR反畸变方法的具体实现可以参见上文图4所示的方法实施例的描述。
参见图9,图9为本发明实施例提供的VR显示系统的架构示意图。该VR显示系统900包括智能终端901和VR设备902;其中,智能终端901可以为图8提供的智能终端800,即,智能终端901为能够播放VR资源,并且能够执行本发明实施例提供的VR反畸变方法的终端设备;该VR设备902至少包括VR镜片,该VR设备902为能够通过VR镜片观看智能终端播放的VR资源的设备,例如,VR设备可以为VR眼镜,VR头盔等设备。
在具体实现时,该VR设备902可以通过硬件元件固定智能终端901,例如,VR设备902通过卡槽来固定该智能终端901,从而方便用户通过VR镜片观看该智能终端901播放的VR资源。其中,该硬件元件可以是该VR设备自身的元件,也可以是外接元件。
在具体实现时,该VR设备902可以通过近场通信技术与该智能终端901通信,例如,该VR设备902通过近场通信技术向该智能终端传输用户的操作信号,该智能终端接收该操作信号显示相应的虚拟现实场景,从而给用户更强的沉浸式体验。
由于该VR显示系统900中的智能终端901和VR设备902为分离式元件,因此,不同的用户可以同时佩戴不同的VR设备,观看同一智能终端上播放的VR资源,即智能终端上播放的VR资源可以同时被多个用户共享。
此外,为了便于用户日常携带和使用,本发明实施例还提供了一种VR设备,该VR设备为具有图像处理功能的集成设备,在此称之为VR一体机。参见图10,图10为本发明实施例提供的VR设备的架构示意图,该VR设备1000包括:存储器1001、处理器1002和显示单元1003,其中,存储器1001用于存储程序和VR应用,处理器1002用于在运行VR应用时,读取存储器1001中的程序,以执行本发明实施例提供的VR反畸变方法;其中,本发明实施例提供的VR反畸变方法的具体实现可以参见上文图4所示的方法实施例的描述。
具体的,该处理器1002中具体包括CPU和GPU,CPU用于根据实际情况的需要,控制GPU执行本发明实施例提供的VR反畸变方法对待处理图像进行VR反畸变处理,得到具有VR反畸变效果的图像,CPU还用于控制播放经GPU处理得到的具有VR反畸变效果的图像。该VR设备1000中的显示单元1003具体可以包括显示屏幕和VR镜片,其中,显示屏幕用于显示经处理器1002进行VR反畸变处理得到的图像,用户通过VR镜片观看显示屏幕上所显示的图像。
另外,针对上文所提及的本发明实施例提供的智能终端,本发明实施例还提供的具体实现方式,下面结合图11对该智能终端的具体实现进行解释,但为了便于说明,图11中仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。
该智能终端可以为包括手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、销售终端(Point of Sales,POS)、车载电脑等任意终端设备,以终端为手机为例:
图11示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图11,手机包括:射频(Radio Frequency,RF)电路1110、存储器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、无线保真(wireless fidelity,WiFi)模块1170、处理器1180、以及电源1190等部件。本领域技术人员可以理解,图11中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图11对手机的各个构成部件进行具体的介绍:
RF电路1110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1180处理;另外,将设计上行的数据发送给基站。通常,RF电路1110包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1130可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1130可包括触控面板1131以及其他输入设备1132。触控面板1131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1131上或在触控面板1131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1131。除了触控面板1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1140可包括显示面板1141,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1141。进一步的,触控面板1131可覆盖显示面板1141,当触控面板1131检测到在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180根据触摸事件的类型在显示面板1141上提供相应的视觉输出。虽然在图11中,触控面板1131与显示面板1141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1131与显示面板1141集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1160、扬声器1161,传声器1162可提供用户与手机之间的音频接口。音频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经RF电路1110以发送给比如另一手机,或者将音频数据输出至存储器1120以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块1170,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1180可包括一个或多个处理单元;优选的,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。
手机还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器1180还具有以下功能:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对所述顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
当然,该处理器1180还可以用于读取存储器中的程序以实现上述图4所示实施例中的步骤。
另外,针对上文所提及的本发明实施例提供的VR设备,本发明实施例还提供的具体实现方式,下面结合图12对该VR设备的具体实现进行解释,图12中仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。图12为本发明实施例提供的VR设备的硬件结构图,如图12所示,该VR设备可以包括:射频(RadioFrequency,RF)电路1210、存储器1220、输入单元1230、显示单元1240、传感器1250、音频电路1260、无线保真(wireless fidelity,WiFi)模块1270、处理器1280、以及电源1290等部件。本领域技术人员可以理解,图12中示出的结构并不构成对VR设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该VR设备中的显示单元1240可以包括显示面板1241和VR镜片1242,使用者通过该VR镜片观看显示面板1241上显示的图像画面。该VR设备内部的其他结构可以参见上述图11所示的各个部件,此处不再赘述。
另外,为了保证上述方法在实际中被应用和实现,本发明实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种VR反畸变方法中的任意一种实施方式。
本发明实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种VR反畸变方法中的任意一种实施方式。
以上是对本发明提供的VR反畸变处理的方法、装置以及设备进行示例性说明,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储计算机程序的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种虚拟现实反畸变方法,其特征在于,包括:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对所述顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
2.根据权利要求1所述方法,其特征在于,所述对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据,包括:
将所述顶点数据传入可编程渲染管线;
调用所述可编程渲染管线对所述顶点数据进行渲染处理得到所述图像帧数据;其中,所述可编程渲染管线中包括预编程的顶点着色器;所述顶点着色器用于在对所述顶点数据进行顶点变换的过程中,采用反畸变算法对所述顶点数据进行反畸变处理。
3.根据权利要求2所述方法,其特征在于,所述调用所述可编程渲染管线对所述顶点数据进行渲染处理得到所述图像帧数据,包括:
将所述顶点数据传入所述顶点着色器;
调用所述顶点着色器对所述顶点数据作模型变换、视图变换、投影变换以及基于反畸变算法的反畸变变换得到反畸变的顶点变换数据;
将所述顶点变换数据传入所述可编程渲染管线进行渲染得到所述图像帧数据。
4.根据权利要求3所述方法,其特征在于,所述调用所述顶点着色器对所述顶点数据作模型变换、视图变换、投影变换以及基于反畸变算法的反畸变变换得到反畸变的顶点变换数据,包括:
调用所述顶点着色器对所述顶点数据作模型变换和视图变换得到模型视图变换数据;
调用所述顶点着色器采用反畸变算法对所述模型视图变换数据作反畸变变换得到反畸变的模型视图变换数据;
调用所述顶点着色器对所述反畸变的模型视图变换数据作投影变换得到反畸变的顶点变换数据。
5.根据权利要求3所述方法,其特征在于,所述调用所述顶点着色器对所述顶点数据作模型变换、视图变换、投影变换以及基于反畸变算法的反畸变变换得到反畸变的顶点变换数据,包括:
调用所述顶点着色器对所述顶点数据作模型变换得到模型变换数据;
调用所述顶点着色器采用反畸变算法对所述模型变换数据进行反畸变变换得到反畸变的模型变换数据;
调用所述顶点着色器对所述反畸变的模型变换数据作视图变换和投影变换得到反畸变的顶点变换数据。
6.根据权利要求3所述方法,其特征在于,所述调用所述顶点着色器对所述顶点数据作模型变换、视图变换、投影变换以及基于反畸变算法的反畸变变换得到反畸变的顶点变换数据,包括:
调用所述顶点着色器对所述顶点数据作模型变换、视图变换、投影变换得到顶点变换数据;
调用所述顶点着色器采用反畸变算法对所述顶点变换数据进行反畸变变换得到反畸变的顶点变换数据。
7.一种虚拟现实反畸变的装置,其特征在于,包括:
读取模块,用于读取待渲染的图像的顶点数据;
渲染及反畸变模块,用于对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据;
输出模块,用于根据所述图像帧数据输出图像。
8.根据权利要求7所述的虚拟现实反畸变的装置,其特征在于,所述渲染及反畸变模块,包括:
传输单元,用于将所述顶点数据传入可编程渲染管线;
调用单元,用于调用所述可编程渲染管线对所述顶点数据进行渲染处理得到所述立体图像数据;其中,所述可编程渲染管线中包括预编程的顶点着色器;所述顶点着色器用于在对所述顶点数据进行顶点变换的过程中,采用反畸变算法进行反畸变处理。
9.根据权利要求8所述的虚拟现实反畸变的装置,其特征在于,所述调用单元具体用于:
将所述顶点数据传入所述顶点着色器;
调用所述顶点着色器对所述顶点数据作模型变换、视图变换、投影变换以及基于反畸变算法的反畸变变换得到反畸变的顶点变换数据;
将所述顶点变换数据传入所述可编程渲染管线进行渲染得到所述立体图像数据。
10.根据权利要求8所述的虚拟现实反畸变的装置,其特征在于,所述调用单元具体用于:
调用所述顶点着色器对所述顶点数据作模型变换和视图变换得到模型视图变换数据;
调用所述顶点着色器采用反畸变算法对所述模型视图变换数据作反畸变变换得到反畸变的模型视图变换数据;
调用所述顶点着色器对所述反畸变的模型视图变换数据作投影变换得到反畸变的顶点变换数据。
11.一种智能终端,其特征在于,所述智能终端包括:
存储器和处理器;
所述存储器用于存储程序和虚拟现实应用;
所述处理器用于在运行所述虚拟现实应用时,读取所述存储器中的所述程序,所述程序用于:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
12.一种虚拟现实显示系统,其特征在于,所述虚拟现实显示系统包括:
智能终端和虚拟现实眼镜;所述虚拟现实眼镜与所述智能手机之间采用近场通信技术进行通信;
所述智能终端中装载有虚拟现实应用,所述智能终端在运行所述虚拟现实应用时,执行以下程序:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
13.一种虚拟现实设备,其特征在于,所述虚拟现实设备为虚拟现实一体机,包括:
存储器、处理器和显示单元;
所述存储器用于存储程序和虚拟现实应用;
所述处理器用于在运行所述虚拟现实应用时,读取所述存储器中的所述程序,所述程序用于:
读取待渲染的图像的顶点数据;
对所述顶点数据进行图像渲染,在所述图像渲染的过程中采用反畸变算法对顶点数据作反畸变处理得到图像帧数据;
根据所述图像帧数据输出图像。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-6任一项所述的虚拟现实反畸变方法。
15.一种包括指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行权利要求1-6任一项所述的虚拟现实反畸变方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810273751.9A CN110335200A (zh) | 2018-03-29 | 2018-03-29 | 一种虚拟现实反畸变方法、装置以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810273751.9A CN110335200A (zh) | 2018-03-29 | 2018-03-29 | 一种虚拟现实反畸变方法、装置以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110335200A true CN110335200A (zh) | 2019-10-15 |
Family
ID=68138851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810273751.9A Pending CN110335200A (zh) | 2018-03-29 | 2018-03-29 | 一种虚拟现实反畸变方法、装置以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110335200A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112164378A (zh) * | 2020-10-28 | 2021-01-01 | 上海盈赞通信科技有限公司 | 一种vr眼镜一体机反畸变方法和装置 |
CN112991214A (zh) * | 2021-03-18 | 2021-06-18 | 成都极米科技股份有限公司 | 图像处理方法、图像渲染方法、装置及影设备 |
CN113160067A (zh) * | 2021-01-26 | 2021-07-23 | 睿爱智能科技(上海)有限责任公司 | 一种修正vr大视场角畸变的方法 |
CN114708411A (zh) * | 2022-05-09 | 2022-07-05 | 北京领为军融科技有限公司 | 一种基于观察空间的菲涅尔透镜可视角度仿真方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780850A (zh) * | 2012-05-31 | 2012-11-14 | 新奥特(北京)视频技术有限公司 | 一种实现立方体转场特效的方法 |
CN106296565A (zh) * | 2015-06-23 | 2017-01-04 | 三星电子株式会社 | 图形管线方法和设备 |
CN106327587A (zh) * | 2016-11-16 | 2017-01-11 | 北京航空航天大学 | 一种用于增强现实手术导航的腹腔镜视频精准融合方法 |
CN107220925A (zh) * | 2017-05-05 | 2017-09-29 | 珠海全志科技股份有限公司 | 一种实时虚拟现实加速方法及装置 |
CN107680047A (zh) * | 2017-09-05 | 2018-02-09 | 北京小鸟看看科技有限公司 | 一种虚拟现实场景渲染方法、图像处理器和头戴显示设备 |
-
2018
- 2018-03-29 CN CN201810273751.9A patent/CN110335200A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102780850A (zh) * | 2012-05-31 | 2012-11-14 | 新奥特(北京)视频技术有限公司 | 一种实现立方体转场特效的方法 |
CN106296565A (zh) * | 2015-06-23 | 2017-01-04 | 三星电子株式会社 | 图形管线方法和设备 |
CN106327587A (zh) * | 2016-11-16 | 2017-01-11 | 北京航空航天大学 | 一种用于增强现实手术导航的腹腔镜视频精准融合方法 |
CN107220925A (zh) * | 2017-05-05 | 2017-09-29 | 珠海全志科技股份有限公司 | 一种实时虚拟现实加速方法及装置 |
CN107680047A (zh) * | 2017-09-05 | 2018-02-09 | 北京小鸟看看科技有限公司 | 一种虚拟现实场景渲染方法、图像处理器和头戴显示设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112164378A (zh) * | 2020-10-28 | 2021-01-01 | 上海盈赞通信科技有限公司 | 一种vr眼镜一体机反畸变方法和装置 |
CN113160067A (zh) * | 2021-01-26 | 2021-07-23 | 睿爱智能科技(上海)有限责任公司 | 一种修正vr大视场角畸变的方法 |
CN112991214A (zh) * | 2021-03-18 | 2021-06-18 | 成都极米科技股份有限公司 | 图像处理方法、图像渲染方法、装置及影设备 |
CN112991214B (zh) * | 2021-03-18 | 2024-03-08 | 成都极米科技股份有限公司 | 图像处理方法、图像渲染方法、装置及影设备 |
CN114708411A (zh) * | 2022-05-09 | 2022-07-05 | 北京领为军融科技有限公司 | 一种基于观察空间的菲涅尔透镜可视角度仿真方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230143323A1 (en) | Shadow rendering method and apparatus, computer device, and storage medium | |
US10854017B2 (en) | Three-dimensional virtual image display method and apparatus, terminal, and storage medium | |
US11393154B2 (en) | Hair rendering method, device, electronic apparatus, and storage medium | |
CN107247548B (zh) | 图像显示方法、图像处理方法及装置 | |
CN110335200A (zh) | 一种虚拟现实反畸变方法、装置以及相关设备 | |
CN109389664B (zh) | 模型贴图渲染方法、装置及终端 | |
CN110929651A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN105183296B (zh) | 交互界面显示方法及装置 | |
CN109598777A (zh) | 图像渲染方法、装置、设备及存储介质 | |
CN109471603A (zh) | 一种界面显示方法及装置 | |
CN109725956B (zh) | 一种场景渲染的方法以及相关装置 | |
CN107948543A (zh) | 一种视频特效处理方法及装置 | |
CN109949412A (zh) | 一种三维对象重建方法和装置 | |
WO2020233403A1 (zh) | 三维角色的个性化脸部显示方法、装置、设备及存储介质 | |
CN111063008A (zh) | 一种图像处理方法、装置、设备及存储介质 | |
CN105607263A (zh) | 头戴式电子设备 | |
CN113436301A (zh) | 拟人化3d模型生成的方法和装置 | |
CN108876878A (zh) | 头像生成方法及装置 | |
WO2022252924A1 (zh) | 图像传输与显示方法、相关设备及系统 | |
CN109753892A (zh) | 人脸皱纹的生成方法、装置、计算机存储介质和终端 | |
CN112950791A (zh) | 一种显示方法和相关装置 | |
CN109002248A (zh) | Vr场景截图方法、设备及存储介质 | |
CN108270971B (zh) | 一种移动终端对焦的方法、设备及计算机可读存储介质 | |
KR20150081751A (ko) | 이미지 처리 방법 및 이를 구현하는 전자 장치 | |
CN107589841A (zh) | 头戴显示设备的操作方法、头戴显示设备和系统 |
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 |