圖形處理之Shader語言(二)CG語法篇
Cg(C for Graphcis)語言,是NVIDIA與Microsoft合作研發,旨在為開發人員提供一套方便、跨平臺(良好的相容性),控制可程式設計圖形硬體的高階語言。
學習書籍 :GPU 程式設計與CG 語言之陽春白雪下里巴人
1. 基本資料型別
Cg 支援 7 種基本的資料型別:
2.half,16 [-6萬-6萬]精度小數點後3.2位,為浮點資料;
3.int
4.fixed,[-2~2]精度是1/256,12位定點數,被所有的fragment profiles所支援;
5.bool,布林資料,通常用於if和條件操作符(?:),布林資料型別被所有的
profiles 支援;
6. sampler*,紋理物件的控制代碼(the handle to a texture object),分為 6 類:sampler, sampler1D, sampler2D, sampler3D, samplerCUBE,和 samplerRECT。DirectX profiles 不支援 samplerRECT 型別,除此之外這些型別被所有的 pixelprofiles 和 NV40 vertex program profile 所支援(CgUsersManual 30 頁)。由此可見,在不遠的未來,頂點程式也將廣泛支援紋理操作;
7. string,字元型別,該型別不被當前存在的 profile 所支援,實際上也沒有必要在 Cg 程式中用到字元型別,但是你可以通過 Cg runtime API 宣告該型別變數,並賦值;因此,該型別變數可以儲存 Cg 檔案的資訊。
(1)數學函式
函式 | 功能描述 |
---|---|
abs(x) | 返回輸入引數的絕對值 |
acos(x) | 反餘切函式,輸入引數範圍為[-1,1], 返回[0,π]區間的角度值 |
all(x) | 如果輸入引數均不為0,則返回ture; 否則返回flase。&&運算 |
any(x) | 輸入引數只要有其中一個不為0,則返回true。 |
asin(x) |
反正弦函式,輸入引數取值區間為 |
atan(x) |
反正切函式,返回角度值範圍為 |
atan2(y,x) | 計算y/x的反正切值。實際上和atan(x)函式功能完全一樣,至少輸入引數不同。atan(x) = atan2(x, float(1))。 |
ceil(x) | 對輸入引數向上取整。例如: ceil(float(1.3)) ,其返回值為2.0 |
clamp(x,a,b) |
如果x值小於a,則返回a; 如果x值大於b,返回b; 否則,返回x。 |
cos(x) |
返回弧度x的餘弦值。返回值範圍為 |
cosh(x) | 雙曲餘弦(hyperbolic cosine)函式,計算x的雙曲餘弦值。 |
cross(A,B) | 返回兩個三元向量的叉積(cross product)。注意,輸入引數必須是三元向量! |
degrees(x) | 輸入引數為弧度值(radians),函式將其轉換為角度值(degrees) |
determinant(m) | 計算矩陣的行列式因子。 |
dot(A,B) | 返回A和B的點積(dot product)。引數A和B可以是標量,也可以是向量(輸入引數方面,點積和叉積函式有很大不同)。 |
exp(x) |
計算 |
exp2(x) |
計算 |
floor(x) | 對輸入引數向下取整。例如floor(float(1.3))返回的值為1.0;但是floor(float(-1.3))返回的值為-2.0。該函式與ceil(x)函式相對應。 |
fmod(x,y) | 返回x/y的餘數。如果y為0,結果不可預料。 |
frac(x) | 返回標量或向量的小數 |
frexp(x, out i) |
將浮點數x分解為尾數和指數,即 |
isfinite(x) | 判斷標量或者向量中的每個資料是否是有限數,如果是返回true;否則返回false; |
isinf(x) | 判斷標量或者向量中的每個資料是否是無限,如果是返回true;否則返回false; |
isnan(x) | 判斷標量或者向量中的每個資料是否是非資料(not-a-number NaN),如果是返回true;否則返回false; |
ldexp(x, n) |
計算 |
lerp(a, b, f) |
計算 |
lit(NdotL, NdotH, m) |
N表示法向量; L表示入射光向量; H表示半形向量; m表示高光係數。 函式計算環境光、散射光、鏡面光的貢獻,返回的4元向量。 X位表示環境光的貢獻,總是1.0; Y位代表散射光的貢獻,如果 Z位代表鏡面光的貢獻,如果 W位始終位1.0 |
log(x) |
計算 |
log2(x) |
計算 |
log10(x) |
計算相關推薦圖形處理之Shader語言(二)CG語法篇Cg(C for Graphcis)語言,是NVIDIA與Microsoft合作研發,旨在為開發人員提供一套方便、跨平臺(良好的相容性),控制可程式設計圖形硬體的高階語言。 學習書籍 :GPU 圖形處理之Shader語言(一)GLSL語法篇變數 GLSL的變數命名方式與C語言類似。變數的名稱可以使用字母,數字以及下劃線,但變數名不能以數字開頭,還有變數名不能以gl_作為字首,這個是GLSL保留的字首,用於GLSL的內部變數。當然還有一些GLSL保留的名稱是不能夠作為變數的名稱的。 基本型別 除了布林型,整型 影象處理特徵不變運算元系列之Harris運算元(二)在前面的博文中,介紹了Moravec運算元,並對moravec運算元的不足也進行了簡單的描述,具體請參考:影象處理特徵運算元系列之Moravec運算元(一)。Harris運算元 Unity Shader (二)Cg語言一、Cg基本資料型別 float 32位浮點數 half 16位浮點數 int 32位整型 fixed 12位定點數 bool 布林資料 simpler* 紋理物件的控制代碼( the handle to a text c/c++預處理過程詳解(二)之條件編譯及預定義的巨集未經博主同意不得私自轉載!不準各種形式的貼上複製本文及盜圖! 首先對於上篇文章中巨集定義的補充: (1)#define NAME"zhangyuncong" 程式中有"NAME"則,它會不會被替換呢? (2)#define 0x abcd 可以嗎?也就是說,可不可以用不是 第三方登入之QQ登入(二)——OAuth2.0處理流程介紹(以QQ登入為例)為了讓網站更快接入,騰訊提供了JS SDK的接入方案,具體點選這裡或者點選這裡進行檢視。不過也可以自己寫程式碼,當然你需要了解QQ的OAuth2.0的處理流程(Web Server Flow)。OAuth2.0的處理流程:點選這裡檢視官方Wiki。1.授權:獲取授權碼Auth R語言之匯入資料來源(二)4 匯入XML資料 R中有若干用於處理XML檔案的包。例如,由Duncan Temple Lang編寫的XML包允許使用者讀取、寫入和操作XML檔案。詳情參閱 5 從網頁抓取資料 在web資料抓取(Webscraping)的過程中,使用者從網際網路上提取嵌入在網頁中的 .NET Core之單元測試(二):使用記憶體資料庫處理單元測試中的資料庫依賴目錄 定義一個待測試API 測試用例 為減少篇幅,隱藏了SampleEntity和SqliteDbContext 定義一個待測試API 如下,我們定義了一個名為Sample的API,其中有一個外部依賴項Sqli GO語言web框架Gin之完全指南(二)這篇主要講解自定義日誌與資料驗證 引數驗證 我們知道,一個請求完全依賴前端的引數驗證是不夠的,需要前後端一起配合,才能萬無一失,下面介紹一下,在Gin框架裡面,怎麼做介面引數驗證的呢 gin 目前是使用 go-playground/validator 這個框架,截止目前,預設是使用 v10 版本;具體用法可以 爬蟲庫之BeautifulSoup學習(二)不必要 baidu html left 官方 blank 正則 文本處理 比較 BeautifulSoup官方介紹文檔:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html 四大對象種 CSS3學習系列之選擇器(二)計算 選擇器 sky :focus ddr gree for 指定元素 學習 first-child選擇器和last-child選擇器 first-child指定第一個元素。last-child指定最後一個子元素。 例如: <!DOCTYPE html> elasticsearch index 之 create index(二)temp fec toc 使用 con 速度 query type valid 創建索引需要創建索引並且更新集群index matedata,這一過程在MetaDataCreateIndexService的createIndex方法中完成。這裏會提交一個高優先級,Acked MVC實戰之排球計分(二)—— 構架概要設計eight med 語言 fusion 詳情 插入數據 輸出數據 one 交互界面 本程序主要基於MVC4框架,使應用程序的輸入,處理和輸出強制性分開,使得軟件可維護性,可擴展性,靈活性以及封裝性得到提高, MVC應用程序分為三個核心部件:Model,View, Contr Python學習第一章:第一次的親密接觸之初識程序(二)inpu alt blog put 分享 裏的 hello 格式 img 上次我們講到print(Hello Word)及變量的使用,下面我們繼續: 比如我們想在程序中實現格式化輸出如: 那麽我們我們就要進行簡單的格式化定義,一個很簡單的input語法實現,案例如下: Java之集合初探(二)Iterator(叠代器),collections,打包/解包(裝箱拆箱),泛型(Generic),comparable接口基本 generate 等於 框架 ring bin list() each 是否 Iterator(叠代器) 所有實現了Collection接口的容器都有一個iterator方法, 用來返回一個實現了Iterator接口的對象 Iterator對象稱作叠代器, 用來 小白學習之Code First(二)文件中 build 默認 dbm pcre student 技術分享 使用 類名 Code First約定: 註:EDMX模板 (SSDL:存儲模型=>數據庫表 ,CSDL:概念模型=>實體,C-S模型=>存儲和概念模型之間的映射關系) System.Da CLR類型設計之泛型(二)where條件 之前 解釋 columns 文章閱讀 sin 自己的 讀書 spl 在上一篇文章中,介紹了什麽是泛型,以及泛型和非泛型的區別,這篇文章主要講一些泛型的高級用法,泛型方法,泛型泛型接口和泛型委托,協變和逆變泛型類型參數和約束性,泛型的高 java nio之 channel通道(二)java niojava nio 通道上一篇文章裏就講述過,channel總是寫數據的時候,要先把數據寫入到bytebuffer,讀數據的時候總是要先從channel中讀入到bytebuffer。如下圖,這個圖是好多知名博客常用的圖,很好理解這個channel。channel分為一下幾種:FileChanne google軟件測試之道讀後感(二)世界 簡單 分析 故事 好的 多次 新的 模型 證明 這幾天又翻了幾頁這本書,覺得妙語連珠,關鍵語錄摘抄如下,並補充自己的一些思考: “如果你想要求一個團隊去嘗試新的事物或者做某些改進,給他們提供一個聯系人會更好一些,這個聯系人來源於更大的社區,並可以從他那裏得到幫助”; 器學習數學基礎之矩陣理論(二)pac 本質 uid spa album 空間 矩陣 amp .com 目錄 一、線性空間 1. 線性空間的概念 (1) 線性空間的定義 (2) 線性空間的本質 2. 線性空間的基 (1) 線性表示 (2) 線性相關 (3) 線性無關 (4) 線性空間基的定義 (5) 坐標 |