CN108805964A - 基于OpenGL ES的VR机顶盒启动动画制作方法及系统 - Google Patents

基于OpenGL ES的VR机顶盒启动动画制作方法及系统 Download PDF

Info

Publication number
CN108805964A
CN108805964A CN201810524439.2A CN201810524439A CN108805964A CN 108805964 A CN108805964 A CN 108805964A CN 201810524439 A CN201810524439 A CN 201810524439A CN 108805964 A CN108805964 A CN 108805964A
Authority
CN
China
Prior art keywords
texture
animation
picture
setmatrix4
frame
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
Application number
CN201810524439.2A
Other languages
English (en)
Other versions
CN108805964B (zh
Inventor
洪展
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201810524439.2A priority Critical patent/CN108805964B/zh
Publication of CN108805964A publication Critical patent/CN108805964A/zh
Application granted granted Critical
Publication of CN108805964B publication Critical patent/CN108805964B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种基于OpenGL ES的VR机顶盒启动动画制作方法及系统,涉及移动VR设备中三维场景构建领域,该方法包括S1:获取动画序列帧的数量、每一帧对应的图片信息和纹理坐标信息;S2:加载当前帧对应的图片,将所述图片生成纹理;以VR球形空间中视口坐标系为基准,生成纹理的位置和大小;S3:通过setMatrix4函数对纹理的空间位置进行变换,setMatrix4函数是指使用4×4矩阵进行纹理的空间位置的变换;S4:对变换了空间位置的纹理的位置和大小进行逆变换,然后将纹理的空间位置转化为规范化设备坐标,将纹理显示在屏幕上。本发明能够有效解决动画加载过程中纹理的频繁更替带来的计算繁琐的问题。

Description

基于OpenGL ES的VR机顶盒启动动画制作方法及系统
技术领域
本发明涉及移动VR设备中三维场景构建领域,具体涉及一种基于OpenGL ES的VR机顶盒启动动画制作方法及系统。
背景技术
从2016年起,VR(Virtual Reality,虚拟现实)产品处于井喷状态,VR产业估值将在2020年达到400亿美元以上,虚拟现实将是继手机后的下一个通用计算机平台。VR机顶盒是一个新的产品形态,其融合了VR头显、网关、Android机顶盒于一体,可满足用户VR业务、OTT(Over The Top,互联网电视)视频、客厅大型游戏、无线覆盖的需求,具有广泛的应用前景。
VR应用与普通Android应用的区别在于,VR应用的场景和图形均处于三维空间,因此VR应用对三维图形的绘制和渲染要求较高。OpenGL ES是目前移动设备的主要图形程序库,主要用于绘制三维图形。OpenGL ES的图形单元是三角形,每一个图形均由不同数量的三角形组成,着色器语言(GLSL)主要包括两部分:Vertex shader(顶点着色器,负责顶点位置与坐标变换,即决定显示哪个部分,以何种位置/姿态显示)和Fragment shader(片元着色器,负责纹理的填充与转换,即决定显示成什么样子),顶点着色器与片元着色器共同决定了三维空间中显示物体的内容和坐标。
VR机顶盒的Launcher(桌面启动器)启动时会先后加载动画场景和UI(用户界面)布局场景,两者本质上都是由三维纹理组成。OpenGL ES中,每一段纹理均包括三角形数量、顶点坐标、纹理填充坐标等一些基本元素,其中三角形数量决定渲染精度、顶点坐标和填充坐标的数量,三角形的每个顶点对应一个顶点坐标与纹理填充坐标,顶点坐标决定三角形的空间位置,包括x、y和z三个方向的数值,纹理填充坐标为平面坐标,包括x'和y'两个方向的数值,顶点坐标与纹理填充坐标的坐标原点不同,两者通过矩阵换算进行对应。
VR应用加载动画过程中,纹理序列高速加载与更替,当序列不同,纹理之间的渲染精度、位置与内容可能均不相同,OpenGL ES针对纹理的移动、旋转、缩放分别提供了相应的方法函数,其原理是把当前矩阵和一个表示移动(旋转/缩放)物体的矩阵相乘。例如,假设当前矩阵为单位矩阵,然后先乘以一个表示旋转的矩阵R,再乘以一个表示移动的矩阵T,最后得到的矩阵再乘上每一个顶点的坐标矩阵v,所以,经过变换得到的顶点坐标就是((RT)v),然而,由于矩阵乘法的结合率((RT)v)=(R(Tv)),换句话说,实际是先进行移动,然后进行旋转,即:实际变换的顺序与代码中写的顺序是相反的,而且,在三维空间中“先移动后旋转”和“先旋转后移动”得到的结果很可能不同,因此在设计三维动画加载时,纹理的高速更替会使上述问题变得极其繁琐。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于OpenGL ES的VR机顶盒启动动画制作方法,能够有效解决动画加载过程中纹理的频繁更替带来的计算繁琐的问题。
为达到以上目的,本发明采取的技术方案是,包括:
S1:获取动画序列帧的数量、每一帧对应的图片信息和纹理坐标信息;
S2:加载当前帧对应的图片,将所述图片生成纹理;以VR球形空间中视口坐标系为基准,生成纹理的位置和大小;
S3:通过setMatrix4函数对纹理的空间位置进行变换,setMatrix4函数是指使用4×4矩阵进行纹理的空间位置的变换;
S4:对变换了空间位置的纹理的位置和大小进行逆变换,然后将纹理的空间位置转化为规范化设备坐标,将纹理显示在屏幕上。
在上述技术方案的基础上,
所述纹理的空间位置的变换包括移动、旋转和缩放。
在上述技术方案的基础上,步骤S3具体为:
S301:将纹理的平移、缩放和旋转相关信息输入setMatrix4函数中,setMatrix4函数的表达式为:
setMatrix4(Vector3position,Vector3scale,Quaternion rotation)
其中,Vector3position表示平移的三维向量,Vector3scale表示缩放的三维向量,Quaternion rotation表示旋转的四元数,包括旋转轴和旋转角度;
S302:通过setMatrix4函数对纹理的移动、旋转和缩放的向量元素进行换算,输出4×4矩阵;
S303:将输出的4×4矩阵左乘纹理的初始位置矩阵,得到纹理变换后的空间位置,完成对纹理空间位置的变换。
在上述技术方案的基础上,步骤S4中,当将纹理显示在屏幕上后,还包括以下步骤:
S401:判断当前帧是否是动画帧的序列中的最后一帧,若是,则结束,若否,则转到步骤S402;
S402:加载下一帧,并判断当前帧的图片是否需要替换成下一帧的图片,若是,则转到步骤S403,若否,则转到步骤S404;
S403:加载下一帧对应的图片,将所述图片生成纹理,并根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准,生成纹理的位置和大小,然后转到步骤S3;
S404:根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准,生成当前纹理的位置和大小,然后转到步骤S3。
在上述技术方案的基础上,该方法还包括以下步骤:VR机顶盒Launcher启动过程中动画和UI资源进行并行加载,具体步骤为:
VR机顶盒Launcher启动后进行动画的加载,并在动画加载的过程中判断是否需要加载UI资源,若是,继续加载动画;若否,采用多线程方式加载UI资源的图片,并通过glGenTextures方法将UI资源的图片生成纹理,并将生成的纹理的透明度设为不可见;继续加载动画,待所有动画加载完成并播放结束后,将UI资源图片的纹理的透明度设为可见。
本发明还提供一种基于OpenGL ES的VR机顶盒启动动画制作系统,包括:
获取模块,其用于获取动画序列帧的数量、每一帧对应的图片信息和纹理坐标信息;
生成模块,其用于加载当前帧对应的图片,将所述图片生成纹理;以VR球形空间中视口坐标系为基准,生成纹理的位置和大小;
变换模块,其用于通过setMatrix4函数对纹理的空间位置进行变换;
显示模块,其用于对变换了空间位置的纹理的位置和大小进行逆变换,然后将纹理的空间位置转化为规范化设备坐标,将纹理显示在屏幕上。
在上述技术方案的基础上,
所述setMatrix4函数为使用4×4矩阵进行纹理的空间位置的变换;
所述纹理的空间位置的变换包括移动、旋转和缩放。
在上述技术方案的基础上,所述变换模块通过setMatrix4函数对纹理的空间位置进行变换,具体过程为:
将纹理的平移、缩放和旋转相关信息输入setMatrix4函数中,setMatrix4函数的表达式为:
setMatrix4(Vector3position,Vector3scale,Quaternion rotation)
其中,Vector3position表示平移的三维向量,Vector3scale表示缩放的三维向量,Quaternion rotation表示旋转的四元数,包括旋转轴和旋转角度;
通过setMatrix4函数对纹理的移动、旋转和缩放的向量元素进行换算,输出4×4矩阵;
将输出的4×4矩阵左乘纹理的初始位置矩阵得到纹理变换后的空间位置,完成对纹理空间位置的变换。
在上述技术方案的基础上,该系统还包括判断模块,其用于:
判断当前帧是否是动画帧的序列中的最后一帧,若是,则结束;若否,则驱使生成模块加载下一帧,并判断当前帧的图片是否需要替换成下一帧的图片,若是,则驱使生成模块加载下一帧对应的图片,将所述图片生成纹理,并根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准,生成纹理的位置和大小,然后驱使变换模块和显示模块工作;若否,则驱使生成模块根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准,生成当前纹理的位置和大小,然后驱使变换模块和显示模块工作。
在上述技术方案的基础上,还包括并行模块,所述并行模块用于VR机顶盒Launcher启动过程中动画和UI资源的并行加载,具体过程为:
VR机顶盒Launcher启动后进行动画的加载,并在动画加载的过程中判断是否需要加载UI资源,若是,则继续加载动画;若否,则采用多线程方式加载UI资源的图片,并通过glGenTextures方法将UI资源的图片生成纹理,并将生成的纹理的透明度设为不可见,待所有动画加载完成并播放结束后,将UI资源图片的纹理的透明度设为可见。
与现有技术相比,本发明的优点在于:将图片生成纹理并以VR球形空间中视口坐标系为基准设置生成纹理的位置和大小,然后通过setMatrix4函数对纹理的空间位置进行变换,使用4x4矩阵进行变换纹理空间位置变换,提高纹理变换的效率,解决了动画加载过程中纹理的频繁更替带来的计算繁琐的问题。
附图说明
图1为本发明实施例中一种基于OpenGL ES的VR机顶盒启动动画制作方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
参见图1所示,本发明实施例提供一种基于OpenGL ES的VR机顶盒启动动画制作方法,针对VR机顶盒提供一种高效、灵活的启动动画制作方法,有效解决启动动画中纹理的频繁更替导致计算繁琐的问题。本发明实施例的基于OpenGL ES的VR机顶盒启动动画制作方法具体包括以下步骤:
S1:获取动画序列帧的数量、每一帧对应的图片信息和纹理坐标信息。其中每一帧对应的纹理坐标信息包括该振对应纹理的初始空间位置及空间位置变化等信息。
S2:加载当前帧对应的图片,将所述图片生成纹理;然后以VR球形空间中视口坐标系为基准,生成纹理的位置和大小。使用glGenTextures方法将图片生成纹理,glGenTextures是一种常见的用来生成纹理的函数。
对于生成纹理的位置和大小,以VR球形空间中视口坐标系为基准,只需设置纹理矩形面片的中心点坐标、长宽和旋转角度即可确定纹理的空间位置和大小。
S3:通过setMatrix4函数对纹理的空间位置进行变换。纹理的空间位置的变换包括移动、旋转和缩放。setMatrix4函数为使用4×4矩阵进行纹理的空间位置的变换。
对于使用setMatrix4函数对纹理的空间位置进行变换,具体步骤为:
S301:将纹理的平移、缩放和旋转相关信息输入setMatrix4函数中,setMatrix4函数的表达式为:
setMatrix4(Vector3position,Vector3scale,Quaternion rotation)
其中,Vector3position表示平移的三维向量,Vector3scale表示缩放的三维向量,Quaternion rotation表示旋转的四元数,包括旋转轴和旋转角度。一般情况下,Vector3scale的值为1,表示无需对纹理进行缩放。
S302:通过setMatrix4函数对纹理的移动、旋转和缩放的向量元素进行换算,输出4×4矩阵。输出的4×4矩阵可包括纹理的平移、缩放和旋转三种位置变化。
S303:将输出的4×4矩阵左乘纹理的初始位置矩阵得到纹理变换后的空间位置,完成对纹理空间位置的变换。纹理在生成时,根据当前帧对应的纹理坐标信息,会存在一个初始位置矩阵。
因此,使用setMatrix4函数对纹理的空间位置进行变换,当对一个纹理进行旋转、平移和缩放时,不再需要使用到三个矩阵。
S4:对变换了空间位置的纹理的位置和大小进行逆变换,此处逆变换过程相当于是步骤S2中,以VR球形空间中视口坐标系为基准设置生成纹理的位置和大小的逆过程,然后将纹理的空间位置转化为规范化设备坐标,然后将纹理显示在屏幕上。此时边完成了VR机顶盒Launcher启动时一帧动画的加载,对于动画序列的其它帧的加载,重复采用上述方法即可。
由于视口是一个二维矩形窗口区域,是OpenGL ES渲染操作最终显示的地方,针对OpenGL ES独特的屏幕坐标系,设计如下视口变换方案,用于将纹理显示在屏幕上:
转换公式为:
其中,(xd,yd,zd)是规范化设备坐标,(xw,yw,zw)是变换后的视口坐标,(ox,oy)为VR球形空间中矩形视口的中心点坐标,w为视口的宽度,h为视口的高度,n和f为深度范围值,n和f的大小由OpenGL ES的API进行设置。通过上述转化公式可将纹理顶点位置的视口坐标从规范化设备坐标转换为视口坐标,反之,在开发过程中,用户只需关注纹理的视口坐标来进行纹理坐标的配置,设备坐标对用户来说是隐藏的。针对VR应用的球体空间设计出上述视口变换方式,用户设置纹理位置时只需要设置纹理的中心坐标以及长宽尺寸,无需考虑OpenGL ES中原始的坐标范围,降低了复杂度。
本发明实施例的基于OpenGL ES的VR机顶盒启动动画制作方法,将图片生成纹理并以VR球形空间中视口坐标系为基准设置生成纹理的位置和大小,然后通过setMatrix4函数对纹理的空间位置进行变换,使用4x4矩阵进行变换纹理空间位置变换,提高纹理变换的效率,解决了动画加载过程中纹理的频繁更替带来的计算繁琐的问题。
实施例2
在实施例1的基础上,当将纹理显示在屏幕上后,还包括以下步骤,针对动画序列帧为多帧的情形:
S401:判断当前帧是否是动画帧的序列中的最后一帧,若是,则结束,若否,则转到步骤S402;
S402:加载下一帧,并判断当前帧的图片是否需要替换成下一帧的图片,若是,则转到步骤S403,若否,则转到步骤S404;
S403:加载下一帧对应的图片,将所述图片生成纹理,并根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准设置生成纹理的位置和大小,然后转到步骤S3;
S404:根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准设置生成当前纹理的位置和大小,然后转到步骤S3。
实施例3
在实施例1的基础上,还包括VR机顶盒Launcher启动过程中动画和UI资源进行并行加载,具体步骤为:
A:VR机顶盒Launcher启动后进行动画的加载,并在动画加载的过程中判断是否需要加载UI资源,若是,继续加载动画,若否,转到步骤B;
B:采用多线程方式加载UI资源的图片,并通过glGenTextures方法将UI资源的图片生成纹理,并将生成的纹理的透明度设为不可见,转到步骤C;
C:继续加载动画,待所有动画加载完成并播放结束后,转到步骤D;
D:将UI资源图片的纹理的透明度设为可见。
在动画加载过程中启动多线程将UI中的高清图片生成纹理,为了避免UI纹理显示后对动画过程的干扰,将纹理的透明度值全部设置为1,动画加载完成的同时将UI纹理的透明度值设置为0,满足各类VR应用尤其是包含大量高清图片资源的VR应用的序列帧动画开发,以及动画与静态UI之间切换。
实施例4
本发明实施例提供一种基于OpenGL ES的VR机顶盒启动动画制作系统,包括获取模块、生成模块、变换模块和显示模块。
获取模块用于获取动画序列帧的数量、每一帧对应的图片信息和纹理坐标信息。
生成模块用于加载当前帧对应的图片,将所述图片生成纹理,然后以VR球形空间中视口坐标系为基准,生成纹理的位置和大小。setMatrix4函数为使用4×4矩阵进行纹理的空间位置的变换。纹理的空间位置的变换包括移动、旋转和缩放。
变换模块用于通过setMatrix4函数对纹理的空间位置进行变换。变换模块通过setMatrix4函数对纹理的空间位置进行变换,具体过程为:
将纹理的平移、缩放和旋转相关信息输入setMatrix4函数中:
setMatrix4(Vector3position,Vector3scale,Quaternion rotation)
其中,Vector3position表示平移的三维向量,Vector3scale表示缩放的三维向量,Quaternion rotation表示旋转的四元数,包括旋转轴和旋转角度;
通过setMatrix4函数对纹理的移动、旋转和缩放的向量元素进行换算,输出4×4矩阵;
将输出的4×4矩阵左乘纹理的初始位置矩阵得到纹理变换后的空间位置,完成对纹理空间位置的变换。
显示模块用于对变换了空间位置的纹理的位置和大小进行逆变换,然后将纹理的空间位置转化为规范化设备坐标,然后将纹理显示在屏幕上。
本发明实施例的基于OpenGL ES的VR机顶盒启动动画制作系统,将图片生成纹理并以VR球形空间中视口坐标系为基准设置生成纹理的位置和大小,然后通过setMatrix4函数对纹理的空间位置进行变换,使用4x4矩阵进行变换纹理空间位置变换,提高纹理变换的效率,解决了动画加载过程中纹理的频繁更替带来的计算繁琐的问题。
实施例5
在实施例4的基础上,还包括判断模块,判断模块用于当将纹理显示在屏幕上后:
判断当前帧是否是动画帧的序列中的最后一帧,若是,则结束,若否,则驱使生成模块加载下一帧,并判断当前帧的图片是否需要替换成下一帧的图片,若是,则驱使生成模块加载下一帧对应的图片,将所述图片生成纹理,并根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准设置生成纹理的位置和大小,然后驱使变换模块和显示模块工作,若否,则驱使生成模块根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准设置生成当前纹理的位置和大小,然后驱使变换模块和显示模块工作。
实施例6
在实施例4的基础上,还包括并行模块,所述并行模块用于VR机顶盒Launcher启动过程中动画和UI资源的并行加载,具体过程为:
VR机顶盒Launcher启动后进行动画的加载,并在动画加载的过程中判断是否需要加载UI资源,若是,则继续加载动画,若否,则采用多线程方式加载UI资源的图片,并通过glGenTextures方法将UI资源的图片生成纹理,并将生成的纹理的透明度设为不可见,待所有动画加载完成并播放结束后,将UI资源图片的纹理的透明度设为可见。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种基于OpenGL ES的VR机顶盒启动动画制作方法,用于进行VR机顶盒Launcher启动时动画的加载,其特征在于,包括以下步骤:
S1:获取动画序列帧的数量、每一帧对应的图片信息和纹理坐标信息;
S2:加载当前帧对应的图片,将所述图片生成纹理;以VR球形空间中视口坐标系为基准,生成纹理的位置和大小;
S3:通过setMatrix4函数对纹理的空间位置进行变换,setMatrix4函数是指使用4×4矩阵进行纹理的空间位置的变换;
S4:对变换了空间位置的纹理的位置和大小进行逆变换,然后将纹理的空间位置转化为规范化设备坐标,将纹理显示在屏幕上。
2.如权利要求1所述的一种基于OpenGL ES的VR机顶盒启动动画制作方法,其特征在于:
所述纹理的空间位置的变换包括移动、旋转和缩放。
3.如权利要求2所述的一种基于OpenGL ES的VR机顶盒启动动画制作方法,其特征在于:步骤S3具体为:
S301:将纹理的平移、缩放和旋转相关信息输入setMatrix4函数中,setMatrix4函数的表达式为:
setMatrix4(Vector3 position,Vector3 scale,Quaternion rotation)
其中,Vector3 position表示平移的三维向量,Vector3scale表示缩放的三维向量,Quaternion rotation表示旋转的四元数,包括旋转轴和旋转角度;
S302:通过setMatrix4函数对纹理的移动、旋转和缩放的向量元素进行换算,输出4×4矩阵;
S303:将输出的4×4矩阵左乘纹理的初始位置矩阵,得到纹理变换后的空间位置,完成对纹理空间位置的变换。
4.如权利要求1所述的一种基于OpenGL ES的VR机顶盒启动动画制作方法,其特征在于:步骤S4中,当将纹理显示在屏幕上后,还包括以下步骤:
S401:判断当前帧是否是动画帧的序列中的最后一帧,若是,则结束,若否,则转到步骤S402;
S402:加载下一帧,并判断当前帧的图片是否需要替换成下一帧的图片,若是,则转到步骤S403,若否,则转到步骤S404;
S403:加载下一帧对应的图片,将所述图片生成纹理,并根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准,生成纹理的位置和大小,然后转到步骤S3;
S404:根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准,生成当前纹理的位置和大小,然后转到步骤S3。
5.如权利要求1所述的一种基于OpenGL ES的VR机顶盒启动动画制作方法,其特征在于:该方法还包括以下步骤:VR机顶盒Launcher启动过程中动画和UI资源进行并行加载,具体步骤为:
VR机顶盒Launcher启动后进行动画的加载,并在动画加载的过程中判断是否需要加载UI资源,若是,继续加载动画;若否,采用多线程方式加载UI资源的图片,并通过glGenTextures方法将UI资源的图片生成纹理,并将生成的纹理的透明度设为不可见;继续加载动画,待所有动画加载完成并播放结束后,将UI资源图片的纹理的透明度设为可见。
6.一种基于OpenGL ES的VR机顶盒启动动画制作系统,其特征在于,包括:
获取模块,其用于获取动画序列帧的数量、每一帧对应的图片信息和纹理坐标信息;
生成模块,其用于加载当前帧对应的图片,将所述图片生成纹理;以VR球形空间中视口坐标系为基准,生成纹理的位置和大小;
变换模块,其用于通过setMatrix4函数对纹理的空间位置进行变换;
显示模块,其用于对变换了空间位置的纹理的位置和大小进行逆变换,然后将纹理的空间位置转化为规范化设备坐标,将纹理显示在屏幕上。
7.如权利要求6所述的一种基于OpenGL ES的VR机顶盒启动动画制作系统,其特征在于:
所述setMatrix4函数为使用4×4矩阵进行纹理的空间位置的变换;
所述纹理的空间位置的变换包括移动、旋转和缩放。
8.如权利要求7所述的一种基于OpenGL ES的VR机顶盒启动动画制作系统,其特征在于:所述变换模块通过setMatrix4函数对纹理的空间位置进行变换,具体过程为:
将纹理的平移、缩放和旋转相关信息输入setMatrix4函数中,setMatrix4函数的表达式为:
setMatrix4(Vector3 position,Vector3 scale,Quaternion rotation)
其中,Vector3 position表示平移的三维向量,Vector3scale表示缩放的三维向量,Quaternion rotation表示旋转的四元数,包括旋转轴和旋转角度;
通过setMatrix4函数对纹理的移动、旋转和缩放的向量元素进行换算,输出4×4矩阵;
将输出的4×4矩阵左乘纹理的初始位置矩阵得到纹理变换后的空间位置,完成对纹理空间位置的变换。
9.如权利要求6所述的一种基于OpenGL ES的VR机顶盒启动动画制作系统,其特征在于:该系统还包括判断模块,其用于:
判断当前帧是否是动画帧的序列中的最后一帧,若是,则结束;若否,则驱使生成模块加载下一帧,并判断当前帧的图片是否需要替换成下一帧的图片,若是,则驱使生成模块加载下一帧对应的图片,将所述图片生成纹理,并根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准,生成纹理的位置和大小,然后驱使变换模块和显示模块工作;若否,则驱使生成模块根据下一帧对应的纹理坐标信息,以VR球形空间中视口坐标系为基准,生成当前纹理的位置和大小,然后驱使变换模块和显示模块工作。
10.如权利要求6所述的一种基于OpenGL ES的VR机顶盒启动动画制作系统,其特征在于:还包括并行模块,所述并行模块用于VR机顶盒Launcher启动过程中动画和UI资源的并行加载,具体过程为:
VR机顶盒Launcher启动后进行动画的加载,并在动画加载的过程中判断是否需要加载UI资源,若是,则继续加载动画;若否,则采用多线程方式加载UI资源的图片,并通过glGenTextures方法将UI资源的图片生成纹理,并将生成的纹理的透明度设为不可见,待所有动画加载完成并播放结束后,将UI资源图片的纹理的透明度设为可见。
CN201810524439.2A 2018-05-28 2018-05-28 基于OpenGL ES的VR机顶盒启动动画制作方法及系统 Active CN108805964B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810524439.2A CN108805964B (zh) 2018-05-28 2018-05-28 基于OpenGL ES的VR机顶盒启动动画制作方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810524439.2A CN108805964B (zh) 2018-05-28 2018-05-28 基于OpenGL ES的VR机顶盒启动动画制作方法及系统

Publications (2)

Publication Number Publication Date
CN108805964A true CN108805964A (zh) 2018-11-13
CN108805964B CN108805964B (zh) 2022-04-29

Family

ID=64090578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810524439.2A Active CN108805964B (zh) 2018-05-28 2018-05-28 基于OpenGL ES的VR机顶盒启动动画制作方法及系统

Country Status (1)

Country Link
CN (1) CN108805964B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020027559A1 (en) * 1996-06-07 2002-03-07 U.S. Philips Corporation Three-dimensional image texture mapping
CN101826217A (zh) * 2010-05-07 2010-09-08 上海交通大学 人脸动画快速生成方法
CN103021013A (zh) * 2012-11-28 2013-04-03 无锡羿飞科技有限公司 投影机球形显示及旋转输出图像的高效处理方法
CN105184843A (zh) * 2015-09-25 2015-12-23 华中科技大学 一种基于OpenSceneGraph的三维动画制作方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020027559A1 (en) * 1996-06-07 2002-03-07 U.S. Philips Corporation Three-dimensional image texture mapping
CN101826217A (zh) * 2010-05-07 2010-09-08 上海交通大学 人脸动画快速生成方法
CN103021013A (zh) * 2012-11-28 2013-04-03 无锡羿飞科技有限公司 投影机球形显示及旋转输出图像的高效处理方法
CN105184843A (zh) * 2015-09-25 2015-12-23 华中科技大学 一种基于OpenSceneGraph的三维动画制作方法

Also Published As

Publication number Publication date
CN108805964B (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
TWI634517B (zh) 用於高解析度顯示緩衝器之有效構造之方法
TWI584223B (zh) 藉由追蹤物件及/或基元識別符的圖形處理增強之方法及系統,圖形處理單元及非暫時性電腦可讀媒體
US8704830B2 (en) System and method for path rendering with multiple stencil samples per color sample
CN103677828B (zh) 一种图层绘制方法、绘图引擎及终端设备
US8497865B2 (en) Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
CN100458850C (zh) 编辑图像的结构及方法
CN112933597B (zh) 图像处理方法、装置、计算机设备及存储介质
CN101911125B (zh) 图形处理系统中对离屏表面的多重缓冲支持
US20070229503A1 (en) Method of and system for non-uniform image enhancement
CN107248193A (zh) 二维平面与虚拟现实场景进行切换的方法、系统及装置
CN110291563A (zh) 图形处理中的多个着色器进程
CN102867284B (zh) 一种图形绘制引擎装置及其实现方法
WO2021135320A1 (zh) 一种视频的生成方法、装置及计算机系统
US8698830B2 (en) Image processing apparatus and method for texture-mapping an image onto a computer graphics image
CN107392836A (zh) 使用图形处理管线实现的立体多投影
CN114419226A (zh) 全景渲染方法、装置、计算机设备和存储介质
CN108335342A (zh) 在web浏览器上进行多人绘画的方法、设备和计算机程序产品
US8669996B2 (en) Image processing device and image processing method
Henrysson et al. Using a mobile phone for 6 DOF mesh editing
JP5242788B2 (ja) グラフィックス・イメージングのためのパーティション・ベースのパフォーマンス解析
CN108805964A (zh) 基于OpenGL ES的VR机顶盒启动动画制作方法及系统
JP2000339499A (ja) テクスチャマッピング・テクスチャモザイク処理装置
Ikedo High-speed techniques for a 3-D color graphics terminal
Peddie 1980–1989, Graphics Controllers on Other Platforms
Barkovska et al. Research on Model Rendering Performance in Blender 3D Using Massively Parallel Systems

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