CN106604087A - 一种全景直播的渲染实现方法 - Google Patents
一种全景直播的渲染实现方法 Download PDFInfo
- Publication number
- CN106604087A CN106604087A CN201611146565.6A CN201611146565A CN106604087A CN 106604087 A CN106604087 A CN 106604087A CN 201611146565 A CN201611146565 A CN 201611146565A CN 106604087 A CN106604087 A CN 106604087A
- Authority
- CN
- China
- Prior art keywords
- matrix
- data
- mobile phone
- panorama
- axis
- 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
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000009877 rendering Methods 0.000 title claims abstract description 9
- 239000011159 matrix material Substances 0.000 claims abstract description 71
- 238000013507 mapping Methods 0.000 claims abstract description 6
- 230000008859 change Effects 0.000 claims description 6
- 230000004438 eyesight Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 230000000007 visual effect Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 101150054987 ChAT gene Proteins 0.000 description 1
- 101100203187 Mus musculus Sh2d3c gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 210000004247 hand Anatomy 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种全景直播的渲染实现方法。获取渲染像素,创建一个球体模型,实时用手机内部陀螺仪的旋转矩阵数据转换生成新矩阵作为OpenGL中的ModelView矩阵,并将转换成RGB格式的数据传到手机的GPU中,在球体模型上进行纹理贴图,从位于中心的虚拟摄像机视角进行全景播放,实现全景直播。本发明能大大提升用户的体验,让用户比观看普通直播获得更多的乐趣。
Description
技术领域
本发明涉及了视频播放渲染方法,尤其是涉及一种全景直播的渲染实现方法。
背景技术
随着手机直播的火爆和全景技术的火爆,现在市面上出现了大量的直播APP和全景视频播放器。直播APP的出现,让大家可以实时分享自己周围的新鲜事物,可以使人们更加近距离的聊天互动。而随着VR技术的发展,全景播放器也层出不穷。全景播放的沉浸式体验让用户可以在观看视频时更加真切地体会到虚拟现实的感觉。虽然两个技术在当下都很火爆,但少有交集,现有技术中缺少了针对全景直播的渲染实现方式。
发明内容
为了解决背景技术中存在的问题,本发明提供了一种全景直播的渲染实现方法。本发明是将全景播放和直播技术手段融合起来,实现全景直播来满足用户更多的需求,并给用户带来更好地体验。
方法首先需要遵循相关的通信协议实现对直播流的接收;再对接收到的数据进行解复用,解码;最后通过OpenGL ES进行渲染,将纹理贴到一个生成的球体模型上,来实现全景的效果,最终实现全景直播。
本发明采用的具体技术方案,包括以下步骤对全景拍摄视频数据进行处理:
1)通过调用相关的接口获取当前手机屏幕的渲染像素,并进一步控制手机屏幕显示的渲染区域大小和位置;
2)创建一个球体模型,球体模型用于后续步骤的纹理贴图;
创建一个球体模型后,将球体模型的上的每个顶点进行绑定,在贴图时将纹理贴到球体模型对应的每个顶点上,这样就将纹理都贴到了球体模型上。
3)实时获取手机内部陀螺仪的旋转矩阵数据,因为手机在播放时需要将手机横置,所以要用旋转矩阵数据转换生成一个4×4的新矩阵,以新矩阵作为OpenGL中的ModelView矩阵,以使得手机上渲染的图像能实时响应手机位置状态的变化;
4)对全景拍摄视频数据中的YUV数据通过计算转换成RGB数据,将RGB数据传到手机的GPU中,由GPU进行渲染,将RGB数据作为纹理贴到球体模型上,虚拟摄像机置于在球体的中心,从虚拟摄像机视角进行全景播放,从而实现全景直播。
本发明是在针对已获得的全景直播的视频数据基础上,采用本方法进行渲染,获得优化的屏幕呈现方法。
所述步骤1)具体为通过手机中软件系统的API获得原始数据,计算后获得屏幕的渲染像素。并利用渲染像素设定在手机屏幕界面上的渲染区域的位置和大小,既能单屏显示,也能实现视频播放的分屏功能,将画面分成左右双屏显示出来。
所述步骤3)具体在进行全景直播时,屏幕显示的画面要根据人的移动做出响应的改变,也就是根据手机的位置状态进行改变,因此需要获取能表示手机位置状态的旋转矩阵CMRotationMatrix,CMRotationMatrix中存放了表达一个三维坐标系的数据。用CMRotationMatrix的数据生成一个新的矩阵b,矩阵b用以下形式表示:
m11,m21,m31,0,
m12,m22,m32,0,
m13,m23,m33,0,
0,0,0,1
其中,m11,m12,m13表示旋转矩阵CMRotationMatrix中X轴的三个数据,m21,m22,m23表示旋转矩阵CMRotationMatrix中Y轴的三个数据;m31,m32,m33表示旋转矩阵CMRotationMatrix中Z轴的三个数据;
XYZ三维坐标系中,X轴是沿平行于屏幕的水平方向,Y轴是沿平行于屏幕的竖直方向,Z轴是沿人眼视线方向,屏幕垂直于人眼视线方向;因为手机已经横置,所以要重新调整手机的三维坐标系,所以对生成的矩阵b按照以下方式进行处理:先将矩阵b绕x轴根据右手定则旋转负90度得到矩阵B,接着将矩阵b绕z轴根据右手定则旋转正90度的矩阵A;
然后将矩阵A和矩阵B相乘得到矩阵modelViewMatrix,计算如下:
modelViewMatrix=A×B
以得到的矩阵modelViewMatrix作为OpenGL中的ModelView矩阵,利用ModelView矩阵和Projection Matrix矩阵相乘得到全新矩阵,将全新矩阵传到Vertex Shader中,并将全新矩阵数据与顶点数据相乘后最后传到GPU中,以使得手机上渲染的图像能实时响应手机位置状态的变化。
所述步骤4)中是将全景拍摄视频数据中的YUV数据通过OpenGL中的ShadingLanguage传到GPU中计算转换为RGB数据。
针对已获得的全景拍摄视频数据为解码得到的H264的视频流数据,需要先转换成YUV数据,再将YUV数据转为RGB数据并传入到GPU当中,最终由GPU渲染出画面。
本发明的有益效果是:
本发明能实现直播视频的全景渲染和播放,使用户可以在观看直播时也能体验到全景效果。
附图说明
图1为本发明方法的流程图。
图2为实施例最终显示的效果图。
具体实施方式
下面结合附图和实施技术对本发明技术方案做进一步详细说明。
如图1所示,本发明的实施例及其实施工作过程如下:
1)利用方法创建一个球体,这个球体是用来贴图的模型,使用OpenGL ES的函数将球体的顶点进行绑定。已获得的全景拍摄视频数据为H264格式的视频流数据,最后转换得到的RGB数据会作为纹理贴图到球体模型上。
2)获取能表示手机位置状态的旋转矩阵CMRotationMatrix,CMRotationMatrix中存放了表达一个三维坐标系的数据。用CMRotationMatrix的数据生成一个新的矩阵b,矩阵b用以下形式表示:
m11,m21,m31,0,
m12,m22,m32,0,
m13,m23,m33,0,
0,0,0,1
其中,m11,m12,m13表示旋转矩阵CMRotationMatrix中X轴的三个数据,m21,m22,m23表示旋转矩阵CMRotationMatrix中Y轴的三个数据;m31,m32,m33表示旋转矩阵CMRotationMatrix中Z轴的三个数据;
实施例建立的XYZ三维坐标系中,X轴是沿平行于屏幕的水平方向,Y轴是沿平行于屏幕的竖直方向,Z轴是沿人眼视线方向,屏幕垂直于人眼视线方向,
对生成的矩阵b按照以下方式进行处理:先将矩阵b绕x轴根据右手定则旋转负90度得到矩阵B,接着将矩阵b绕z轴根据右手定则旋转正90度的矩阵A,然后将矩阵A和矩阵B相乘得到矩阵modelViewMatrix,计算如下:
modelViewMatrix=A×B
以得到的矩阵modelViewMatrix作为OpenGL中的ModelView矩阵,利用ModelView矩阵和Projection Matrix矩阵相乘得到全新矩阵,将全新矩阵传到Vertex Shader中,并将全新矩阵数据与顶点数据相乘后最后传到GPU中。
3)在渲染的过程中,要先计算得到当前手机屏幕的渲染像素,然后调用OpenGL中的方法,对屏幕分成左右两部分进行渲染,从而实现双屏的效果。
4)最后利用ijkplayer三方库通过解复用,解码等一系列操作,将已获得的全景拍摄视频数据的H264的数据转化成YUV数据,将YUV数据进行纹理绑定传入到OpenGL的Fragment Shader中,再将YUV数据转成RGB传给GPU,最后由GPU渲染出全景画面,如图2所示,实现全景直播功能。
Claims (5)
1.一种全景直播的渲染实现方法,其特征在于针对已获得的全景拍摄视频数据采用以下步骤进行处理:
1)获取当前手机屏幕的渲染像素,并控制手机屏幕上显示的渲染区域大小和位置;
2)创建一个球体模型,球体模型用于后续步骤的纹理贴图;
3)实时获取手机内部陀螺仪的旋转矩阵数据,用获得的旋转矩阵转换生成一个4×4的新矩阵,新矩阵作为OpenGL中的ModelView矩阵,以使得手机上渲染的图像能实时响应手机位置状态的改变;
4)全景拍摄视频的YUV数据通过计算转换成RGB数据,将RGB数据传到手机的GPU中,由GPU进行渲染,将RGB数据作为纹理贴到球体模型上,虚拟摄像机置于球体的中心,从虚拟摄像机视角进行全景播放,从而实现全景直播。
2.根据权利要求1所述的一种全景直播的渲染实现方法,其特征在于:所述步骤1)具体为通过手机中软件系统的API获得原始数据,计算后获得屏幕的渲染像素。
3.根据权利要求1所述的一种全景直播的渲染实现方法,其特征在于:所述步骤2)具体为:创建一个球体模型用来做纹理贴图,当进行纹理贴图时需要将纹理贴到球体上,这时摄像机的位置在球体的中心,从而实现全景播放的效果。
4.根据权利要求1所述的一种全景直播的渲染实现方法,其特征在于:所述步骤3)具体为:用CMRotationMatrix的数据生成一个新的矩阵b,矩阵b用以下形式表示:
m11,m21,m31,0,
m12,m22,m32,0,
m13,m23,m33,0,
0,0,0,1
其中,m11,m12,m13表示旋转矩阵CMRotationMatrix中X轴的三个数据,m21,m22,m23表示旋转矩阵CMRotationMatrix中Y轴的三个数据;m31,m32,m33表示旋转矩阵CMRotationMatrix中Z轴的三个数据;
X轴是沿平行于屏幕的水平方向,Y轴是沿平行于屏幕的竖直方向,Z轴是沿人眼视线方向,屏幕垂直于人眼视线方向;
对生成的矩阵b按照以下方式进行处理:先将矩阵b绕x轴根据右手定则旋转负90度得到矩阵B,接着将矩阵b绕z轴根据右手定则旋转正90度的矩阵A,然后将矩阵A和矩阵B相乘得到矩阵modelViewMatrix,以得到的矩阵modelViewMatrix作为OpenGL中的ModelView矩阵,利用ModelView矩阵和Projection Matrix矩阵相乘得到全新矩阵,将全新矩阵传到Vertex Shader中,并将全新矩阵数据与顶点数据相乘后最后传到GPU中,以使得手机上渲染的图像能实时响应手机位置状态的变化。
5.根据权利要求1所述的一种全景直播的渲染实现方法,其特征在于:所述步骤4)具体为:将最终获取到的数据通过OpenGL中的Shading Language传到GPU中,将YUV数据通过计算得到RGB数据,最后由GPU进行渲染显示画面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611146565.6A CN106604087B (zh) | 2016-12-13 | 2016-12-13 | 一种全景直播的渲染实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611146565.6A CN106604087B (zh) | 2016-12-13 | 2016-12-13 | 一种全景直播的渲染实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106604087A true CN106604087A (zh) | 2017-04-26 |
CN106604087B CN106604087B (zh) | 2019-09-10 |
Family
ID=58801936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611146565.6A Active CN106604087B (zh) | 2016-12-13 | 2016-12-13 | 一种全景直播的渲染实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106604087B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681987A (zh) * | 2018-05-10 | 2018-10-19 | 广州腾讯科技有限公司 | 生成全景切片图的方法和装置 |
CN109889814A (zh) * | 2019-03-18 | 2019-06-14 | 罗叶迪 | 非固定全景视频对虚拟现实头戴原生实时视频直播方法 |
CN110536076A (zh) * | 2018-05-23 | 2019-12-03 | 福建天晴数码有限公司 | 一种Unity全景视频录制的方法及终端 |
CN112702522A (zh) * | 2020-12-25 | 2021-04-23 | 李灯 | 一种基于vr直播系统的自适应控制播放方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150186744A1 (en) * | 2013-12-31 | 2015-07-02 | Personify, Inc. | Transmitting video and sharing content via a network |
CN105163158A (zh) * | 2015-08-05 | 2015-12-16 | 北京奇艺世纪科技有限公司 | 一种图像处理方法和装置 |
CN105741341A (zh) * | 2016-01-27 | 2016-07-06 | 桂林长海发展有限责任公司 | 一种三维空间环境成像系统及方法 |
CN105913478A (zh) * | 2015-12-28 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 360度全景显示方法、显示模块及移动终端 |
-
2016
- 2016-12-13 CN CN201611146565.6A patent/CN106604087B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150186744A1 (en) * | 2013-12-31 | 2015-07-02 | Personify, Inc. | Transmitting video and sharing content via a network |
CN105163158A (zh) * | 2015-08-05 | 2015-12-16 | 北京奇艺世纪科技有限公司 | 一种图像处理方法和装置 |
CN105913478A (zh) * | 2015-12-28 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 360度全景显示方法、显示模块及移动终端 |
CN105741341A (zh) * | 2016-01-27 | 2016-07-06 | 桂林长海发展有限责任公司 | 一种三维空间环境成像系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681987A (zh) * | 2018-05-10 | 2018-10-19 | 广州腾讯科技有限公司 | 生成全景切片图的方法和装置 |
CN110536076A (zh) * | 2018-05-23 | 2019-12-03 | 福建天晴数码有限公司 | 一种Unity全景视频录制的方法及终端 |
CN109889814A (zh) * | 2019-03-18 | 2019-06-14 | 罗叶迪 | 非固定全景视频对虚拟现实头戴原生实时视频直播方法 |
CN112702522A (zh) * | 2020-12-25 | 2021-04-23 | 李灯 | 一种基于vr直播系统的自适应控制播放方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106604087B (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789991B (zh) | 一种基于虚拟场景的多人互动网络直播方法及系统 | |
CN113099204B (zh) | 一种基于vr头戴显示设备的远程实景增强现实方法 | |
WO2018045927A1 (zh) | 一种基于三维虚拟技术的网络实时互动直播方法及装置 | |
CN108648257B (zh) | 全景画面的获取方法、装置、存储介质及电子装置 | |
CN106792246B (zh) | 一种融合式虚拟场景互动的方法及系统 | |
JP4173477B2 (ja) | リアルタイムレンダリング方法 | |
CN106101741B (zh) | 在网络视频直播平台上观看全景视频的方法及系统 | |
WO2019041351A1 (zh) | 一种3d vr视频与虚拟三维场景实时混叠渲染的方法 | |
CN106604087B (zh) | 一种全景直播的渲染实现方法 | |
CN106165415A (zh) | 立体观看 | |
CN106919248A (zh) | 应用于虚拟现实的内容传输方法以及设备 | |
CN114401414B (zh) | 沉浸式直播的信息显示方法及系统、信息推送方法 | |
CN105872353A (zh) | 一种在移动设备上实现播放全景视频的系统和方法 | |
CN104740874B (zh) | 一种在二维游戏场景中播放视频的方法及系统 | |
CN105959595A (zh) | 一种虚拟现实实时交互中虚拟对现实自主响应方法 | |
CN106210856B (zh) | 在网络视频直播平台上观看3d全景视频的方法及系统 | |
CN110809173B (zh) | 基于智能手机ar增强现实的虚拟直播方法及系统 | |
CN102340690A (zh) | 一种互动电视节目系统及实现方法 | |
CN106792151A (zh) | 一种虚拟现实全景视频播放方法 | |
CN106851244A (zh) | 基于网络视频直播平台观看3d全景视频的方法及系统 | |
CN107562185B (zh) | 一种基于头戴vr设备的光场显示系统及实现方法 | |
CN106780759A (zh) | 基于图片构建场景立体全景图的方法、装置及vr系统 | |
CN104581119A (zh) | 一种3d图像的显示方法和一种头戴设备 | |
WO2022191070A1 (ja) | 3dオブジェクトのストリーミング方法、装置、及びプログラム | |
US11348252B1 (en) | Method and apparatus for supporting augmented and/or virtual reality playback using tracked objects |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230823 Address after: Room 101, Building B, Science and Technology Incubation Park, No. 199 Yangzhou South Road, Fengchuan Street, Tonglu County, Hangzhou City, Zhejiang Province, 325208 Patentee after: Hangzhou Chaoyi Technology Co.,Ltd. Address before: 3/F, Building 8, Internet Village, Dream Town, No. 1399 Liangmu Road, Yuhang District, Hangzhou City, Zhejiang Province, 310000 Patentee before: IMMERSION CO.,LTD. |