CN110083231B - 一种面向安卓VR一体式头显的WebGL全景显示方法 - Google Patents

一种面向安卓VR一体式头显的WebGL全景显示方法 Download PDF

Info

Publication number
CN110083231B
CN110083231B CN201910185019.0A CN201910185019A CN110083231B CN 110083231 B CN110083231 B CN 110083231B CN 201910185019 A CN201910185019 A CN 201910185019A CN 110083231 B CN110083231 B CN 110083231B
Authority
CN
China
Prior art keywords
texture
android
browser
interface
display
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.)
Active
Application number
CN201910185019.0A
Other languages
English (en)
Other versions
CN110083231A (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.)
Hangzhou Taoyi Data Technology Co ltd
Original Assignee
Hangzhou Dianzi University
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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201910185019.0A priority Critical patent/CN110083231B/zh
Publication of CN110083231A publication Critical patent/CN110083231A/zh
Application granted granted Critical
Publication of CN110083231B publication Critical patent/CN110083231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Abstract

本发明公开了一种面向安卓VR一体式头显的WebGL全景显示方法,包括如下步骤:(1)获取安卓系统的浏览器视图组件,重写该组件的绘制方法,将其界面内容绘制到surfaceTexture中;(2)将纹理通过安卓的GLES线程离屏渲染,绘制到GL普通纹理中;(3)将GL纹理传输到Unity3D引擎中,创建出贴图纹理。(4)使用Unity3D将绘制的纹理显示在安卓一体式虚拟现实设备的摄像机中。本发明避免了由于需要每帧不断渲染图片写入存储而造成的效率开销,同样可以支持流畅的视频处理。实现了原有网上虚拟现实内容的跨平台浏览,极大地丰富了一体式显示设备的内容库,极大地降低了一体式显示设备的开发难度。

Description

一种面向安卓VR一体式头显的WebGL全景显示方法
技术领域
本发明属于虚拟现实领域,具体涉及一种面向安卓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 (4)

1.一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于包括如下步骤:
步骤(1)获取安卓系统的浏览器视图组件,重写浏览器组件的绘制方法,将浏览器组件的界面内容绘制到surfaceTexture中;
步骤(2)将步骤(1)中绘制的纹理通过安卓的GLES线程离屏渲染,绘制到GL纹理中;
步骤(3)将绘制的GL纹理传输到Unity3D引擎中,创建出纹理;
步骤(4)使用Unity3D将上一步绘制的纹理传递给安卓一体式虚拟现实设备的摄像机进行显示;
所述的步骤(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上;每一帧浏览器视图进行绘制时,先将其锁定,该画布绘制完成后,解锁当前的绘制内容。
2.根据权利要求1所述的一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于:所述的步骤(2)中具体实施步骤如下:
2-1.继承安卓的OpenGL渲染接口,必须实现此接口的初始化方法、创建方法和更新帧方法;
2-1-1.初始化方法中:将步骤(1)设置好的浏览器UI组件作为参数,以获取步骤(1)中绘制的surface和surfaceTexture;
2-1-2.创建方法中:创建OpenGL的扩展纹理和普通2D纹理,设置帧缓存对象,设置OpenGL绘制环境;
2-1-3.更新帧方法中:更新surfaceTexture,使用帧缓存对象对扩展纹理离屏渲染到普通纹理中。
3.根据权利要求2所述的一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于:所述的步骤(3)具体包括如下步骤:
3-1.将准备好的安卓方法打包成库,导入到Unity3D中,设置安卓环境,配置文件无需设置安卓的进程参数;
3-2.在Unity3D中调用步骤(2)中OpenGL渲染接口的JAVA方法;
3-3.在Unity3D的生命周期函数的初始化方法中,调用JAVA方法中的创建纹理方法,使用创建的纹理序号,创建外部纹理,然后绑定到游戏物体的纹理;
3-4.在Unity3D更新帧的生命周期函数中,调用该对象的更新方法,使用Unity3D中更新纹理的方法更新纹理。
4.根据权利要求3所述的一种面向安卓VR一体式头显的WebGL全景显示方法,其特征在于:所述的步骤(4)中具体包括如下步骤:
4-1.设置该设备运行环境;
4-2.设置三维面物体为跟随摄像机运动,将步骤(3)创建的纹理贴图赋予该面物体;设备浏览器界面最终将实现全景浏览效果。
CN201910185019.0A 2019-03-12 2019-03-12 一种面向安卓VR一体式头显的WebGL全景显示方法 Active CN110083231B (zh)

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 CN110083231A (zh) 2019-08-02
CN110083231B true 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)

* Cited by examiner, † Cited by third party
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视频播放器及其设计方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
把Android原生的View渲染到OpenGL Texture;茶向;《CSDN网址:https://blog.csdn.net/sgnyyy/article/details/52551184》;20160915;第1-9页 *

Also Published As

Publication number Publication date
CN110083231A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
CN107832108B (zh) 3D canvas网页元素的渲染方法、装置及电子设备
CN108010112B (zh) 动画处理方法、装置及存储介质
CN103077239B (zh) 基于云渲染的iFrame嵌入式Web3D系统
CN106062705B (zh) 跨平台渲染引擎
US9240070B2 (en) Methods and systems for viewing dynamic high-resolution 3D imagery over a network
CN102323882B (zh) 一种应用于Web3D的数据处理装置和方法
JP2024505995A (ja) 特殊効果展示方法、装置、機器および媒体
CN110989878B (zh) 小程序中的动画展示方法、装置、电子设备及存储介质
US20200327740A1 (en) Hybrid rendering
CN101911125B (zh) 图形处理系统中对离屏表面的多重缓冲支持
CN107016170A (zh) 一种基于WebGL的LED灯具三维定制仿真方法
CN105321142B (zh) 经由计算流水线进行的采样、错误管理和/或上下文切换
CN105096368B (zh) 三维对象处理方法和相关装置
CN114741044B (zh) 一种基于异构渲染的跨运行环境显示输出共享方法
WO2021008627A1 (zh) 游戏角色渲染方法、装置、电子设备及计算机可读介质
CN113411664B (zh) 基于子应用的视频处理方法、装置和计算机设备
CN110968962A (zh) 基于云渲染在移动端或大屏三维展示方法及系统
CN114741081A (zh) 一种基于异构缓存访问的跨运行环境显示输出共享方法
CN102572391A (zh) 一种摄像头视频帧的精灵化方法和装置
EP4290464A1 (en) Image rendering method and apparatus, and electronic device and storage medium
CN112316433A (zh) 游戏画面渲染方法、装置、服务器和存储介质
CN114494328B (zh) 图像显示方法、装置、电子设备及存储介质
CN111710020A (zh) 动画渲染方法和装置及存储介质
CN114570020A (zh) 数据处理方法以及系统
CN107943805A (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
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