開學之後,深感壓力,事情茫茫多,同時對於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 小寫字母,該小寫字母表示該格仔的高度,字母大的表示該單元格比較高,反之,表示該...