新手寫shader時經常困惑在shader那些語法能用,那些不能用,很糾結,下面就對shader中表示式和控制語句進行一些總結:
cg中有6種關係操作符:「<」、「<=」、「!=」、「==」、「>=」、「>」,這個就不用說明含義了吧。
cg語言表示式允許對向量使用關係操作,例如:
可以使用 cg 語言中的 swizzle 操作符( . )將乙個向量的成員取出組成乙個新的向量。float3 a=float3(0.5,0.1,0.9);
float3 b=float3(0.6,-0.1,2.0);
bool3 c=a跟c#操作類似。
cg中數學操作符有:乘法,/除法,-減法或取反,+加法,%取餘;++,–,=,/=,+=,-=;
cg 語言中的移位操作符,功能和 c 語言中的一樣,也可以作用在向量上,但是向量型別必須是 int 型別
int2 a = int2(0.0,0.0);
int2 b = a>>1;
swizzle 操作符後接 x 、 y 、 z 、 w ,
分別表示原始向量的第乙個、第二個、第三個、第四個元素; swizzle 操作符後接
r 、 g 、 b 和 a 的含義與前者等同。
例如:
swizzle 操作符只能對結構體和向量使用,不能對陣列使用float4(a, b, c, d).xyz 等價於 float3(a, b, c)
float4(a, b, c, d).xyy 等價於 float3(a, b, b)
float4(a, b, c, d).wzyx 等價於 float4(d, c, b, a)
float4(a, b, c, d).w 等價於 float d
expr1 ? expr2 : expr3;
條件語句有: if 、 if-else ;迴圈語句有: while 、 for 。 break語句可以和在 for 語句中使用。 switch 、 case 和 default 在 cg 中作為保留關鍵字存在,但
是它們目前不被任何 profile 所支援。
建議:像迴圈語句這種控制語句盡量不要用,如果死迴圈就不好了,再說也沒必要在shader中去迴圈啥。
cron中表示式
cron表示式詳解 乙個cron表示式有至少6個 也可能7個 有空格分隔的時間元素。按順序依次為 1 秒 0 59 2 分鐘 0 59 3 小時 0 23 4 天 0 31 5 月 0 11 6 星期 1 7 1 sun 或 sun,mon,tue,wed,thu,fri,sat 7.年份 1970...
thinkPHP SQL語句中表示式查詢的格式
對於那些要實現模糊判斷的查詢,比如大於 等於 小於之類的sql查詢,可以使用表示式查詢方式。查詢表示式格式 map 欄位名 array 表示式 查詢條件 表示式含義 eq等於 neq不等於 gt大於 egt大於等於 lt小於 elt小於等於 not like 中間無空格 模糊查詢 not betwe...
Python中 表示式和 is 的區別
x y表示兩個物件的值相同,x is y表示兩者是同乙個物件 例1 x和y是兩個列表,它們的值相同,但不是同乙個物件 x 1,2,3 y 1,2,3 x y true x is y false 例2 x和y是同乙個物件 x 1,2,3 y x x is y true 例3 字典是無序的,所以x和y的...