青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

實時陰影繪制技術(shù)研究

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  48 Posts :: 20 Stories :: 57 Comments :: 0 Trackbacks

Using CG Runtime Library

  • 因為 Cg runtime 是運行進行編譯和執(zhí)行的接口,所以首先強調(diào)預(yù)編譯的話,要編譯好多版本,而且對將來的硬件改變不能擴展,沒有使用 cg runtime 來得好
  • 執(zhí)行過程前文介紹過了

  • 可以通過一個 cg 文件使用 CG _SOURCE 來創(chuàng)建 CGProgram ,也可以通過一個 cg 程序使用 CG_OBJECT 來創(chuàng)建一個 CGProgram
  • CGProgram :所有的 cg 設(shè)置都是圍繞 CGProgram 展開的,目的就是給繪制設(shè)置正確的參數(shù)狀態(tài)。
    • CGbool cgIsProgramCompiled(CGprogram program);
    • cgCompileProgram(CGprogram program);
    • CGprogram cgCopyProgram(CGprogram program);
    • CGprogram cgGetFirstProgram(CGcontext context);

CGprogram cgGetNextProgram(CGprogram program);但不能保證取出來的順序

  • const char* cgGetLastListing(CGcontext context);獲得最后一個 cgCreateProgram 的結(jié)果
  • CGcontext cgGetProgramContext(CGprogram program);

CGprofile cgGetProgramProfile(CGprogram program);

CGprofile cgGetProfile(const char* profileString);

const char* cgGetProfileString(CGprofile profile);

  • const char* cgGetProgramString(CGprogram program,CGenum stringType);
  • CGParameter :關(guān)于參數(shù)的函數(shù)很多,可以順次取得參數(shù),也可以通過名稱樹(或者叫命名空間)的形式來綁定參數(shù),并用來設(shè)置參數(shù)。
    • CGparameter cgGetFirstParameter(CGprogram program,CGenum namespace);

CGparameter cgGetNextParameter(CGparameter parameter);

  • cgGetFirstStructParameter() along with cgGetNextParameter():
  • int cgGetArrayDimension(CGparameter parameter);

int cgGetArraySize(CGparameter parameter, int dimension);

CGparameter cgGetArrayParameter(CGparameter parameter,int index);

CGparameter cgGetNamedParameter(CGprogram program,const char* name);

  • CGprogram cgGetParameterProgram(CGparameter parameter);
  • CGenum cgGetParameterVariability(CGparameter parameter);
  • CGenum cgGetParameterDirection(CGparameter parameter);
  • CGtype cgGetParameterType(CGparameter parameter);
  • CGtype cgGetType(const char* typeString);

const char* cgGetTypeString(CGtype type);

  • const char* cgGetParameterName(CGparameter parameter);
  • const char* cgGetParameterSemantic(CGparameter parameter);
  • CGresource cgGetParameterResource(CGparameter parameter);

CGresource cgGetResource(const char* resourceString);

const char* cgGetResourceString(CGresource resource);

CGresource cgGetParameterBaseResource(CGparameter parameter);

unsigned long cgGetParameterResourceIndex(CGparameter parameter);

const double* cgGetParameterValues(CGparameter parameter,CGenum valueType, int* numberOfValuesReturned);

  • CGError :可以使用回調(diào)機制處理錯誤,像 glGetError 那樣獲得最后的錯誤,并有各種錯誤的枚舉。
    • CGerror error = cgGetError();

const char* errorString = cgGetErrorString(error);

  • void MyErrorCallback() {

const char* errorString = cgGetErrorString(cgGetError());

}

cgSetErrorCallback(MyErrorCallback);

  • 上邊算是核心吧,下邊展示一下總體關(guān)系圖。

  • 我的理解:

0,因為openGL最終使用的是program,所以一切都為了控制Program。

1,可以由file直接生成program,但這種方式不好控制,

只能一個一個的設(shè)置parameter的方式去控制參數(shù),

對于具有State的fx更是無能為力。

2,可以由file生成effect,然后通過對于各個Technique的各個Pass的各個State

的設(shè)置和改變來控制Effect,再由effect生成Program。

3,一種很好的解決狀態(tài)問題的方法就是按照FX封裝State,然后按照State進行排序,

并使用CallBack函數(shù)的方式一次性的設(shè)置當(dāng)前Program需要的State。

?

現(xiàn)在還不清楚的是 fx 文件中的 Technique Pass 以及各種 State 狀態(tài)是怎么運作,設(shè)置到 Program 里邊的。

