進擊吧shader 寫乙個自己的shader

2021-08-09 18:43:10 字數 790 閱讀 1880

cg語言基礎

我們來嘗試寫乙個自己的shader

shader "custom/textshader" 

subshader

lighting on //開啟燈光

如果想讓material**塊起作用,那麼就需要使用lighting on,如果是off,那麼顏色將會從color命令中獲取

在屬性中設定的變數可以通過變數名在subshader中獲取到,可以將其屬性值以變數的形式儲存,如

subshader{

half4 _color//因為_color裡有rgba四個值,所以這裡是half4,如果是half2*2則是二階矩陣

也可以將其儲存在結構體中,又或者以[name]的形式直接使用(如上面例子中的diffuse[_color])

cg支援7種基本的資料型別

1、float,32位浮點資料,乙個符號位。浮點資料型別被所有的圖形介面支援;

2、half,16位浮點資料;

3、int,32位整形資料

4,fixed,12位定點數,

5、bool,布林資料,被所有的圖形介面支援;

6、sampler*,紋理物件的控制代碼,分為sampler、sampler1d、sampler2d、sampler3d、samplercube和samplerrect

寫的第乙個Shader

第乙個茶壺是可以運動的紋理,用時間的正弦值和余弦值加在紋理座標上產生偏移實現的,可以考慮用來實現水面的各種效果 第二個茶壺是顏色和紋理的混合,多層紋理的混合應該也是同樣的道理,就是把顏色值相乘就可以了 anipass float4x4 matviewprojection float fsintime...

自己寫乙個LIST

pragma once forward declarations templateclass clistnode templateclass clist template class clistnode void insertafter t data template void clistnode ...

自己寫乙個框架

自己寫乙個框架 單入口mvc 類 庫 屬於擴充套件 乙個好的配置檔案和讀取功能 db介面 dispather.php index.php dispather 分析controller action 根據分析controller action 動態載入 引入乙個自動載入機制 controller.ph...