unity shader學習筆記2

2022-06-28 10:12:09 字數 2376 閱讀 5359

官網文件

-language-syntax

包括標量,向量,矩陣,陣列,結構體,著色器,紋理等資料型別

和c/c++差不多.

bool-正確或錯誤。

int -32位有符號整數。

uint -32位無符號整數。

dword -32位無符號整數。

half -16位浮點值。僅出於語言相容性提供此資料型別。direct3d 10著色器目標將所有一半的資料型別對映為浮點資料型別。半資料型別不能用於統一的全域性變數(如果需要此功能,請使用/ gec標誌)。

float -32位浮點值。

double -64位浮點值。您不能將雙精度值用作流的輸入和輸出。通過著色器之間的雙精度值,宣告每個雙作為對uint資料型別。然後,使用asuint函式給每個資訊包雙入對uint s和asdouble函式解壓對uint背部到雙。

fixed4 低精度 rgba 顏色

宣告方法一般有兩種

bool bvector; // scalar containing 1 boolean

int1 ivector = 1;

float3 fvector = ;

vector variablename

vector ivector = 1;

vector dvector = ;

以標量型別+行x列的方式宣告

int1x1    imatrix;   // integer matrix with 1 row,  1 column

int4x1 imatrix; // integer matrix with 4 rows, 1 column

int1x4 imatrix; // integer matrix with 1 row, 4 columns

double3x3 dmatrix; // double matrix with 3 rows, 3 columns

float2x2 fmatrix = ;

matrix fmatrix = ;

向量:

the position set: x,y,z,w

the color set: r,g,b,a

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

pos.z // value is 2

可以讀取乙個或多個分量

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

float2 f_2d;

f_2d = pos.xy; // read two components

f_2d = pos.xz; // read components in any order

f_2d = pos.zx;

f_2d = pos.xx; // components can be read more than once

f_2d = pos.yy;

pos.b // value is 2

矩陣:

矩陣包含按行和列組織的值,可以使用結構運算子「」進行訪問。隨後是兩個命名集之一:

從零開始的行列位置:

_m00,_m01,_m02,_m03

_m10,_m11,_m12,_m13

_m20,_m21,_m22,_m23

_m30,_m31,_m32,_m33

基於乙個的行列位置:

_11,_12,_13,_14

_21,_22,_23,_24

_31,_32,_33,_34

_41,_42,_43,_44

// given

float2x2 fmatrix = ;

float f_1d;

f_1d = matrix._m00; // read the value in row 1, column 1: 1.0

f_1d = matrix._m11; // read the value in row 2, column 2: 2.1

f_1d = matrix._11; // read the value in row 1, column 1: 1.0

f_1d = matrix._22; // read the value in row 2, column 2: 2.1

陣列方式進行訪問:

float2x2 fmatrix = ;

float temp;

temp = fmatrix[0][0] // single component read

temp = fmatrix[0][1] // single component read

unity shader 學習筆記

upgrade note replaced world2object with unity worldtoobject upgrade note replaced mul unity matrix mvp,with unityobjecttoclippos shader unity shader b...

unity shader 學習筆記(2)

自定義顏色變數,在材質面板設定顏色來改變物體的顏色 properties subshader 片斷著色器主要處理最終顯示在螢幕上的畫素結果 float4 flag sv target endcg 最終結果 cg hlsl中的資料型別和shader屬性中資料型別 cg hlsl中的資料型別 浮點型別 ...

unityshader學習筆記3

phong高光反射 標準光照模型也被稱為phong光照模型,早期的遊戲引擎中往往只有乙個光照模型,就是標準光照模型。標準光照模型只關心直接光照,也就是那些直接從光源發射出來照射到物體表面後經過物體表面的一次反射直接進入攝像機的光線。如圖,反射光與視角的夾角越小,光強越大 反射光與視角夾角的余弦值co...