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

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

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

Using CG Runtime Library

  • 因?yàn)?/span> Cg runtime 是運(yùn)行進(jìn)行編譯和執(zhí)行的接口,所以首先強(qiáng)調(diào)預(yù)編譯的話,要編譯好多版本,而且對將來的硬件改變不能擴(kuò)展,沒有使用 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)機(jī)制處理錯誤,像 glGetError 那樣獲得最后的錯誤,并有各種錯誤的枚舉。
    • CGerror error = cgGetError();

const char* errorString = cgGetErrorString(error);

  • void MyErrorCallback() {

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

}

cgSetErrorCallback(MyErrorCallback);

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

  • 我的理解:

0,因?yàn)閛penGL最終使用的是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進(jìn)行排序,

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

?

現(xiàn)在還不清楚的是 fx 文件中的 Technique Pass 以及各種 State 狀態(tài)是怎么運(yùn)作,設(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乱码| 在线视频精品一区| 久久er精品视频| 国产视频一区欧美| 久久一区激情| 欧美电影免费观看高清完整版| 亚洲精品一区二区三区不| 亚洲国产欧美一区二区三区久久 | 亚洲免费在线电影| 午夜久久久久久| 亚洲福利在线看| 一本大道av伊人久久综合| 国产精品久久久一本精品| 久久九九久精品国产免费直播| 久久综合国产精品| 亚洲欧美国产视频| 久久亚洲图片| 亚洲永久精品国产| 久久精品99无色码中文字幕 | 亚洲一区二区视频| 激情综合色综合久久| 亚洲人久久久| 国产区二精品视| 亚洲国产欧美不卡在线观看| 国产精品普通话对白| 美女999久久久精品视频| 欧美日韩免费在线| 国产精品免费视频观看| 午夜久久久久| 欧美国产高清| 国产日韩在线播放| 亚洲精品日日夜夜| 国内成人在线| 亚洲视频免费在线| 亚洲精品美女在线| 久久精品视频免费观看| 亚洲影视综合| 欧美久久在线| 欧美本精品男人aⅴ天堂| 国产精品视频免费一区| 欧美顶级少妇做爰| 亚洲伊人网站| 欧美三日本三级少妇三2023| 久久婷婷影院| 国产精品嫩草久久久久| 亚洲黄色片网站| 在线观看av一区| 欧美一区二区在线观看| 亚洲欧美亚洲| 欧美午夜精品久久久久久人妖| 亚洲国产美女精品久久久久∴| 在线观看亚洲一区| 久久爱91午夜羞羞| 久久久国产亚洲精品| 国产精品亚洲а∨天堂免在线| 一区二区三区欧美亚洲| 一区二区三区.www| 欧美另类一区二区三区| 91久久夜色精品国产网站| 91久久国产综合久久蜜月精品| 久久亚洲视频| 亚洲国产精彩中文乱码av在线播放| 红杏aⅴ成人免费视频| 欧美在线亚洲| 久久女同互慰一区二区三区| 国产在线视频欧美| 久久激情视频久久| 免费成人美女女| 亚洲高清在线观看一区| 久久伊人精品天天| 亚洲国产婷婷香蕉久久久久久| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久国产综合精品| 欧美插天视频在线播放| 亚洲精品欧洲精品| 欧美日韩一区二区在线观看| 亚洲色图在线视频| 久久精品日韩| 亚洲国产精品电影在线观看| 欧美高清成人| 亚洲视频一区二区| 久久久久久久久蜜桃| 伊人影院久久| 欧美激情导航| 一区二区三区免费在线观看| 久久精品99| 最新日韩在线视频| 国产精品高潮在线| 久久国产直播| 日韩视频在线观看免费| 欧美在线地址| 亚洲乱码精品一二三四区日韩在线| 欧美区一区二区三区| 香蕉久久精品日日躁夜夜躁| 亚洲成色777777在线观看影院| 一本色道久久88综合日韩精品 | 欧美xx69| 亚洲伊人第一页| 欧美激情精品| 午夜精品福利一区二区蜜股av| 一区精品在线| 国产精品www网站| 久久天天狠狠| 亚洲专区国产精品| 亚洲国产视频a| 久久久久九九九| 亚洲一区二区3| 亚洲第一精品夜夜躁人人躁 | 亚洲成人在线视频网站| 久久久久久久成人| 一区二区电影免费在线观看| 久热精品在线| 午夜国产一区| 一本色道久久综合亚洲精品高清| 国产综合亚洲精品一区二| 欧美区国产区| 嫩模写真一区二区三区三州| 午夜亚洲视频| 一区二区三区四区五区精品| 亚洲高清中文字幕| 久久躁日日躁aaaaxxxx| 香蕉尹人综合在线观看| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲国产精品久久久| 欧美日韩国产首页在线观看| 男女激情久久| 亚洲伊人网站| 一本色道久久88综合日韩精品| 欧美va天堂在线| 久久视频在线免费观看| 欧美亚洲综合网| 亚洲自拍电影| 亚洲午夜av| 99热在线精品观看| 亚洲三级免费电影| 1024成人网色www| 在线成人免费观看| 尤物视频一区二区| 在线播放中文字幕一区| 激情五月婷婷综合| 在线观看福利一区| 亚洲国产高清aⅴ视频| 影院欧美亚洲| 亚洲国产精品成人久久综合一区| 激情欧美一区二区三区| 激情综合色综合久久| 伊人男人综合视频网| 欧美精品一区二区三区视频 | 国产欧美成人| 一本久久a久久精品亚洲| 在线视频一区观看| 亚洲精品精选| 日韩一区二区福利| 亚洲新中文字幕| 午夜精品久久久久久久白皮肤| 亚洲欧洲99久久| 欧美一区二区在线免费观看| 翔田千里一区二区| 久久伊人亚洲| 欧美激情久久久久久| 亚洲精品你懂的| 亚洲区在线播放| 亚洲香蕉在线观看| 久久精品国产亚洲高清剧情介绍| 久久九九国产| 欧美日韩激情小视频| 国产伦精品一区二区三区高清版| 国内揄拍国内精品少妇国语| 亚洲国产精品毛片| 亚洲精品综合久久中文字幕| 国产农村妇女精品一区二区| 久久尤物视频| 亚洲区国产区| 午夜精品久久久久久久蜜桃app | 欧美午夜剧场| 国产亚洲一级| 最近中文字幕日韩精品| 亚洲嫩草精品久久| 欧美不卡一区| 午夜久久久久| 欧美日本韩国一区| 激情综合久久| 先锋影院在线亚洲| 亚洲国产精品一区二区www| 亚洲一区二区三区乱码aⅴ| 麻豆精品91| 国产欧美三级| 中国亚洲黄色| 免费观看在线综合色| 亚洲一区二区视频| 欧美日韩视频在线一区二区 | 亚洲成色www8888| 亚洲欧美制服另类日韩| 欧美成人伊人久久综合网| 国产欧美精品| 宅男噜噜噜66一区二区| 欧美成人综合一区| 欧美在线观看www| 国产精品久久九九| 一本大道久久a久久精品综合|