OpenGL能進行高效得渲染圖形圖像,并支持各種復(fù)雜的特效和動畫。
而在 Android 當(dāng)中,運用的是OpenGL ES,它是OpenGL的一個輕量級版本,專門用于在移動設(shè)備、游戲控制臺、嵌入式系統(tǒng)等嵌入式環(huán)境中使用。
它可以做相機濾鏡或者圖片濾鏡的效果,以相機濾鏡為例:
首先 Camera 把攝像頭收集到的數(shù)據(jù)傳給 SurfaceTexture,SurfaceTexture 將數(shù)據(jù)轉(zhuǎn)換為OpenGL? ES可用的紋理,并將其更新到綁定的紋理對象中,OpenGL 根據(jù)紋理ID獲取到紋理對象后,渲染成幀數(shù)據(jù),再通過 EGL 顯示在 Surface 上。
紋理:是一種可以被 OpenGL 識別和使用的渲染數(shù)據(jù)源
紋理對象:是一個用于存儲和處理紋理數(shù)據(jù)的對象
紋理ID:用于標(biāo)識和操作這個紋理對象的唯一編號,類似于身份證號碼
SurfaceTexture:將數(shù)據(jù)轉(zhuǎn)換為OpenGL ES可用的紋理,并將其更新到綁定的紋理對象中,以供OpenGL ES進行渲染和顯示
EGL:它是OpenGL ES與底層窗口系統(tǒng)(如Android、Linux等)之間的中間層,用于管理與窗口系統(tǒng)的交互以及OpenGL ES渲染表面的創(chuàng)建、綁定和顯示等操作。
關(guān)于?GLSurfaceView:?
GLSurfaceView是Android SDK提供的一個用于顯示OpenGL ES圖形渲染結(jié)果的視圖,其主要特點是可以在獨立的線程上進行OpenGL渲染,以避免卡頓和界面卡死的問題。最主要是提供了EGL和OpenGL ES環(huán)境的創(chuàng)建和管理,這些環(huán)境是OpenGL渲染的基礎(chǔ)。文章來源:http://www.zghlxwxcb.cn/news/detail-423097.html
詳細的邏輯可以參考:https://github.com/xufuji456/FFmpegAndroid中的相機濾鏡部分文章來源地址http://www.zghlxwxcb.cn/news/detail-423097.html
到了這里,關(guān)于Android OpenGL 渲染相機預(yù)覽畫面顯示體系的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!