posted on 2006-04-21 01:29 苦行僧 閱讀(1488) 評論(0)  編輯 收藏 引用 所屬分類: graphic
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费成人av| 亚洲区一区二区三区| 亚洲一区二区成人| 欧美激情第一页xxx| 另类尿喷潮videofree| 久久午夜电影| 亚洲成色777777在线观看影院| 亚洲影音一区| 亚洲欧美日韩国产成人| 久久精品国亚洲| 欧美激情aⅴ一区二区三区| 欧美一级大片在线免费观看| 欧美一区激情| 欧美日韩国产精品专区| 国产精品亚发布| 黄色综合网站| 欧美一区三区三区高中清蜜桃| 久久久欧美精品sm网站| 亚洲精品裸体| 久久精品动漫| 国产一区二区精品在线观看| 亚洲欧洲日本专区| 久久精品亚洲国产奇米99| 亚洲国产成人久久综合| 亚洲欧美日韩国产综合| 欧美另类一区| 日韩一级黄色大片| 亚洲第一中文字幕| 久久综合国产精品| 激情小说另类小说亚洲欧美 | 亚洲人成网在线播放| 午夜亚洲性色福利视频| 国产精品xxx在线观看www| 日韩一本二本av| 宅男在线国产精品| 欧美亚日韩国产aⅴ精品中极品| 亚洲第一精品夜夜躁人人爽| 久久综合久久久久88| 久久超碰97中文字幕| 悠悠资源网久久精品| 欧美粗暴jizz性欧美20| 欧美黄色精品| 欧美在线黄色| 欧美一区二区三区喷汁尤物| 亚洲欧美精品suv| 国产无遮挡一区二区三区毛片日本| 午夜性色一区二区三区免费视频| 欧美一级久久久久久久大片| 伊甸园精品99久久久久久| 欧美第十八页| 国产精品国色综合久久| 久久亚洲国产成人| 欧美日韩国产大片| 久久久精品日韩| 欧美精品一卡| 欧美成人三级在线| 国产精品成人在线| 欧美v国产在线一区二区三区| 欧美超级免费视 在线| 久久国产免费看| 欧美日韩在线三区| 91久久久久久| 在线观看国产精品网站| 午夜精品久久久| 日韩一级黄色大片| 欧美激情女人20p| 久久久久久9| 国产精品稀缺呦系列在线| 亚洲激情黄色| 亚洲黄色高清| 欧美男人的天堂| 日韩午夜免费视频| 一区二区成人精品| 欧美区在线观看| 日韩视频一区二区三区在线播放| 亚洲日本中文字幕免费在线不卡| 久久婷婷丁香| 91久久精品国产91久久| 亚洲国产乱码最新视频| 欧美国产日韩一区二区三区| 午夜一区在线| 午夜精品久久久久久久99樱桃| 欧美性开放视频| 亚洲在线免费| 亚洲人成人一区二区三区| 国产自产精品| 国产亚洲福利| 国产农村妇女精品| 欧美高清视频www夜色资源网| 老司机久久99久久精品播放免费| 亚洲高清免费| 国产精品日日摸夜夜添夜夜av| 亚洲欧美一区二区三区久久 | 99精品免费视频| 亚洲欧美日韩直播| 亚洲国产婷婷香蕉久久久久久99| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲精品久久久久久一区二区| 午夜精品视频| 在线观看欧美日韩| 国产精品成人一区二区三区夜夜夜 | 性欧美在线看片a免费观看| 狠狠色噜噜狠狠色综合久| 欧美激情国产精品| 欧美成人三级在线| 久久另类ts人妖一区二区| 亚洲在线观看免费视频| 亚洲午夜小视频| 亚洲视频免费在线| 午夜亚洲视频| 亚洲一区二区三区久久| 亚洲看片网站| 亚洲婷婷综合色高清在线| 亚洲欧美日韩另类精品一区二区三区| 一区二区三区四区蜜桃| 亚洲一区二区精品在线观看| 夜夜夜久久久| 久久美女艺术照精彩视频福利播放| 久久在线免费| 一区二区三区蜜桃网| 亚洲日韩中文字幕在线播放| 亚洲高清网站| 伊人精品久久久久7777| 欧美一区二区三区视频在线观看 | 免费精品视频| 国产精品久99| 亚洲毛片在线观看.| 久久久久久久久岛国免费| 欧美激情精品久久久久久黑人| 一区二区三区视频观看| 久久久久久久久蜜桃| 欧美日韩裸体免费视频| 亚洲高清网站| 欧美成人三级在线| 久久精品国产v日韩v亚洲 | 欧美怡红院视频| 欧美久久一区| 亚洲精品久久久蜜桃| 久久精品水蜜桃av综合天堂| 午夜精品美女久久久久av福利| 欧美噜噜久久久xxx| 一区在线免费观看| 久久久一区二区三区| 久久婷婷色综合| 日韩视频在线观看国产| 午夜精品在线观看| 亚洲欧美日韩国产综合在线| 国产精品久久久久久久久久尿 | 午夜亚洲视频| 国产精品美女一区二区| 亚洲一线二线三线久久久| 在线午夜精品自拍| 国内精品久久久久国产盗摄免费观看完整版 | 久久久久欧美精品| 国内精品久久久久久久果冻传媒| 亚洲丝袜av一区| 中文国产成人精品| 激情六月婷婷久久| 亚洲国产精品一区制服丝袜| 欧美日韩精品一区| 99热免费精品在线观看| 在线视频欧美日韩| 狠狠狠色丁香婷婷综合激情| 亚洲国产精品激情在线观看| 国产精品人人做人人爽人人添| 欧美国产一区二区| 一区二区在线视频播放| 久久成人羞羞网站| 久久av一区二区三区漫画| 国产精品看片资源| 亚洲午夜精品17c| 亚洲视频观看| 国产欧美综合在线| 久久国产精品久久精品国产| 久久伊人亚洲| 久久精品国产精品亚洲综合| 一区二区三区在线观看视频 | 欧美日韩亚洲一区三区| 日韩小视频在线观看专区| 免费不卡亚洲欧美| 亚洲免费电影在线| 国产精品久久久久9999吃药| 欧美www视频| 亚洲高清在线| 99国产一区| 久久久99国产精品免费| 亚洲美女中出| 免费成人网www| 久久精品女人| 有坂深雪在线一区| 久久精品视频在线免费观看| 久久久久久久久久久久久女国产乱 | 亚洲美女av黄| 欧美成人午夜| 亚洲国产成人精品女人久久久 | 久久综合伊人77777| 免费试看一区| 亚洲无亚洲人成网站77777 | 欧美一区二区三区在线免费观看 | 亚洲综合色自拍一区|