學完FFmpeg OpenGL圖像處理課程后,一定要做幾個小項目去實踐,慢慢就學精了。否則大半年不寫就忘記了,下面分享我們內(nèi)部一些練習小項目。
0 夯實數(shù)學基礎(chǔ),整理一套自己的向量,點乘,差乘,歐拉角,四元素,齊次坐標,矩陣,平移矩陣,旋轉(zhuǎn)矩陣,縮放矩陣,逆矩陣數(shù)學,幾何原理,觀察者矩陣,正交投影,透視投影,法線貼圖TBN矩陣,推導過程,深入理解圖形變換管線。寫一套簡單可用的類似glm的自己的簡化版數(shù)學庫。這個是練基礎(chǔ)內(nèi)功。
1 模仿GPUImage, 做一個自己的版本的視頻特效實時處理,錄制的軟件。支持多個特效疊加。
2 結(jié)合FFmpeg,導入視頻,在視頻幀上添加特效,支持視頻裁剪。再輸出。 這就是一個簡易版的視頻剪輯軟件。結(jié)合mediacodec, avfoundation的硬件編碼。
3 將引擎部分讀取出來的場景數(shù)據(jù)編碼,通過socket通訊發(fā)出去,對面實時解碼渲染顯示。
4 做一個簡單的手機錄屏,然后pc寫一個客戶端,實時顯示出來。還可以加入反向控制手機。
以上4個簡單的小項目都做出來了,就畢業(yè)了。畢業(yè)后,就能慢慢做一些獨創(chuàng)性的東西,如果還做不出來,就返回去再學習,練習,死磕課程內(nèi)容。
以上四個小練習,都是認真學習課程,都能做出來的,比較簡單的練習。唯有實踐,才能檢驗自己是否學到東西了。說簡單它簡單,但對于初學者,還是非常復雜的。
在超哥看來簡單,但是大家能都完成做出來,其實已經(jīng)是吊打絕大多數(shù)開發(fā)人員的高手了。
以上練習,大部分都在一個月之內(nèi)都能完成。有的一兩周。四個都做完以后,可以考慮一些進階的內(nèi)容課題。6 7 8需要時間更長一些。
5 OpenGL實時渲染光柵化陰影(非光線追蹤)實現(xiàn), 延遲渲染。這個相對容易,有現(xiàn)成的參考。
6 寫一個軟件,軟件內(nèi)置大量的3D原始簡單的模型,以及特效。用戶可以隨意擺放,點選,移動,旋轉(zhuǎn)這些模型,構(gòu)建出復雜的場景。用戶可以傻瓜化擺放模型位置,調(diào)整顏色。類似以下效果。用戶可以傻瓜化調(diào)整比如水流,場景中人物走動參數(shù)。場景結(jié)果可以導出為渲染圖片,還可以導出到blender,max,maya,unreal, unity3d.



7 深入研究FBXSDK, OpenGL渲染引擎加入自己實現(xiàn)的blendshapes。用人臉追蹤算法驅(qū)動blendshapes動畫。用OpenGL模仿蘋果的人臉表情動畫。

8 類似Blender,達芬奇 后期圖片,視頻特效節(jié)點編輯軟件。用戶可以傻瓜化合成各種特效。建議 Qt OpenGL mac/win版本, 然后在移植到iOS/android.

后面的就更加高手獨孤求敗階段。僅供參考。
9 化妝軟件,內(nèi)置大量的3D女性模型,支持各種筆刷,在手機上給模型化妝。 其實就是一個簡易傻瓜版的Substaincepainter. 主要用于女孩子學習化妝。支持表情動畫,視頻錄制分享。
10 3D重建,根據(jù)用戶照片,自動生成3D模型。自動綁定骨骼動畫,表情動畫。