godot visual shader -4 地平線
1、
現(xiàn)在我們的texture的大小是3000*2000的,我不能在shader里面創(chuàng)建一個(gè)30*20的東東。

但是我可以通過(guò)frequency來(lái)縮放。
乘積越大,越是放大。
但但這并不是我需要的縮放,我需要的是不縮放,低精度。
我需要 uv*sizeOfTexture 把uv放到到3000*2000,如果我這時(shí)候需要400*400位一個(gè)大block,
我只需要3000*2000? / 400*400,我需要一些取小整

還有round 四舍五入。
fract,取小數(shù)。
因?yàn)榈貓D的大小可以改變的,但是我的區(qū)塊是需要限定的。
最后總結(jié)為1行:?
????????uv_t = floor(uv /?texture_pixel_size /vec2(400,400));設(shè)置階梯
????????uv = uv_t *?texture_pixel_size *?vec2(400,400);把域變回0~1
????我不知道godot有沒(méi)有這個(gè)函數(shù),反正我現(xiàn)在沒(méi)看到。

2、準(zhǔn)備一個(gè)noise 11

因?yàn)槲译S機(jī)的起點(diǎn)起始有些問(wèn)題,不過(guò)我懶得改,后邊需要傳入seed。
3、把剛剛的uv連接上

這時(shí)候再判斷下,如果uv.y>value:value = 0.0value= 1.0;

當(dāng)然這種做法是錯(cuò)的,godot的bug不是一般的多

其次設(shè)定上的騷操作。

output的那個(gè)value,不能重新用。避免和其他的data命名沖突

我一時(shí)半會(huì)兒不知道怎么表?yè)P(yáng)他了。

這就是我們voro的uv需要讀取的色彩。
再看一下完整的。

嘿嘿。自學(xué)當(dāng)哭瞎。
這東西就像爐石傳說(shuō)一樣,沒(méi)有bug,全是特性哦。
還有一個(gè)騷的特性,那就是 沒(méi)有連接color out 會(huì)沒(méi)有parameter,他就是要強(qiáng)迫開(kāi)發(fā)人員使用拖拽。但是他這操作,用過(guò)的都說(shuō)哭了。

總結(jié):
用來(lái)做noisemap,是很屎漲的。這里是用來(lái)做搞texture生成和特效的。
不過(guò)基本上已經(jīng)熟練了,我就不繼續(xù)搞這個(gè)了。