godot computer shader 解析lifegame 前
我的回憶:
????在說lifegame前,想起了一個人,Stephen Wolfram,當(dāng)年年紀輕輕的我,依稀記得我發(fā)現(xiàn)了life game,然后入了門,就覺得自己很牛逼,然后買了本他的書《Game of Life》,驚呆了,就像 安康魚第一次遇到藍鯨,我沒有眼睛認識他的龐大,我只能感受到一個我沒法觀察的巨人在哪里。又看到他的wolfram alpha,認識到我接受的教育就是依托大便,毅然決然去當(dāng)教師。
????也正因為他的《Game of Life》讓我明白,身在淪陷區(qū),文明的邊緣,東西得靠撿第一世界國家的相對落后的產(chǎn)物和理論,我當(dāng)然不甘心。run的決心早在2015年就沉淀下來了。
????
一、godot的texture的尿性
????一如既往,godot如果node2d必須傳入texture,來生成size,因為node2d之保存scale。如果了解opengl的填色階段就知道,圖片xy就是管線的數(shù)量。如果要生成一個空白的fbo,也得用subviewport+colorrect,subviewport提供了一個size,而colorrect在gpu上分配內(nèi)存。
????1、?texture rect

????texture rect就是一個初始化為image大小的會上傳到一個image到GPU上面的class。和color rect一樣
????texture位于GPU上面,image位于CPU上面,兩者不一樣,也不會自動轉(zhuǎn)換,因為轉(zhuǎn)化消耗通訊帶寬和等待同步的時間。
????當(dāng)然color rect 也可以像texture rect一樣單獨使用,只是我要獲取texture,只能截圖了,godot、unreal都不提供獲取渲染后的texture的功能,因為渲染需要分配管線,又要消耗資源,而游戲引擎管理的就是數(shù)據(jù)和硬件資源。

????2、硬件分配


所有異步執(zhí)行的device中
1、列舉包工頭信息
2、選擇一個包公頭
3、告訴他需要多人員工
4、告訴他要干啥
5、分配好甲方和乙方倉庫,和工廠
6、黃道吉日,放鞭炮,開工
7、執(zhí)行的過程,可以天天在倉庫門口守著到貨就干其他事兒
????? 也可以放著不管,去喝茶,洗完腳后回來看看
這套模式在互聯(lián)網(wǎng)出現(xiàn)后,一個也不能少。
1、列舉包工頭信息
????無,這絕壁就是搶占當(dāng)前顯卡的資源哦,多顯卡不支持,本身就是一個游戲引擎,不能太為難他,如果真搞大型演算,也不缺那幾十萬的資金。
2、選擇一個包公頭
????就用當(dāng)下godot在用的包工頭

4、告訴他要干啥

3、告訴他需要多人員工

????

????這里的3和4沒有互相嵌套,對調(diào)也沒啥關(guān)系,這兩個是平行的準備工作,誰先誰后都一樣
5、準備工廠

depth,4層,RGBA
準備一個 sizex*y的R8G8B8A8的倉庫(當(dāng)然也可以分配R4G8的大小,雖然不支持,可以自行操作其他的struct上去,也就是高數(shù)捆綁獲取,安裝8-8-8-8的分割方式)
這個倉庫是用來保存,并且可以更新,這里面的usage 是兩個屬性

5、把read_data上傳到render device,格式為之前合同寫的

5、修建送貨的公路

5、分配一個加工數(shù)據(jù)的放在工廠的倉庫

和加工材料倉庫一樣的操作,多了一個可以復(fù)制
5、修建送回貨物的公路

5、簽訂送貨協(xié)議的合同

因為是異步執(zhí)行,這個可以被多人使用,必須寫合同,不像自己家的廁所,排著隊用。如果不提前預(yù)定那個餐廳,那個位置會被別人使用。如果別人不走,如果是要等,那真等到死。
6、黃道吉日,放鞭炮,開工? 7、等他做完我要搞成圖像來渲染

這個基本就是木板,可以把它做成一個class,方便使用。