在歷史上,圖形硬體都是從非常低層上進行開發的。通過設定狀態,例如貼圖合併(texture-***bining)模式,來設定固定功能的管線(pipelines)。更近一些的時候,程式設計師可以通過使用組合語言層的程式設計介面來設定可程式設計管線。理論上來說,這些低層的程式語言提供了極大的靈活性。在實際應用中,它們在使用起來卻是很痛苦並且在有效使用硬體上設定了極大的障礙。
使用高階程式語言,而不是使用以前的低層程式語言,有以下幾個優勢:
這一章介紹了cg(c for graphics),為gpu程式設計特別設計的新的高階語言。cg提供了剛才提到的所有優點,它最終使程式設計師使用這個語言輕鬆的進行gpu程式設計並發揮了gpu固有的強大動力。
cg語言
cg基於c,但是經過增強和調整使它可以輕鬆的程式設計並編譯成為高度優化的gpu**。cg**看起來和c**非常像,使用相同的宣告語法,函式呼叫和大多數的資料型別。
在詳細描述cg語言之前,解釋一下cg語言和c的一些不同點是非常重要的。基本上來說,是因為gpu和cpu程式設計模式的不同造成的。
CG語言的數學函式
abs x 返回標量和向量x的絕對值 如果x是向量,則返回每乙個成員的絕對值 acos x 返回標量和向量x的反余弦 x的範圍是 1,1 返回值的範圍是 0,如果x是向量,則返回每乙個成員的反余弦 all x 如果乙個布林標量為真,或者布林向量的所有成員為真,則返回真 any x 如果乙個布林標量為...
CG語言 基本光照渲染
本人新人一枚,想要將自己所學分享給大家,如有錯誤或不足請大家毫不猶豫的指出,謝謝大家的支援!那麼開始吧 乙個物體我們能看見是通過被光線照亮後經過反射進入我們的眼睛後大腦成像。計算機 gpu 就是計算進入眼睛之前的各個步驟得到的從而給我們反饋乙個結果。計算公式 su cecolor emissive ...
Cg入門介紹1 VS工程設定
1.介紹 cg是由nvidia公司和ms公司聯合設計的乙個針對圖形卡硬體程式設計的高階語言。cg的編譯器可以將cg轉化為組合語言,然後交由圖形卡處理器執行。本篇文章主要介紹一下在vs.net2003下開發opengl程式時,引入cg所需要進行的各項設定。3.工程設定 每次建立乙個新工程的時候都需要重...