CN110083231A - 一种面向安卓VR一体式头显的WebGL全景显示方法 - Google Patents
一种面向安卓VR一体式头显的WebGL全景显示方法 Download PDFInfo
- Publication number
- CN110083231A CN110083231A CN201910185019.0A CN201910185019A CN110083231A CN 110083231 A CN110083231 A CN 110083231A CN 201910185019 A CN201910185019 A CN 201910185019A CN 110083231 A CN110083231 A CN 110083231A
- Authority
- CN
- China
- Prior art keywords
- texture
- android
- interface
- browser
- unity3d
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种面向安卓VR一体式头显的WebGL全景显示方法,包括如下步骤:(1)获取安卓系统的浏览器视图组件,重写该组件的绘制方法,将其界面内容绘制到surfaceTexture中;(2)将纹理通过安卓的GLES线程离屏渲染,绘制到GL普通纹理中;(3)将GL纹理传输到Unity3D引擎中,创建出贴图纹理。(4)使用Unity3D将绘制的纹理显示在安卓一体式虚拟现实设备的摄像机中。本发明避免了由于需要每帧不断渲染图片写入存储而造成的效率开销,同样可以支持流畅的视频处理。实现了原有网上虚拟现实内容的跨平台浏览,极大地丰富了一体式显示设备的内容库,极大地降低了一体式显示设备的开发难度。
Description
技术领域
本发明属于虚拟现实领域,具体涉及一种面向安卓VR一体式头显的WebGL全景显示方法。
背景技术
WebGL技术使得三维内容在线显示、交互成为可能,是现代互联网与每日被释放的新应用程序的主要趋势之一。利用WebGL技术并结合虚拟现实的展示方式,可以让使用者在线浏览更多的虚拟现实内容。使用WebGL使三维网络开发使得虚拟现实内容的开发人员不再需要为每个平台构建一个单独的应用程序。这样的应用程序将即可以在手机上使用虚拟现实眼镜显示也可以在电脑上使用虚拟现实头戴式显示器显示。
目前,WebGL的应用程序可以任何现代的操作系统或平台上运行,但如今支持安卓系统的一体式虚拟现实头戴式显示器设备(一体机)的WebGL浏览器开发仍不完善,仅支持网页幕布的形式而非沉浸式体验的形式进行浏览。这极大的限制了用户使用安卓系统的虚拟现实一体机进行在线浏览。目前一体机头显的开发难度大,难以跨平台开发,导致一体机头显的内容少,不能发挥出一体机头显移动便利,使用体验好的优点。
为此,本发明提出一种面向安卓VR一体式头显的WebGL全景显示方法。本发明通过一种将安卓的浏览器视图转化为OenglGL纹理的方法将安卓浏览器的内容转换成纹理并传递到安卓设备的开发环境中,从而实现一体机的在线虚拟现实体验。并且,使用这种方法可以有效提升纹理的实时传输帧率,可以将原本的WebGL虚拟现实内容移植到安卓的一体机头显中,使得一体机的开发跨平台成为可能。本方法广泛适用于各种虚拟现实漫游的展示领域,如效果展示,教育领域等,可以轻松实现以往虚拟现实内容到一体机设备的移植。
发明内容
针对现有技术所存在的上述技术缺陷,本发明提供了一种面向安卓VR一体式头显的WebGL全景显示方法,利用GL纹理的形式进行安卓浏览器界面纹理的绘制,实现了在虚拟现实安卓一体机上进行webgl的全景漫游方法。
一种面向安卓VR一体式头显的WebGL全景显示方法,包括如下步骤:
步骤(1)获取安卓系统的浏览器视图组件,重写浏览器组件的绘制方法,将浏览器组件的界面内容绘制到surfaceTexture中;
步骤(2)将步骤(1)中绘制的纹理通过安卓的GLES线程离屏渲染,绘制到GL纹理中;
步骤(3)将绘制的GL纹理传输到Unity3D引擎中,创建出纹理。
步骤(4)使用Unity3D将上一步绘制的纹理传递给安卓一体式虚拟现实设备的摄像机进行显示。
所述的步骤(1)中,获取安卓系统的浏览器视图组件,若使用自带的浏览器视图组件,视图不能全屏显示,会极大的限制使用设备进行网上浏览全景页面的体验。需要重写浏览器UI组件的绘制方法,将浏览器组件的界面内容绘制到纹理surfaceTexture中,具体包括步骤如下所示:
1-1.获取安卓活动主活动进程,为主活动进程开启用户界面UI线程,在该线程下,插入浏览器视图UI和OpenGL渲染线程;
1-2.重写浏览器视图UI的绘制方法:
1-2-1.设置接口函数,设置surface和surfaceTexture类型的中间变量,用于传输纹理数据;
1-2-2.在安卓的浏览器类方法中使用surface来获取UI组件的显示内容。继承步骤1-2-1中设置的接口,重写浏览器组件的绘制方法,将由接口继承的surface变量同步到画布上,并且将该surface的内容绘制到由接口继承的surfaceTexture上。每一帧浏览器视图进行绘制时,先将其锁定,该画布绘制完成后,解锁当前的绘制内容;
所述的步骤(2)中,将步骤(1)中绘制的纹理通过安卓的GLES线程离屏渲染,绘制到GL纹理中,具体实施步骤如下所示:
2-1.继承安卓的OpenGL渲染接口,必须需实现此接口的初始化方法、创建方法和更新帧方法等虚方法;
2-1-1.初始化方法中,将步骤(1)设置好的浏览器UI组件作为参数,以获取步骤(1)中绘制的surface和surfaceTexture;
2-1-2.创建方法中,创建OpenGL的扩展纹理和普通2D纹理,设置帧缓存对象,设置OpenGL绘制环境;
2-1-3.更新帧方法中,更新surfaceTexture,使用帧缓存对象对扩展纹理离屏渲染到普通纹理中;
所述的步骤(3)中,将步骤(2)绘制的GL纹理传输到Unity3D引擎中,创建出纹理,具体包括如下步骤:
3-1.将准备的安卓方法打包成库,导入到Unity3D中,设置安卓环境,由于本发明中的安卓方法没有新的活动进程,配置文件无需设置安卓的进程参数;
3-2.在Unity3D中调用步骤(2)中OpenGL渲染接口的JAVA方法;
3-3.在Unity3D的生命周期函数的初始化方法中,调用JAVA方法中的创建纹理方法,使用创建的纹理序号,创建外部纹理,然后绑定到游戏物体的纹理;
3-4.在Unity3D更新帧的生命周期函数中,调用该对象的更新方法,使用Unity3D中更新纹理的方法更新纹理。
所述的步骤(4)中,使用Unity3D将步骤(3)绘制的纹理传递给安卓一体式头戴式显示设备的摄像机进行显示,具体包括如下步骤:
4-1.设置该设备运行环境;
4-2.设置三维面物体为跟随摄像机运动,将步骤(3)创建的纹理贴图赋予该面物体,设备浏览器界面最终将实现全景浏览效果。
本发明有益效果如下:
本发明通过一种纹理格式转换方法将安卓的浏览器UI组件渲染成纹理,显示到安卓系统的一体式虚拟现实设备中。并且选择使用OpenGL纹理格式进行传输,避免了由于需要每帧不断渲染图片写入存储而造成的效率开销,同样可以支持流畅的视频处理。可以将原本网上全景浏览的内容移植到安卓系统的头戴式显示设备中。可以使得平台的扩展开发成本降低,使用户获得更多的浏览内容和更好地浏览体验。本方法广泛适用于各种虚拟现实全景漫游的展示领域,如效果展示,教育领域等,帧率可以达25以上。
本发明实现了原有网上虚拟现实内容的跨平台浏览,极大地丰富了一体式显示设备的内容库,极大地降低了一体式显示设备的开发难度。
附图说明
图1为本发明流程示意图;
图2为本发明中安卓部分纹理渲染及纹理格式转换流程图;
图3为本发明中Unity3D引擎调用JAVA方法的顺序对应;
图4为在Unity3D引擎中摄像机与纹理的对应方式示意图;
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的一体式头显的WebGL全景显示方法进行详细说明。
如图1所示,一种面向安卓VR一体式头显的WebGL全景显示方法,包括如下步骤:
步骤(1)获取安卓系统的浏览器UI组件,若使用自带的浏览器UI组件,视图不能全屏显示,会极大的限制使用设备进行网上浏览全景页面的体验。需要重写浏览器UI组件的绘制方法,将浏览器UI组件的界面内容绘制到纹理surfaceTexture中,具体包括步骤如下所示:
1-1.获取安卓活动主活动进程,为主活动进程开启用户界面UI线程,在该线程下,插入浏览器UI组件和OpenGL渲染线程;
1-2.重写浏览器UI组件的绘制方法:
1-2-1.设置接口函数,设置surface和surfaceTexture类型的中间变量,用于传输纹理数据;
1-2-2.在安卓浏览器UI组件的类方法中使用surface来获取组件的显示内容。继承上一步中设置的接口,重写浏览器UI组件的绘制方法,将由接口继承的surface内容同步到画布上,并且将该surface的内容绘制到由接口继承的surfaceTexture上。每一帧浏览器视图进行绘制时,先将其锁定,当画布绘制完成后,解锁当前绘制内容;
步骤(2)将步骤(1)中绘制的纹理通过安卓的GLES线程离屏渲染,绘制到GL纹理中,具体实施步骤如图2所示:
2-1.继承安卓的OpenGL渲染接口,必须需实现此接口的初始化方法,创建方法,更新帧方法等虚方法;
2-1-1.初始化方法中,将步骤(1)设置好的浏览器组件作为参数,以获取步骤(1)中绘制的surface和surfaceTexture;
2-1-2.创建方法中,创建OpenGL的扩展纹理,和普通2D纹理,设置帧缓存对象。设置OpenGL绘制环境;
2-1-3.更新帧方法中,更新surfaceTexture,使用帧缓存对象对扩展纹理离屏渲染到普通纹理中;
步骤(3)如图3所示将上一步绘制的GL纹理传输到Unity3D引擎中,创建出纹理,具体包括如下步骤:
3-1.将上述步骤中准备的安卓方法打包成库,导入到Unity3D中,设置安卓环境,本安卓方法没有新的活动进程,配置文件无需设置安卓的进程参数;
3-2.在Unity3D中调用步骤二中OpenGL渲染接口的JAVA方法;
3-3.在Unity3D的生命周期函数的初始化方法中,调用JAVA方法中的创建纹理方法,使用创建的纹理序号,创建外部纹理,然后绑定到游戏物体的纹理;
3-4.在Unity3D更新帧的生命周期函数中,调用该对象的更新方法,使用Unity3D中更新纹理的方法更新纹理。
步骤(4)如图4所示,使用Unity3D将上一步绘制的纹理传递给安卓一体式头戴式显示设备的摄像机进行显示,具体包括如下步骤:
4-1.设置该设备运行环境;
4-2.设置三维面物体为跟随摄像机运动,将步骤(3)创建的纹理贴图赋予该面物体。设备浏览器界面最终将实现全景浏览效果。
Claims (5)
1.一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于包括如下步骤:
步骤(1)获取安卓系统的浏览器视图组件,重写浏览器组件的绘制方法,将浏览器组件的界面内容绘制到surfaceTexture中;
步骤(2)将步骤(1)中绘制的纹理通过安卓的GLES线程离屏渲染,绘制到GL纹理中;
步骤(3)将绘制的GL纹理传输到Unity3D引擎中,创建出纹理;
步骤(4)使用Unity3D将上一步绘制的纹理传递给安卓一体式虚拟现实设备的摄像机进行显示。
2.根据权利要求1所述的一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于:所述的步骤(1)具体实现步骤如下:
1-1.获取安卓活动主活动进程,为主活动进程开启用户界面UI线程,在该线程下,插入浏览器视图UI和OpenGL渲染线程;
1-2.重写浏览器视图UI的绘制方法:
1-2-1.设置接口函数、设置surface和surfaceTexture类型的中间变量,用于传输纹理数据;
1-2-2.在安卓的浏览器类方法中使用surface来获取UI组件的显示内容;继承步骤1-2-1中设置的接口,重写浏览器组件的绘制方法,将由接口继承的surface变量同步到画布上,并且将该surface的内容绘制到由接口继承的surfaceTexture上;每一帧浏览器视图进行绘制时,先将其锁定,该画布绘制完成后,解锁当前的绘制内容。
3.根据权利要求2所述的一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于:所述的步骤(2)中具体实施步骤如下:
2-1.继承安卓的OpenGL渲染接口,必须实现此接口的初始化方法、创建方法和更新帧方法;
2-1-1.初始化方法中:将步骤(1)设置好的浏览器UI组件作为参数,以获取步骤(1)中绘制的surface和surfaceTexture;
2-1-2.创建方法中:创建OpenGL的扩展纹理和普通2D纹理,设置帧缓存对象,设置OpenGL绘制环境;
2-1-3.更新帧方法中:更新surfaceTexture,使用帧缓存对象对扩展纹理离屏渲染到普通纹理中。
4.根据权利要求3所述的一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于:所述的步骤(3)具体包括如下步骤:
3-1.将准备好的安卓方法打包成库,导入到Unity3D中,设置安卓环境,配置文件无需设置安卓的进程参数;
3-2.在Unity3D中调用步骤(2)中OpenGL渲染接口的JAVA方法;
3-3.在Unity3D的生命周期函数的初始化方法中,调用JAVA方法中的创建纹理方法,使用创建的纹理序号,创建外部纹理,然后绑定到游戏物体的纹理;
3-4.在Unity3D更新帧的生命周期函数中,调用该对象的更新方法,使用Unity3D中更新纹理的方法更新纹理。
5.根据权利要求4所述的一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于:所述的步骤(4)中具体包括如下步骤:
4-1.设置该设备运行环境;
4-2.设置三维面物体为跟随摄像机运动,将步骤(3)创建的纹理贴图赋予该面物体;设备浏览器界面最终将实现全景浏览效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910185019.0A CN110083231B (zh) | 2019-03-12 | 2019-03-12 | 一种面向安卓VR一体式头显的WebGL全景显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910185019.0A CN110083231B (zh) | 2019-03-12 | 2019-03-12 | 一种面向安卓VR一体式头显的WebGL全景显示方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110083231A true CN110083231A (zh) | 2019-08-02 |
CN110083231B CN110083231B (zh) | 2022-04-08 |
Family
ID=67413148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910185019.0A Active CN110083231B (zh) | 2019-03-12 | 2019-03-12 | 一种面向安卓VR一体式头显的WebGL全景显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083231B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130047071A (ko) * | 2011-10-31 | 2013-05-08 | 삼성에스디에스 주식회사 | 모바일용 혼합현실 어플리케이션 개발 장치 및 그 방법 |
CN104021585A (zh) * | 2014-06-09 | 2014-09-03 | 苏州明日吉辰软件研发有限公司 | 基于真实场景的三维展示方法 |
CN106886404A (zh) * | 2017-01-17 | 2017-06-23 | 武汉卓尔云市集团有限公司 | 一种android的3D渲染装置 |
CN107832108A (zh) * | 2016-09-14 | 2018-03-23 | 阿里巴巴集团控股有限公司 | 3D canvas网页元素的渲染方法、装置及电子设备 |
CN108668168A (zh) * | 2018-05-28 | 2018-10-16 | 烽火通信科技股份有限公司 | 基于Unity 3D的安卓VR视频播放器及其设计方法 |
-
2019
- 2019-03-12 CN CN201910185019.0A patent/CN110083231B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130047071A (ko) * | 2011-10-31 | 2013-05-08 | 삼성에스디에스 주식회사 | 모바일용 혼합현실 어플리케이션 개발 장치 및 그 방법 |
CN104021585A (zh) * | 2014-06-09 | 2014-09-03 | 苏州明日吉辰软件研发有限公司 | 基于真实场景的三维展示方法 |
CN107832108A (zh) * | 2016-09-14 | 2018-03-23 | 阿里巴巴集团控股有限公司 | 3D canvas网页元素的渲染方法、装置及电子设备 |
CN106886404A (zh) * | 2017-01-17 | 2017-06-23 | 武汉卓尔云市集团有限公司 | 一种android的3D渲染装置 |
CN108668168A (zh) * | 2018-05-28 | 2018-10-16 | 烽火通信科技股份有限公司 | 基于Unity 3D的安卓VR视频播放器及其设计方法 |
Non-Patent Citations (1)
Title |
---|
茶向: "把Android原生的View渲染到OpenGL Texture", 《CSDN网址:HTTPS://BLOG.CSDN.NET/SGNYYY/ARTICLE/DETAILS/52551184》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110083231B (zh) | 2022-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108010112B (zh) | 动画处理方法、装置及存储介质 | |
CN105447898B (zh) | 一种虚拟现实设备中显示2d应用界面的方法和装置 | |
JP4481166B2 (ja) | ユーザによる合成画像およびビデオ画像のリアルタイムのミキシングを可能にする方法およびシステム | |
CN101911125B (zh) | 图形处理系统中对离屏表面的多重缓冲支持 | |
CN111803945B (zh) | 界面渲染方法、装置、电子设备及存储介质 | |
CN106528096B (zh) | 一种在d3d12全屏游戏源上绘制弹幕图像的方法及系统 | |
CN104765594B (zh) | 一种显示图形用户界面的方法及装置 | |
CN103413343B (zh) | 一种3d图像动画引擎 | |
CN105528207A (zh) | 一种虚拟现实系统及其中显示安卓应用图像的方法和装置 | |
CN105096368B (zh) | 三维对象处理方法和相关装置 | |
CN111710020B (zh) | 动画渲染方法和装置及存储介质 | |
CN108228121B (zh) | 一种浏览器分屏的方法、装置及移动终端 | |
CN109410300A (zh) | 一种游戏场景中的阴影处理方法及装置及终端设备 | |
CN104866318A (zh) | 一种多窗口中标签页的展示方法及装置 | |
CN114401443B (zh) | 特效视频处理方法、装置、电子设备及存储介质 | |
WO2019196589A1 (zh) | 图像处理方法、设备、装置、图像贴合方法、设备、显示方法、装置及计算机可读介质 | |
CN107203434A (zh) | 一种纹理共享的方法、装置以及计算机可读存储介质 | |
CN108133453A (zh) | 一种基于OpenGL的图像处理器及其功能扩展方法 | |
CN105898272A (zh) | 360度图像加载方法、加载模块及移动终端 | |
CN108256072B (zh) | 相册显示方法、装置、存储介质以及电子设备 | |
CN106157353B (zh) | 一种文字渲染方法和文字渲染装置 | |
CN106204418A (zh) | 一种虚拟现实移动端中基于矩阵逆运算的图像扭曲方法 | |
CN106354449B (zh) | 一种文档在线演示方法及客户端 | |
CN106708356B (zh) | 提示标签展示方法和装置 | |
CN110083231A (zh) | 一种面向安卓VR一体式头显的WebGL全景显示方法 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220902 Address after: Room 405, 6-8 Jiaogong Road, Xihu District, Hangzhou City, Zhejiang Province, 310013 Patentee after: Hangzhou Taoyi Data Technology Co.,Ltd. Address before: 310018 No. 2 street, Xiasha Higher Education Zone, Hangzhou, Zhejiang Patentee before: HANGZHOU DIANZI University |
|
TR01 | Transfer of patent right |