OpenGL ES/SDL渲染,F(xiàn)Fmpeg ;VR分屏之OpenGL-OpenGL ES來播放視頻.MediaPlayer+GLSurfaceView+openGL
? OpenGL ES用來繪制屏幕及分屏,F(xiàn)Fmpeg用來音視頻編碼解碼等。
正在跳轉(zhuǎn)(iOS交流裙 密碼:123)
> OpenGL與Unity3D
?OpenGL 是一個相對底層的框架。會提供一系列函數(shù)框架作為 API 提供給開發(fā)者使用。OpenGL制作VR 播放器。
?Unity3D 是一個跨平臺的游戲引擎。解決的是游戲制作人通過什么東西來做游戲的問題。本身包含很多游戲相關(guān)的功能,比如繪圖,播動畫,放音樂,聯(lián)網(wǎng)等等。
OpenGL是右手系,但是Unity和D3D卻是左手系(Unity在觀察坐標(biāo)系又是右手系)?
? ? OpenGL ES是在圖形圖像中,非常優(yōu)秀的渲染庫,既然是渲染,就那會和視頻離不開,早期是FFmpeg解碼視頻,用于顯示視頻是通過surfaceView。今天通過OpenGL+SurfaceTexure進行顯示視頻。
? ? OpenGL大量使用了向量和矩陣,矩陣的最重要的用途之一就是建立正交和透視投影。其原因之一是,從本質(zhì)上來說,使用矩陣做投影只涉及對一組數(shù)據(jù)按順序執(zhí)行大量的加法和乘法,這些運算在現(xiàn)代GPU上執(zhí)行的非???。
> Google VR
正在跳轉(zhuǎn)(iOS交流裙 密碼:123)
Android N VR代碼簡析- http://www.itdecent.cn/p/027916e345bc
? Google單獨分離出一個SDK,除了方便應(yīng)用開發(fā)者之外,主要的目的是用來把VR的一些核心算法隱藏起來,比如用來減少延遲的ATW異步時間扭曲算法就是被封裝在這里.手機上面運行VR的時候一個最大的挑戰(zhàn)就是延遲,當(dāng)一副畫面的延遲超過20MS,人就會感覺不舒服惡心,嚴(yán)重影響用戶體驗,一個好的VR產(chǎn)品都會盡量避免延遲。.
? Google VR SDK應(yīng)該是解決了ATW算法和多分辨率渲染等優(yōu)化問題,然后新增了一個系統(tǒng)服務(wù)VrManagerService和 vr HAL層, 應(yīng)用通過VrManagerService來設(shè)置系統(tǒng)進入VR模式,VrManagerService又是通過vr HAL層去實現(xiàn)具體模式的切換的。
? VR全景圖+Opengl3D模型展示- https://github.com/DrownCoder/VRShow
Google VR研究,發(fā)現(xiàn)它閉源 可定制的東西比較少,可以舍棄它了
翻墻看google VR 官方文檔:https://developers.google.com/vr/android/ ?https://developers.google.com/vr/android/reference_overview
https://github.com/googlevr/gvr-android-sdk.git ?https://github.com/ejeinc/RajawaliCardboardExample cardboard的demo
谷歌google vr demo- http://download.csdn.net/detail/zph1596946/9543674
http://www.androidauthority.com/developing-with-the-google-vr-sdk-and-ndk-699472/
? Google provides developers with two virtual reality (VR) platforms: Cardboard, the world's most popular and accessible mobile VR platform, and Daydream, a new platform for low-latency, immersive, and interactive mobile VR.
? A physical Android device running Android 4.4 (KitKat) or higher for Cardboard apps or a Daydream Ready phone
? Both of these samples are single activity applications that display an embedded panoramic image or video using VrPanoramaView and VrVideoView, respectively.
正在跳轉(zhuǎn)(iOS交流裙 密碼:123)
-- 利用 Google Cardboard 及 Rajawali 3D 開發(fā)的VR播放器- https://github.com/substarry/VRPlayer
EXOplayer,做個視頻的都知道,這個項目也是Google開源的,對流媒體很好的支持。
> VR技術(shù)
-- VR 核心技術(shù)體現(xiàn)在以下幾個方面:
?1.全立體顯示(3D 顯示):包括反畸變算法、多圖像處理
?2.運動追蹤:利用陀螺儀 GyroscopeSensor 加速度計 G-Sensor 等來感應(yīng)我們身體移動和頭部轉(zhuǎn)動
?3.輸入設(shè)備:觸摸板、手柄、無線體感設(shè)備、手勢識別
? 利用手柄的典型方案比如 HTC 的 Vive、Sony 的 PS VR;
? 無線體感設(shè)備比如 雷射的 Hydra、Sixense 的 STEM;
? 手勢識別感應(yīng)設(shè)備比如 Leap Motion 和 Nimble VR;
? 具體哪種方式會成為未來 VR 的 “鼠標(biāo)” 暫時還不明朗。
?4.開發(fā)工具:OpenGL 提供的 API、Unity3D 引擎 等;
-- VR技術(shù)主要從以下方面入手:
SDK層:主要目的是提高圖像質(zhì)量,降低圖像延時。
Framework層:主要對聲音和圖形圖像,功耗進行優(yōu)化。
底層:提高GPU圖像渲染速度和DSP數(shù)據(jù)運算速度,實現(xiàn)低延時。
-- VR視頻播放器最起碼有這些基本功能:
全景360度無死角,支持陀螺儀感應(yīng)和手動拖動瀏覽視頻。支持屏幕類型切換,支持單屏、雙屏等。
FFmpeg在點播視頻和VR視頻中的運用。
正在跳轉(zhuǎn)(iOS交流裙 密碼:123)
> 得圖VR
? 得圖致力于降低VR影像制作成本,提供了從硬件,到軟件,再到完整的行業(yè)應(yīng)用方案。包含了直播軟件,拼接軟件,云制作服務(wù)、SDK等免費服務(wù),為VR影像生產(chǎn)提供了完備的生產(chǎn)工具。
? 得圖VR PanoPlayer Android版SDK使用指南- http://www.detu.com/develop/page/42
> VR xl_player - https://github.com/xl-player-developers/xl_player,
iOS VR HTY360Player- https://github.com/hanton/HTY360Player ? https://github.com/libobjc/SGPlayer
Linux下,CMakeLists.txt及Cpp文件夾在每個module下都有軟鏈接,在Windows下不支持,各自拷貝一份到相應(yīng)的Module下。(跨平臺問題)
Android捕捉圖像后在SurfaceView上變形顯示問題的處理- http://www.cnblogs.com/chenjianxiang/p/4168203.html
?SurfaceView是視圖(View)的繼承類,這個視圖里內(nèi)嵌了一個專門用于繪制的Surface。你可以控制這個Surface的格式和尺寸。Surfaceview控制這個Surface的繪制位置。surface是縱深排序(Z-ordered)的,這表明它總在自己所在窗口的后面。surfaceview變得可見時,surface被創(chuàng)建;surfaceview隱藏前,surface被銷毀。這樣能節(jié)省資源。如果你要查看 surface被創(chuàng)建和銷毀的時機,可以重載surfaceCreated(SurfaceHolder)和 surfaceDestroyed(SurfaceHolder)。
? 整個過程:繼承SurfaceView并實現(xiàn)SurfaceHolder.Callback接口 ----> SurfaceView.getHolder()獲得SurfaceHolder對象 ---->SurfaceHolder.addCallback(callback)添加回調(diào)函數(shù)----
?SurfaceHolder.lockCanvas()獲得Canvas對象并鎖定畫布----> Canvas繪畫 ----
?SurfaceHolder.unlockCanvasAndPost(Canvas canvas)結(jié)束鎖定畫圖,并提交改變,將圖形顯示。
?如何手動銷毀surfaceview 并重建- 很簡單 ?將其設(shè)為View.GONE ?再將其設(shè)為View.visable。
?Android有關(guān)surfaceView重新創(chuàng)建的問題- 解鎖屏之后,surfaceview就會自動重新創(chuàng)建,所以,只需在重新創(chuàng)建之后恢復(fù)到以前的狀態(tài)就可以了。
?關(guān)于Activity與SurfaceView的生命周期 ?。
Canvas canvas = getHolder().lockCanvas();
if (canvas != null) {
? ? if (mCurrentPreviewState == USB_PREVIEW) {
? ? ? ? rect.set(IMG_WIDTH / 2, IMG_HEIGHT / 2, IMG_WIDTH, IMG_HEIGHT);
? ? ? ? canvas.drawColor(Color.TRANSPARENT, Mode.CLEAR);
? ? ? ? canvas.drawBitmap(mPreviewBitmap, null, rect, null);
? ? } else {
? ? ? ? canvas.drawColor(Color.TRANSPARENT, Mode.CLEAR);
? ? ? ? canvas.drawBitmap(mPreviewBitmap, null, rect, null);
? ? } ? ? ? ? ? ? ? ? ??
? ? getHolder().unlockCanvasAndPost(canvas);
}
> 其他VR
正在跳轉(zhuǎn)(iOS交流裙 密碼:123)
Android-VR 支持流媒體- http://blog.csdn.net/honjane/article/details/51884424
VR-- https://github.com/wheat7/VRPlayer?
VR Android播放器實現(xiàn)(二)- http://blog.csdn.net/hebeixmg/article/details/52598902
NitroAction360- https://github.com/Nitro888/NitroAction360 ?https://github.com/hanton/HTY360Player
vrVideo- https://github.com/pondurii/vrVideo
OpenGL ES_手把手教你打造VR全景播- http://www.itdecent.cn/p/0f740901da59
android opengl播放全景視頻- http://www.itdecent.cn/p/254837f663c4
android使用opengl es2.0播放VR視頻- http://www.itdecent.cn/p/b80d70a2b9f4
GLSurfaceView VR視頻- https://github.com/Martin20150405/Pano360
openGL ES進階教程(五)制作一個簡單的VR播放器,播放全景視頻- https://blog.csdn.net/king1425/article/details/76558737
OpenGL從零開始寫一個Android平臺下的全景視頻播放器——目錄- https://blog.csdn.net/Martin20150405/article/details/53149578
從零開始打造一個VR視頻播放器-VRPlayer源碼分析- http://www.itdecent.cn/p/c7a3b1acb8b1
如何做個VR播放器- http://www.gad.qq.com/article/detail/25937#
從零開始寫一個Android平臺下的全景視頻播放器——3.2 使用OpenGL ES 2.0繪制一個球- http://blog.csdn.net/martin20150405/article/details/53888204
[OpenGL]從零開始寫一個Android平臺下的全景視頻播放器- http://blog.csdn.net/Martin20150405/article/category/6274984
Android全景視頻播放器 源代碼- http://download.csdn.net/detail/martin20150405/9681440
Pano360- https://github.com/Martin20150405/Pano360
UtoVR SDK
Facebook surround360 VR,F(xiàn)acebook有一個開源庫叫transform。
VRPlayer is a simple but powerful local VR video player- https://github.com/wheat7/VRPlayer
> Unity 3D VR
Unity3D官方VR的Demo:https://unity3d.com/cn/learn/tutorials/topics/virtual-reality
Unity3D全景視頻播放AVPro Video插件- http://download.csdn.net/download/java886o/9592531
————————————————
正在跳轉(zhuǎn)(iOS交流裙 密碼:123)