godot computer shader 的存儲方式
一、既然是游戲引擎,那么第一個就該是texture

我們可以創(chuàng)建texture,然后把輸入導入。
關(guān)于 texture 的usage
挨個解釋他的用處
1、可以被其他的shader 快速調(diào)用


2、存儲圖片和set_pixel


官方解釋就是 load store atomic operations,這里已經(jīng)可以被cpu讀寫和修改了。下面的 texture_usage_cpu_read_bit說的是開了這個,我可以更快的被cpu讀取。

3、device 上可以被操作

這三個分別表示:
64:在device 中被device 修改
128:device_a 復(fù)制到?device_b中,可以作為device_a ,可讀
256:device_a?復(fù)制到?device_b中,可以作為device_b ,可寫
把它當做并行運算是不對的,而是一種高效的渲染前 數(shù)據(jù)處理 專用庫。
二、framebuffer 幀緩存

這里我們可以不管他,opengl會在一定程度考慮高效性,都游戲引擎了,隨便弄一個都有subviewport都有framebuffer,直接跳過他,如果是面向手機,那么這點效率也是需要考慮的。
三、verter buffer

布料模擬用上。
四、index buffer?

布料模擬用上。
五、storage buffer

小;塊;大小明確

這里解釋我們現(xiàn)在用之前用的都是unfrom buffer,但是 storage buffer 的速度更快,超過unfrom的速度。
在buffer生成后, 綁定uniform又是一個重點。

具體情況具體操作,如果不追求效率,我全用 texture buffer都可以。
總結(jié):opengl-cs是一個針對渲染,更接近底層驅(qū)動的東東。
學習這個,先不要追求效率,因為能夠?qū)戇@玩意兒,能夠搞清楚這玩意已經(jīng)是少數(shù)人了。
在了解他的存儲后,就是他的計算,然而他的計算反而沒難度。他只是工具啊,難的是數(shù)學。