# shader in unity 簡述 shader 一個由GPU負責運算的著色器 由於 CPU擅長處理單一且複雜的邏輯運算 GPU擅長處理大量且簡單的邏輯運算 所以利用shader不但可以分擔CPU的工作 還比用CPU運算的輸出更快 他的原理是 根據輸入參數 改變渲染的過程 輸出結果 大部分比較常見的就是拿來做特效(變成不同材質,圖片的效果...) Unity提供了三種寫Shader的方法 Surface Shaders 特色: 容易處理lighting Vertex and Fragment Shaders 特色: 核心的Shader program, 不論surface還是fixed function, 最後也會compile成vertex & fragment shader的版本。 Fixed Function Shaders 特色:簡單 **Pipeline**  Model的vertices輸出到屏幕的流程, 而Shader (Vertex 及 Fragment Shader) 就是其流程中的2個節點 也是 GPU 開放給developer 修改 vertex 和 fragment (pixel) 的接口 可以利用Vertex Shader來改變Vertex的位置,Fragment Shader (或稱Pixel Shader) 來改變Pixel/Fragment的顏色. 參考資料//kendevlog.wordpress.com/2017/08/02/unity%E9%96%8B%E7%99%BC%E7%AD%86%E8%A8%98-3-shader-%E6%98%AF%E4%BB%80%E9%BA%BC/