Cg Language 筆記 基本語法

2021-07-27 09:00:07 字數 1891 閱讀 8074

基本資料型別

向量

向量swizzle操作

float4 fl=float4(1,0,0,1);

fl.xyzw==fl.rgba

//xyzw 和 rgba 作用相同,不能混用,取其一

//xyzw可以任意組合,如:fl.xy,fl.xyz,fl.***,fl.xxy

矩陣

float

2x2 m2x2=;

float

2x4 m2x4=;

float4 col=m2x4[0];

float4 col=float4(m2x4[1]);

陣列

float arr[4]=;

float4 col=float4(arr[0],arr[1],arr[2],arr[3]);

結構體

//定義

struct v2f ;

//宣告

v2f o;

o.pos=float4(1,0,0,1);

o.uv=float2(1,0);

巨集定義

和c語言類似

-#define macroname macrobody

#define macrorfl float4(1,0,0,1)

void frag()

流程控制

迴圈次數需要小於1024次

//if-else巢狀

float4 pos=float4(1,0,0,1);

if(pos.x

<0 && pos.y

<0)

else

if(pos.x

<0)

//條件表示式

bool bl=true;

float4 col= bl ? float4(1,0,0,1) : float4(0,1,0,1);

//while迴圈

int i=0;

while(i<10)

//do-while迴圈

int i=0;

dowhile(i<10);

//for迴圈

for(int i=0;i<10;i++)

型別定義符

typedef float4 fl4;

fl4 fl=fl4(1,0,0,1);

函式

函式引數總是通過值拷貝傳遞

引數傳遞標記:in out inout

//使用前定義

void func()

void frag()

//預定義

void func(inout float4 c);

void frag()

void func(inout float4 c)

//陣列作為引數必須制定陣列維度

float func(float arr[3])

void frag()

; float sum=func(col);

}

檔案包含

#include 

"unity.cginc"

Python學習筆記(一)Python基本語法元素

二 程式設計例項 4 語句與函式 三 推薦課程 pprocess處理,程式的主要邏輯。ooutput輸出,程式的輸出 tempconvert.py tempstr input 請輸入帶有符號的溫度值 if tempstr 1 in f f c eval tempstr 0 1 32 1.8print...

mysql degree MySQL的基本語法

今天是開學第三天,算是正式開始學習了吧。第一天基本是老師在向我們介紹軟體測試要了解什麼方面的知識,以後要做些什麼。第二天主要是練習了一下怎麼寫需求文件,感覺這個確實挺難寫的,畢竟我文字表達能力感覺不是太好,只能說以後慢慢練習吧。今天學了mysql的幾個基本語法,感覺確實挺蛋疼的,最主要是沒有提示這一...

python語 Python 基本語法

python 語法 1 列印 輸入用print 例如 print hello word python 3中可以直接列印中文,並且語法不一樣,python 3中有 2 如何定義變數名 定義變數名有以幾個條件 1 開頭必須是字母 or 下劃線 2 變數名必須是由字數 or 數字 or 下劃線的組成,不可...