亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GLSL的隨機/噪聲功能

GLSL的隨機/噪聲功能

由于GPU驅動程序供應商通常不愿意noiseX在GLSL中實現,因此我正在尋找“圖形隨機化瑞士軍刀”實用程序功能集,最好對其進行優化以在GPU著色器中使用。我更喜歡GLSL,但是可以編寫任何語言的代碼,我可以自己將其翻譯為GLSL。具體來說,我期望:a)偽隨機函數 -N維,在[-1,1]或[0,1]上均勻分布,根據M維種子計算(理想情況下為任何值,但我可以限制種子設為0..1(用于統一結果分配)。就像是:float random  (T seed);vec2  random2 (T seed);vec3  random3 (T seed);vec4  random4 (T seed);// T being either float, vec2, vec3, vec4 - ideally.b)像Perlin 噪聲這樣的連續噪聲 -同樣是N維,分布均勻,具有一組受限制的值,而且看起來不錯(一些配置外觀(如Perlin級別)的選項也可能有用)。我希望像這樣的簽名:float noise  (T coord, TT seed);vec2  noise2 (T coord, TT seed);// ...我不太熟悉隨機數生成理論,因此我非常希望獲得預制的解決方案,但是我也很喜歡這樣的回答:“這里有一個非常好的,高效的一維rand(),讓我解釋一下您如何在其上制作一個良好的N維rand()...”。
查看完整描述

3 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

對于看起來很簡單的偽隨機事物,我使用在互聯網上某個地方找到的這個單件套:


float rand(vec2 co){

? ? return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);

}

您還可以使用任何喜歡的PRNG生成噪聲紋理,然后以常規方式上載此噪聲并在著色器中采樣值。如果您愿意,我可以在以后提取代碼示例。


查看完整回答
反對 回復 2019-10-14
  • 3 回答
  • 0 關注
  • 1445 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號