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

實(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>
            亚洲影院高清在线| 欧美国产欧美综合| 久久精品亚洲热| 99热精品在线| 亚洲国产99| 亚洲激情偷拍| 极品少妇一区二区三区精品视频| 欧美人成在线| 国产精品丝袜91| 国产精品男女猛烈高潮激情| 欧美日韩三区四区| 国产精品入口日韩视频大尺度| 亚洲女人天堂av| 亚洲一区二区黄| 亚洲在线播放电影| 亚洲性感激情| 久久这里只有精品视频首页| 久久免费少妇高潮久久精品99| 欧美在线播放| 久久一综合视频| 裸体丰满少妇做受久久99精品| 亚洲一区二区三区四区五区黄| 亚洲精品国产视频| 久久尤物视频| 欧美高清在线视频观看不卡| 亚洲欧美日韩区| 性伦欧美刺激片在线观看| 久久久久在线| 久久露脸国产精品| 老巨人导航500精品| 亚洲激情视频网| 亚洲精品久久久久久下一站| 亚洲三级视频在线观看| 新狼窝色av性久久久久久| 久久国产精品电影| 久久亚洲欧洲| 国产精品高潮久久| 国产亚洲欧美日韩日本| 亚洲成在线观看| 欧美一级电影久久| 免费日韩精品中文字幕视频在线| 欧美激情精品久久久久久黑人| 亚洲视频在线看| 久久久另类综合| 欧美日韩国产色视频| 激情成人在线视频| 99精品视频免费观看视频| 午夜视频一区在线观看| 亚洲国产网站| 久久成人国产| 欧美色欧美亚洲另类二区 | 久久久亚洲高清| 欧美精品一区三区| 国产综合av| 一区二区免费看| 久久午夜视频| 亚洲色图自拍| 一本高清dvd不卡在线观看| 久久精品国产亚洲一区二区| 久久xxxx| 国产精品sm| 亚洲精品国产精品国自产在线| 久久久91精品国产一区二区精品| 亚洲国产一区二区视频| 亚洲日本电影| 欧美日韩久久久久久| 一区二区三区无毛| 亚洲剧情一区二区| 亚洲精品乱码久久久久久久久 | 亚洲精品自在在线观看| 一区二区三区三区在线| 免费亚洲婷婷| 久热精品视频在线观看一区| 久久国产视频网| 亚洲手机在线| 欧美视频成人| 亚洲美女中文字幕| 亚洲国产欧美一区二区三区同亚洲 | 欧美视频免费在线| 亚洲视频一区在线观看| 欧美激情精品久久久六区热门| 午夜精品一区二区三区在线播放 | 香蕉成人久久| 国产欧美三级| 欧美成人精品一区二区| 欧美一级视频免费在线观看| 国产精品草草| 久久久久久久欧美精品| 欧美一区网站| 狠久久av成人天堂| 亚洲欧洲日韩综合二区| 欧美护士18xxxxhd| 亚洲第一毛片| 91久久夜色精品国产九色| 欧美国产成人精品| 精品91免费| 亚洲国产精品久久久久秋霞影院 | 亚洲专区免费| 国产一区二区三区免费不卡| 久久精品国产91精品亚洲| 久久一区中文字幕| 一本色道久久综合| 日韩视频不卡中文| 国产一区二区三区直播精品电影| 久久综合电影| 欧美大成色www永久网站婷| 亚洲少妇中出一区| 欧美一区二区在线免费播放| 亚洲第一精品夜夜躁人人爽| 这里只有精品在线播放| 国产一区二区三区丝袜| 久久午夜av| 欧美精品导航| 欧美一区二区三区在线观看| 亚洲视频电影图片偷拍一区| 国模私拍视频一区| 亚洲国产日韩欧美在线图片| 国产精品黄色| 亚洲国产成人在线视频| 欧美福利视频| 久久激情中文| 99热在这里有精品免费| 久久裸体视频| 亚洲一区二区在| 久久天天综合| 久久久另类综合| 欧美国产第一页| 久久都是精品| 欧美日本国产精品| 美女精品网站| 国产精品一级久久久| 亚洲激情小视频| 欧美午夜片在线观看| 欧美国产精品一区| 国产久一道中文一区| 日韩一区二区久久| 亚洲国产黄色片| 美女久久一区| 久久综合中文字幕| 国产精品久久久久久久久久免费看| 久久精品三级| 国产精品二区在线观看| 一区二区三区国产精华| 亚洲国产专区| 欧美一区二区成人6969| 久久久久亚洲综合| 国产精品少妇自拍| 日韩视频免费观看高清在线视频| 99国产精品视频免费观看| 久久精品一区二区国产| 亚洲国产日韩欧美综合久久| 看片网站欧美日韩| 久热精品视频在线| 国产精品永久入口久久久| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲精品乱码久久久久久| 欧美黄色视屏| 亚洲欧洲精品一区二区三区| 在线精品视频一区二区三四| 久久久99爱| 久久亚洲综合色| 国产一区二区三区久久| 欧美一级电影久久| 日韩亚洲在线| 国产精品日韩精品| 亚洲自啪免费| 欧美+亚洲+精品+三区| 在线观看欧美日本| 美女91精品| 国产精品99久久久久久www| 亚洲欧美精品在线| 国产精品亚洲综合色区韩国| 久久性天堂网| 欧美激情视频一区二区三区不卡| 亚洲国产成人午夜在线一区| 欧美日韩中文字幕在线| 亚洲视频在线免费观看| 日韩视频欧美视频| 国产亚洲永久域名| 久久乐国产精品| 久久天天躁夜夜躁狠狠躁2022| 亚洲精品一区二区三区婷婷月 | 在线亚洲精品福利网址导航| 欧美精品尤物在线| 久久国产精品一区二区三区| 久久久久久9| 亚洲国产综合在线| 国产日韩欧美日韩大片| 久久美女性网| 一区二区精品国产| 久久亚洲私人国产精品va| 亚洲区一区二| 黄色成人av在线| 欧美男人的天堂| 91久久久久久| 麻豆精品网站| 亚洲主播在线| 国产精品99久久久久久久久久久久 | 亚洲第一在线| 麻豆精品视频在线观看视频|