模擬水流,石油流動效果之一UV計算

2021-09-11 18:55:29 字數 960 閱讀 9798

開學之後,深感壓力,事情茫茫多,同時對於shader的學習也進入瓶頸。正在寫一篇小**,關於水流,石油流動效果的模擬。但是對貼圖一章學得不好,對很多概念以及過程計算沒有吃透。應該再好好看看,再查查資料,了解一下光照,法線等概念多努力。

下面是對於流動效果的處理之一,用su***ce shader寫的,大概思路就是規定了兩個偏移速度,x,y。速度乘以時間也就是偏移量,這兩個變化量是隨著時間變化的。在該處進行取樣,獲得該點的顏色值,然後賦給沒有偏移之前的位置。就像是把(0,0)點的顏色值賦給(1,1)點,實現流動效果。我採用的是用這種方法模擬石油流動

shader "custom/uv" 

//貼圖

_maintint ("diffuse tint", color) = (1, 1, 1, 1)

_scrollxspeed ("xspeed", range (0, 100)) = 2 //x軸方向運動速度

_scrollyspeed ("xspeed", range (0, 100)) = 2 //y軸方向運動速度

}subshader

//lod 200

cgprogram

#pragma su***ce surf lambert

sampler2d _maintex;

float _scrollxspeed;

float _scrollyspeed;

fixed4 _maintint;

struct input ;

void surf (input in, inout su***ceoutput o)

endcg

} fallback "diffuse"

}

這是石油貼圖,效果還可以,_maintint可以用來改變顏色

noip模擬賽5 水流

描述 全球氣候變暖,小鎮a面臨水災。於是你必須買一些幫浦把水抽走。幫浦的抽水能力可以認為是無窮大,但你必須把幫浦放在合適的位置,從而能使所有的水能流到幫浦裡。小鎮可以認為是n m的矩陣。矩陣裡的每個單元格都是乙個 a z 小寫字母,該小寫字母表示該格仔的高度,字母大的表示該單元格比較高,反之,表示該...