CG語言的數學函式

2021-07-11 09:04:56 字數 3323 閱讀 5450

abs(x)

返回標量和向量x的絕對值

如果x是向量,則返回每乙個成員的絕對值

acos(x)

返回標量和向量x的反余弦

x的範圍是[-1,1],返回值的範圍是[0,π],

如果x是向量,則返回每乙個成員的反余弦

all(x)

如果乙個布林標量為真,或者布林向量的所有成員為真,則返回真

any(x)

如果乙個布林標量為真,或者布林向量成員存在真值,則返回真

asin(x)

返回標量和向量x的反正弦

x的範圍是[-1,1],返回值的範圍是[-π/2,π/2],

如果x是向量,則返回每乙個成員的反正弦

atan(x)

返回標量和向量x的反正切

x的範圍不限,返回值的範圍是[-π/2,π/2],

如果x是向量,則返回每乙個成員的反正切·

atan2(y, x)

返回標量和向量y/x的反正切

返回值的範圍是[-π,π],

ceil(x)

返回不小於x的下乙個整數

clamp(x, a, b)

返回乙個[a, b]範圍內的數

如果x<a則返回a

如果x>b則返回b

否則返回x

cos(x)

返回x的cos值

cosh(x)

返回乙個x的雙曲線cos值

cross(a, b)

返回a, b的叉積

a, b一定含有3個成員

degrees(x)

弧度轉化為角度

determinant(m)

返回的正方形矩陣m的行列式

dot(a, b)

返回a與b的點積

exp(x)

返回以e為底的x次冪

exp2(x)

返回以2為底的x次冪

floor(x)

返回不大於x的上乙個整數

fmod(x, y)

返回乙個x/y的餘數,

y如果為0,結果不可預料

frac(x)

返回x的小數部分

frexp(x, out exp)

將浮點數x分解為尾數(在[0.5, 1]範圍內)和指數(輸出為e)

如果x為0,結果的所有部分都為0

isfinite(x)

如果x是有限的則返回true

isinf(x)

如果x是無限的則返回true

isnan(x)

nan(not-a-number)

如果x nan(not-a-number)

則返回true

ldexp(x, n)

x * 2的n次方

lerp(a, b, w)

w是比重

當w= 0時返回a,當w= 1時返回b

根據w返回乙個[a, b]的值

p.s. w可以為任意值,不用限制在[0, 1]之內

w can be any value (so is not restricted to be between zero and one);

lit(ndotl, ndoth, m)

計算環境、漫反射、和高光的光照係數

返回乙個4維向量

x,環境光係數,經常值為1.0

y,漫反射係數 如果 dot(n, l) < 0返回0,否則返回dot(n, l)

z,高光係數 如果 dot(n, l) < 0或dot(n, h) < 0返回0,否則返回dot(n, h)的m次方

w 固定值為1.0

log(x)

ln(x)

log2(x)

以2為底x的對數

log10(x)

以10為底x的對數

max(a, b)

返回a,b中的最大值

min(a, b)

返回a,b中的最小值

modf(x, out ip)

把x分離成整數和小數部分,把x的整數值存在輸出引數ip處,並返回x的小數部分

mul(m, n)

矩陣m和n的乘積

如果m是乙個axb的矩陣,n是乙個bxc的矩陣,就返回乙個axc的矩陣

mul(m, v)

矩陣m和列向量v的乘積

如果m是乙個axb的矩陣,v是乙個bx1的向量,就返回乙個ax1的向量

mul(v, m)

行向量v和矩陣m的乘積

如果v是乙個1xa的向量,m是乙個axb的矩陣,就返回乙個1xb的向量

noise(x)

任意乙個1維2維或3維的噪波函式取決於x的型別。

返回乙個[0, 1]範圍內的,總是和輸入相同的值

pow(x, y)

返回x的y次方值

radians(x)

角度轉化為弧度的值

round(x)

採用四捨五入法,返回把x化為整數值

rsqrt(x)

返回x的平方根的倒數

x必須大於0

saturate(x)

返回乙個[0, 1]範圍內的數

如果x<0則返回0

如果x>1則返回1

否則返回x

sign(x)

如果 x>0返回1

如果 x<0返回-1

否則返回0

sin(x)

返回x的sin值

sincos(float x, out s, out c)

輸出引數s 為x的sin值,c為s的cos值

這個函式比分別計算x的sin和cos有效率

此函式無返回值

sinh(x)

返回乙個x的雙曲線sin值

smoothstep(min, max, x)

x是乙個[min, max]範圍內的數

如果x=min返回0,如果x=max返回1

否則返回如下公式的計算結果:

step(a, x)

如果 x<a返回0

如果 x≥a返回1

sqrt(x)

返回x的平方根

x必須大於0

tan(x)

返回x的tan值

tanh(x)

返回乙個x的雙曲線tan值

transpose(m)

返回m的轉置矩陣

Cg語言介紹

在歷史上,圖形硬體都是從非常低層上進行開發的。通過設定狀態,例如貼圖合併 texture bining 模式,來設定固定功能的管線 pipelines 更近一些的時候,程式設計師可以通過使用組合語言層的程式設計介面來設定可程式設計管線。理論上來說,這些低層的程式語言提供了極大的靈活性。在實際應用中,...

Cg內建函式

abs x 返回輸入引數的絕對值 acos x 反餘切函式,輸入引數範圍為 1,1 返回 0,區間的角度值 all x 如果輸入引數均不為0,則返回ture 否則返回flase。運算 any x 輸入引數只要有其中乙個不為0,則返回true。運算 asin x 反正弦函式,輸入引數取值區間為 1,1...

CG語言 基本光照渲染

本人新人一枚,想要將自己所學分享給大家,如有錯誤或不足請大家毫不猶豫的指出,謝謝大家的支援!那麼開始吧 乙個物體我們能看見是通過被光線照亮後經過反射進入我們的眼睛後大腦成像。計算機 gpu 就是計算進入眼睛之前的各個步驟得到的從而給我們反饋乙個結果。計算公式 su cecolor emissive ...