国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網 會員登陸 & 注冊

生成Sinhash和Fracthash Noise

2022-11-17 18:52 作者:Feishiko  | 我要投稿

在Shader中要生成隨機數,就要生成Noise圖,通常來說我們都知道可以用sin+fract函數。這種方法也叫Sinhash。

f(x)%20%3D%20fract(sin(x)*a)

a越來越大的時候,你會發(fā)現(xiàn)其函數圖像會變得非常隨機的樣子,我們取其中一段就實現(xiàn)了隨機。fract函數的意思是取小數部位。

這也是The Book of shaders介紹的方法,這邊是對應章節(jié)的鏈接 https://thebookofshaders.com/10/

我們隨后可以用這個方法生成一些噪聲圖。

簡單封裝一下大概是這個樣子。

我們可以用dot也就是dotproduct也就是點積,這種計算方法會更好一點。輸入一個二維向量,然后輸出一個范圍在0-1的float浮點數。之后再乘以一個更大的數,我們就實現(xiàn)了基本的隨機。

隨機數會有影響,你可以自己隨便選一個數字,但是可能會在具體功能上有一定的偏差,如果不需要解決問題那就用自己隨便想的好了。

讓我們再來看看另一種隨機數生成方法,Fracthash。

這種方法沒有用到sin,但是同樣需要fract。

這是封裝后的代碼。

這個也不是我自己想出來的,之前寫了一個shader評論區(qū)下面有人給我指點的意見。

直接調用這個函數,我簡單的將兩個生成方法放在一起做了對比

左邊是sinhash,右邊是fracthash,這咋看沒啥區(qū)別,但是在后面加了一個iTime讓其動起來后會發(fā)現(xiàn)sinhash有一絲割裂感,而fracthash會更加自然。

具體可以看看我在shadertoy寫的這個shader:https://www.shadertoy.com/view/mssXz7

本期內容大概就是這些,希望對你有幫助。

生成Sinhash和Fracthash Noise的評論 (共 條)

分享到微博請遵守國家法律
远安县| 沙田区| 浠水县| 塘沽区| 萨嘎县| 朝阳县| 永靖县| 吴桥县| 井研县| 嘉荫县| 温泉县| 古蔺县| 醴陵市| 惠东县| 遂川县| 丹巴县| 视频| 平阳县| 广安市| 南靖县| 灵台县| 乌兰浩特市| 梁山县| 东台市| 灌阳县| 黄骅市| 咸宁市| 桂阳县| 利辛县| 广水市| 梁平县| 遵义市| 江川县| 合山市| 白河县| 伊金霍洛旗| 侯马市| 伊吾县| 汪清县| 万源市| 泽普县|