原创 NDK OpenGL ES 3.0 開發(十七):相機基礎濾鏡

該原創文章首發於微信公衆號:字節流動 相機基礎濾鏡 上文中我們通過 ImageReader 獲取到 Camera2 預覽的 YUV 數據,然後利用 OpenGLES 渲染實現相機預覽,這一節將利用 GLSL (OpenGL 着

原创 NDK OpenGL ES 3.0 開發(二十):3D 模型

該原創文章首發於微信公衆號:字節流動 OpenGLES 3D 模型 OpenGLES 3D 模型本質上是由一系列三角形在 3D 空間(OpenGL 座標系)中構建而成,另外還包含了用於描述三角形表面的紋理、光照、材質等信息。

原创 使用 OpenGL 實現瘦身大長腿效果

該原創文章首發於微信公衆號:字節流動 實現原理 OpenGL ES 實現瘦身和大長腿效果比較方便,使用紋理映射技術藉助於 OpenGL 的圖像雙線性插值算法可以輕易實現圖像的伸縮效果。 回顧下前面講的,什麼是紋理?在 Ope

原创 NDK OpenGL ES 3.0 開發(十八):相機 LUT 濾鏡

該原創文章首發於微信公衆號:字節流動 OpenGLES 相機 LUT 濾鏡 什麼是 LUT ? LUT 是 Look Up Table 的簡稱,稱作顏色查找表,是一種針對色彩空間的管理和轉換技術。它可以分爲一維 LUT(1D

原创 Java 線程的七種狀態

該原創文章首發於微信公衆號:字節流動 Java 線程狀態轉換圖 Java 線程狀態 在 Java 線程的生命週期中,按複雜的併發場景考慮,可將 Java 線程的狀態分爲七種,分別是:新建(New),可運行(Runnable

原创 FFmpeg 開發(02):FFmpeg + ANativeWindow 實現視頻解碼播放

該原創文章首發於微信公衆號:字節流動 本文將利用 FFmpeg 對一個 Mp4 文件的視頻流進行解碼,然後使用 libswscale 將解碼後的 YUV 幀轉換爲 RGBA 幀,最後使用 ANativeWindow 進行渲染

原创 不瞞你說,我被這個特效感動哭了(OpenGL ES 特效)

該原創文章首發於微信公衆號:字節流動 跳動的心 瀏覽博客時,偶然間發現這個"跳動的心"特效,瞬間被感動了,當得知這個特效是用純代碼實現( GLSL 實現)的,確實又被驚到了。 追溯該特效最初的來源,最終在 SahderToy

原创 OpenGL ES 實現頭部形變和頭部晃動效果

小姐姐說,我頭都被你氣大了,怎麼辦? 該原創文章首發於微信公衆號:字節流動 舊文中我們利用 OpenGL 給小姐姐實現了瘦身、大長腿效果以及瘦臉大眼效果,小姐姐苦笑道:我頭都被你氣大了,怎麼辦? 怎麼辦?對於一個直男癌晚期的碼

原创 FFmpeg 開發(01):FFmpeg 編譯和集成

該原創文章首發於微信公衆號:字節流動 爲什麼要學 FFmpeg 開發 FFmpeg 是一款知名的開源音視頻處理軟件,它提供了豐富而友好的接口支持開發者進行二次開發。 FFmpeg 讀作 “ef ef em peg” ,其中的

原创 Android OpenGL ES 從入門到精通系統性學習教程

爲什麼要寫這個教程 目前這個 OpenGL ES 極簡教程的更新暫時告一段落,說是教程,其實自知有種吹噓的味道,很榮幸獲得了阮一峯老師的推薦。 因爲在工作中頻繁使用 OpenGL ES 做一些特效、濾鏡之類的效果,加上平時學到的的

原创 OpenGL ES 實現動態(水波紋)漣漪效果

該原創文章首發於微信公衆號:字節流動 水波紋效果原理 最近一個做視頻濾鏡的朋友,讓我給他做一個動態水波紋效果,具體就是:點擊屏幕上的某一位置,然後波紋以該位置爲中心向周圍擴散。接到這個需求,一開始就嘗試着在 3D 座標系(x

原创 Android OpenGL ES 實現 3D 阿凡達(Avatar)效果

該原創文章首發於微信公衆號:字節流動 3D 效果的壁紙 本文實現的效果 偶然間,看到技術交流羣裏的一位同學在做類似於上圖所示的 3D 效果壁紙,乍一看效果確實挺驚豔的。當時看到素材之後,馬上就萌生了一個想法:利用 Open

原创 OpenGL ES 實現刮刮卡和手寫板功能

該原創文章首發於微信公衆號:字節流動 刮刮卡效果實現原理 其實利用 Android Canvas 實現類似刮刮卡或者手寫板功能比較方便,通過自定義 View 繪製 2 個圖層,位於上層的圖層在手指劃過的位置將透明度置爲 0

原创 OpenGL ES 實現可視化實時音頻

該原創文章首發於微信公衆號字節流動 音頻數據的採集 OpenGL 實現可視化實時音頻的思路比較清晰,可以利用 Java 層的 API AudioRecorder 採集到未編碼的音頻裸數據(PCM 數據),也可以利用 Open

原创 Android OpenGLES 3.0 開發極簡教程

Android OpenGLES 3.0 開發極簡教程 https://github.com/githubhaohao/NDK_OpenGLES_3_0 備註: 其中一些 Case 的 3D 效果是通過手勢觸發(轉動和縮放)。