近3個(gè)月學(xué)了很多東西趋急,一直在快速學(xué)習(xí)迭代無暇總結(jié)顶伞,今天隨便總結(jié)一下饵撑;
學(xué)的東西如下:
1,梳理了一下gpu的渲染流程唆貌, 學(xué)習(xí)了一份純軟件渲染代碼滑潘;
2, vulkan編程,可以繪制基礎(chǔ)三角形
3 , UE4基本上手了锨咙,剛開始覺著很難语卤,現(xiàn)在覺著很簡單,市場上的書感覺都比較簡單酪刀,都是應(yīng)用層的粹舵,基本沒啥深度了,目前暫時(shí)停滯骂倘,后續(xù)可能會學(xué)習(xí)一下UE4服務(wù)端開發(fā)眼滤,UE4開發(fā)藍(lán)圖效率遠(yuǎn)高于c++,即使我這么喜歡c++的人,用UE4也懶得用c++了历涝,并且經(jīng)過我的分析诅需,藍(lán)圖和UE4C++接口幾乎完全對應(yīng)漾唉。據(jù)此,產(chǎn)生了自創(chuàng)一門圖形化編程語言的想法堰塌, 網(wǎng)上一搜已經(jīng)有了赵刑,但還不成熟,其實(shí)UE4這個(gè)就不錯(cuò)蔫仙,不過它只支持UE4C++,但藍(lán)圖也有缺陷料睛,就是一旦多了就很亂,適合中少量情形摇邦,速度快于編碼恤煞;
4,精讀了Idtech3引擎代碼 施籍, 已經(jīng)領(lǐng)會了很多居扒,包括網(wǎng)絡(luò)消息傳遞,bspTree,碰撞檢測bsp丑慎,部分碰轉(zhuǎn)檢測算法喜喂;控制臺變量,內(nèi)存管理竿裂,游戲主框架循環(huán)等玉吁,事件處理等;服務(wù)端的player邏輯 和 render邏輯以及AI尚無暇看腻异,目前準(zhǔn)備把碰轉(zhuǎn)檢測全部看完再看player邏輯进副;現(xiàn)在看代碼沒有剛開始那么累了,漸漸有一種流暢的感覺
5, 自研游戲引擎正在進(jìn)行g(shù)ameplay框架和 資源管理, 模型加載 方面的工作悔常,渲染層進(jìn)行了重構(gòu)使之可以擴(kuò)展為支持vulkan以及跨平臺影斑; 主框架借鑒idtech3 源碼, gameplay以及資源管理借鑒ue4源碼 机打;采用c++11編寫矫户,后續(xù)根據(jù)需要可能引入14,17,但會慎重残邀。
6皆辽,學(xué)習(xí)了骨骼蒙皮動(dòng)畫原理,連蒙帶猜芥挣,基本吃透了膳汪,但個(gè)別細(xì)節(jié)還稍微有點(diǎn)模糊,主要是沒有完整高質(zhì)量教程九秀。
7,學(xué)了點(diǎn)blender,了解了一些美工的模型制作流程粘我,能制作瓶子罐子等簡單靜態(tài)模型
8鼓蜒,自制了近20節(jié)c++編程課程已經(jīng)上線痹换,順便復(fù)習(xí)了下c++幾個(gè)小知識點(diǎn)
9,學(xué)了點(diǎn)幾何代數(shù)都弹,因?yàn)?020sigpa啥的出了個(gè)4d物理引擎挺炫的娇豫,用到這方面知識,不過這塊水還比較深畅厢,才入門冯痢。
幾何代數(shù)中定義了 bivector和trivector的概念,bivector取代了向量叉積的概念框杜;并且可以取代四元數(shù)浦楣,據(jù)說可以進(jìn)行無窮維空間碰撞檢測。
我是自己研究碰撞檢測發(fā)現(xiàn)3d碰撞不考慮時(shí)間會有問題咪辱,但是看成4d剛體碰撞該問題自然解決了振劳,因此想到4d碰撞才發(fā)現(xiàn)那篇論文。
10油狂,編譯原理學(xué)習(xí)中历恐,因?yàn)镈oom3實(shí)現(xiàn)了一個(gè)簡潔高效的編譯器,所以想看懂必須學(xué)編譯原理专筷,之前就學(xué)了一些然后沒堅(jiān)持下去弱贼,這回爭取走的遠(yuǎn)一些,學(xué)完了準(zhǔn)備出一門課程磷蛹。
11,學(xué)習(xí)了GJK碰撞檢測算法并寫了一篇文章吮旅,不過沒來得及實(shí)現(xiàn);實(shí)現(xiàn)了一個(gè)三維點(diǎn)集求凸包的算法,bsp實(shí)現(xiàn)了但沒來得及測試;
12 嘗試搭建個(gè)人網(wǎng)站幾乎成功弦聂,采用LNMP方案鸟辅,可惜功虧一簣了,雖然國內(nèi)搭建網(wǎng)站的教程很多莺葫,但是流程都太復(fù)雜匪凉,而且沒有一個(gè)介紹原理的,不注重原理的風(fēng)氣不知何時(shí)才能改良捺檬。但是即使不需要網(wǎng)站再层,游戲服務(wù)器也可以正常運(yùn)行。
13 學(xué)了些剛體力學(xué)堡纬, 動(dòng)量隨時(shí)間的變化率是力 聂受,角動(dòng)量隨時(shí)間的變化率是扭矩
總結(jié),感覺學(xué)了不少但深度還不夠烤镐,沒辦法蛋济,一個(gè)人時(shí)間精力太有限了,如果鉆研一項(xiàng)過深炮叶,很快會失去對大局的掌控碗旅,只能遇到問題在學(xué),后續(xù)會想法提高工作效率医瘫,希望自己的游戲引擎能早日成型