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

清源游民 gameogre@gmail.com

OGRE渲染對(duì)象
Ogre中的render target 只是共享AGP內(nèi)存或顯存的某個(gè)區(qū)域的抽象,這個(gè)區(qū)域中保存著全部或部分場(chǎng)景2D渲染結(jié)果。最普通的render target是主渲染窗口,這是應(yīng)用程序的主窗口。使用這個(gè)render target不需要做太多另外的努力,ogre可以幫我們創(chuàng)建它。還可以把場(chǎng)景中的全部或部分(甚至是場(chǎng)景中不可見的部分)渲染到一個(gè)紋理,這個(gè)紋理可以被場(chǎng)景中的其他多邊形使用。目標(biāo)硬件緩沖在ogre中抽象為render target,它的物理顯示可以為主渲染窗口,也可以是副窗口,也可以是非可視的:紋理。
渲染對(duì)象也是事件源,假如程序注冊(cè)了這事件,ogre會(huì)在pre- 和 postrender時(shí)通知程序,這給程序改變?cè)O(shè)置,做出響應(yīng)的機(jī)會(huì)。甚至在視口(viewport)級(jí)別上pre-,post- 渲染時(shí)也有上述通知機(jī)制。ogre提供了計(jì)算渲染狀態(tài)信息的功能,如多長(zhǎng)時(shí)間渲染一幀,渲染對(duì)象上有多少三角形等。
渲染窗口
窗口是由渲染系統(tǒng)的具體實(shí)現(xiàn)創(chuàng)建與維護(hù)的(D3D9下是個(gè)標(biāo)準(zhǔn)的Win32 Window)。Ogre允許對(duì)渲染窗口進(jìn)行很少的配置,限于尺寸,標(biāo)題欄文字等。假如希望開發(fā)的程序有菜單,工具欄等,把ogre的渲染輸出到
窗口的客戶區(qū),這是可能的。ogre可以提供你系統(tǒng)相關(guān)的窗口句柄給渲染窗口,也允許你提供句柄給父窗口。第一個(gè)創(chuàng)建的ogre渲染窗口稱為主窗口。另外創(chuàng)建的是副窗口。窗口不像主窗口那么重要。假如在程序中有三個(gè)窗口,那么為了正確的進(jìn)行資源清理,必須在銷毀主窗口前把另外兩個(gè)副窗口銷毀。
視口
渲染窗口包含一個(gè)或多個(gè)視口。視口是一個(gè)長(zhǎng)方形區(qū)域,場(chǎng)景管理器把從一個(gè)相機(jī)中看到的場(chǎng)景可見內(nèi)容
的透視圖渲染到這個(gè)區(qū)域中。視口創(chuàng)建時(shí)會(huì)引用一個(gè)相機(jī),但這不是視口的靜態(tài)屬性,可以隨時(shí)改變用于
渲染視口的相機(jī)。每個(gè)視口擁有一個(gè)z序數(shù),z序高的位于Z序低之上。z序0,總是被一個(gè)能覆蓋整個(gè)渲染對(duì)象的視口所擁有。缺省,ogre會(huì)清理視口的顏色與深度緩沖。然而,可以關(guān)閉這些緩沖清理。視口是渲染對(duì)象(也就是特定的渲染系統(tǒng),如OpenGL)與相機(jī)(也就是特定場(chǎng)景管理器與它的內(nèi)容)之間的唯一交互點(diǎn)。視口不必占用整個(gè)渲染對(duì)象的表面。3D渲染相機(jī)不是真正的相機(jī),所有的幾何LoD計(jì)算是以相機(jī)的位置算的,因此不能簡(jiǎn)單的改變相機(jī)的焦點(diǎn)屬性來(lái)達(dá)到“更近”的渲染效果。
渲染到紋理
使用步驟是:創(chuàng)建一個(gè)紋理渲染對(duì)象,配置它的渲染屬性,加紋理到渲染對(duì)象列表,設(shè)置紋理到被使用的材質(zhì)。紋理對(duì)象先于其他渲染對(duì)象類型更新,這就保證了使用了渲染紋理的對(duì)象正確地被渲染。渲染紋理可以像其他普通紋理一樣被處理。對(duì)于那些不需要每幀都更新的渲染紋理,可以關(guān)閉自動(dòng)逐幀更新而采用手動(dòng)更新。從底層看,紋理對(duì)象就是一塊硬件緩沖。為了性能考慮,認(rèn)為它們是只寫與靜態(tài)的。渲染到紋理會(huì)渲染場(chǎng)景中的幾何,需要一些時(shí)間執(zhí)行,會(huì)降低應(yīng)用程序幀率。但是很多有用的技術(shù)現(xiàn)在離不開渲染到紋理的使用。實(shí)時(shí)陰影,實(shí)時(shí)反射等。ogre支持渲染到多個(gè)紋理,唯一的限制是它們就具有相同的寸。
渲染對(duì)象類
RenderTarget是RenderWindow,MultiRenderTarget,與RenderTexture的基類。
RenderWindow通過(guò)子類化來(lái)實(shí)現(xiàn):D3D9RenderWindow,GLXWindow等。在windows操作系統(tǒng)中,由于可以使用Direct3D 9或是OpenGL,于是可以分別使用D3D9RenderWindow,Win32Window。
RenderSystem::createRenderWindow()來(lái)創(chuàng)建窗口。
virtual RenderWindow* Ogre::RenderSystem::createRenderWindow? (? const String &? name,?
? unsigned int? width,?
? unsigned int? height,?
? bool? fullScreen,?
? const NameValuePairList *? miscParams = 0
?)?
通過(guò)最后一個(gè)參數(shù),可以設(shè)置窗口的一些屬性。
將渲染窗口嵌入外部窗口的代碼
NameValuePairList params; // is just a typedef std::map<std::string, std::string>
// set external window handle -- assume that you have
// already created a window to embed the Ogre render window, and its handle is
// stored in an integer variable called "mParent"
params["externalWindowHandle"] = StringConverter::toString(mParent);
// window can be resized later to fit within parent client area if needed
RenderWindow* window = createRenderWindow("MyWindow", 800, 600, false, &params);
渲染到紋理Demo
demo在原點(diǎn)創(chuàng)建了一個(gè)傾斜的平面,設(shè)置相機(jī),把場(chǎng)景(場(chǎng)景由一個(gè)魔鬼腦袋與幾個(gè)環(huán)面紐結(jié)組成)
相對(duì)于平面的倒影渲染到紋理中。渲染紋理與平面已經(jīng)應(yīng)用的靜態(tài)紋理混合,這樣就實(shí)現(xiàn)了反射效果。
創(chuàng)建渲染紋理:
TexturePtr texture = TextureManager::getSingleton().createManual( "RttTex",
?????????????????????????????? ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, TEX_TYPE_2D,
????????????????????????????? 512, 512, 0, PF_R8G8B8, TU_RENDERTARGET );
創(chuàng)建相機(jī)與視口用于渲染到紋理:
?????????? ? mReflectCam = mSceneMgr->createCamera("ReflectCam");
??????????? mReflectCam->setNearClipDistance(mCamera->getNearClipDistance());
??????????? mReflectCam->setFarClipDistance(mCamera->getFarClipDistance());
??????????? mReflectCam->setAspectRatio(
??????????????? (Real)mWindow->getViewport(0)->getActualWidth() /
??????????????? (Real)mWindow->getViewport(0)->getActualHeight());
??????????? Viewport *v = rttTex->addViewport( mReflectCam );
??????????? v->setClearEveryFrame( true );
??????????? v->setBackgroundColour( ColourValue::Black );
創(chuàng)建使用渲染紋理的材質(zhì)
MaterialPtr mat = MaterialManager::getSingleton().create("RttMat",
??????????????? ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
??????????? TextureUnitState* t = mat->getTechnique(0)->getPass(0)->createTextureUnitState("RustedMetal.jpg");
??????????? t = mat->getTechnique(0)->getPass(0)->createTextureUnitState("RttTex");
??????????? // Blend with base texture
??????????? t->setColourOperationEx(LBX_BLEND_MANUAL, LBS_TEXTURE, LBS_CURRENT, ColourValue::White,
??????????????? ColourValue::White, 0.25);
????????? ??t->setTextureAddressingMode(TextureUnitState::TAM_CLAMP);
????????? ??t->setProjectiveTexturing(true, mReflectCam);
??????????? rttTex->addListener(this);
材質(zhì)名為RttMat,包含一個(gè)技術(shù),后者有一個(gè)通道。通道有兩個(gè)紋理單元,一個(gè)為靜態(tài)紋理(RustedMetal.jpg)
,另一個(gè)紋理單元為渲染紋理,兩個(gè)紋理按比例混合。設(shè)置了合適的紋理尋址模式,開啟了透視紋理支持。
并為渲染紋理(它是渲染對(duì)象)注冊(cè)了偵聽器。
相機(jī)倒置使用材質(zhì):
??????????? // set up linked reflection
??????????? mReflectCam->enableReflection(mPlane);
??????????? // Also clip
??????????? mReflectCam->enableCustomNearClipPlane(mPlane);
??????? }
?????????? // Give the plane a texture
???????? ? mPlaneEnt->setMaterialName("RttMat");
相機(jī)這樣設(shè)置后,渲染出的將是場(chǎng)景的倒影,這是以指定平面為參照的。定制最近裁剪平面的作用是:
那些低于反射面的對(duì)象將不會(huì)再被渲染。渲染紋理時(shí),并不想把平面也渲染進(jìn)去,可以在上邊已經(jīng)注冊(cè)
偵聽器做點(diǎn)手腳
void preRenderTargetUpdate(const RenderTargetEvent& evt)
??? {
??????? // Hide plane
??????? mPlaneEnt->setVisible(false);

??? }
??? void postRenderTargetUpdate(const RenderTargetEvent& evt)
??? {
??????? // Show plane
??????? mPlaneEnt->setVisible(true);
??? }
最后要提的是,在每一幀,都要使兩個(gè)相機(jī)的位置,朝向保持一致:
frameStarted:
?mReflectCam->setOrientation(mCamera->getOrientation());
? mReflectCam->setPosition(mCamera->getPosition());

posted on 2007-03-15 17:25 清源游民 閱讀(2392) 評(píng)論(0)  編輯 收藏 引用 所屬分類: OGRE
<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

留言簿(35)

隨筆分類(78)

隨筆檔案(74)

文章檔案(5)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            激情国产一区| 国产精品视频免费| 国产精品久久久久久久第一福利| 国产伦精品一区二区三区照片91| 悠悠资源网久久精品| 香蕉av福利精品导航| 国产专区精品视频| 亚洲欧美日韩综合国产aⅴ| 亚洲精品一区二区三区四区高清 | 久久九九国产精品怡红院| 亚洲精品在线观看视频| 久久狠狠亚洲综合| 久久久999| 亚洲免费观看| 亚洲日本中文字幕| 欧美性生交xxxxx久久久| 亚洲欧美不卡| 久久一区二区三区超碰国产精品| 国产三级精品在线不卡| 免费永久网站黄欧美| 欧美日韩一区二区三区视频| 午夜精品久久久久久久久| 亚洲欧美综合v| 亚洲黄色性网站| 性欧美长视频| 一本色道久久综合狠狠躁篇怎么玩| 亚洲三级免费| 亚洲第一精品福利| 午夜精品区一区二区三| 日韩视频在线永久播放| 美女尤物久久精品| 欧美视频一区二区三区在线观看| 久久精品导航| 国产欧美一区二区三区久久人妖| 亚洲国产综合在线| 精品成人一区| 久久国产一区| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品乱子久久久久| 一区二区电影免费在线观看| 亚洲免费福利视频| 麻豆精品一区二区综合av| 国产精品久久久久久久久动漫| 日韩午夜中文字幕| 精品999在线观看| 久久国产精品网站| 久久精品在线观看| 1024国产精品| 欧美成人四级电影| 一本一本久久a久久精品牛牛影视| 这里只有精品丝袜| 国产精品视频久久一区| 欧美中文字幕视频在线观看| 久久综合九色欧美综合狠狠| 影音国产精品| 欧美四级电影网站| 欧美影片第一页| 欧美r片在线| 亚洲一区国产| 一区二区三区自拍| 欧美日韩成人在线| 欧美在线影院| 亚洲一区图片| 亚洲免费高清视频| 欧美va亚洲va香蕉在线| 亚洲一区二区伦理| 亚洲茄子视频| 狠久久av成人天堂| 久热精品在线视频| 亚洲色在线视频| 亚洲福利视频二区| 蜜桃精品久久久久久久免费影院| 亚洲综合国产精品| 99精品欧美一区| 亚洲精品美女在线观看| 尤物99国产成人精品视频| 国产精品国产福利国产秒拍| 媚黑女一区二区| 久久久99爱| 久久九九久久九九| 欧美在线视频不卡| 亚洲视频一区二区免费在线观看| 影院欧美亚洲| 在线观看91精品国产麻豆| 国产欧美日韩在线| 国产热re99久久6国产精品| 欧美日韩直播| 国产精品三级视频| 欧美在线看片a免费观看| 亚洲一区二区日本| 久久爱www| 免费看的黄色欧美网站| 欧美精品播放| 国产精品日本精品| 国产区亚洲区欧美区| 一本大道久久a久久综合婷婷| 性欧美xxxx大乳国产app| 玖玖玖国产精品| 99这里有精品| 免费欧美日韩| 国产午夜精品视频| 亚洲自拍电影| 亚洲精品国产精品国自产在线| 亚洲欧美中文字幕| 国产精品极品美女粉嫩高清在线 | 亚洲精品国产欧美| 欧美一区二区三区精品电影| 亚洲国产精品久久| 免费中文日韩| 亚洲欧洲另类| 欧美成人有码| 欧美激情在线免费观看| 最新中文字幕一区二区三区| 麻豆精品视频在线| 免费视频亚洲| 亚洲精品午夜精品| 亚洲伦理网站| 国产精品欧美风情| 欧美日韩一区自拍| 宅男精品视频| 亚洲综合视频网| 国产一级一区二区| 久久影院午夜片一区| 久久阴道视频| 一区二区欧美国产| 亚洲午夜精品17c| 韩国三级在线一区| 亚洲黄色一区| 国精品一区二区三区| 欧美aa在线视频| 欧美午夜电影在线| 久久综合九九| 欧美特黄视频| 欧美激情区在线播放| 国产精品久久久久三级| 欧美大片在线观看一区二区| 欧美日韩高清在线| 久久久www成人免费精品| 欧美风情在线观看| 免费不卡在线观看| 国产精品久久久久久模特 | 久久精品视频免费播放| 开心色5月久久精品| 亚洲欧美日韩直播| 男男成人高潮片免费网站| 亚洲视频在线免费观看| 久久影音先锋| 久久国产精品一区二区| 国产精品久久777777毛茸茸| 亚洲欧洲日本国产| 亚洲毛片在线观看| 欧美二区在线观看| 亚洲福利一区| 最新国产の精品合集bt伙计| 久久国产视频网站| 欧美一站二站| 国内激情久久| 久久免费的精品国产v∧| 久久综合九色欧美综合狠狠| 国语自产在线不卡| 久久久蜜桃一区二区人| 久久综合久久综合九色| 久久精品99国产精品日本| 久久精品欧洲| 伊人夜夜躁av伊人久久| 麻豆亚洲精品| 99精品久久久| 久久精品国产第一区二区三区| 韩国一区电影| 欧美精品久久99| 亚洲欧美综合网| 美女999久久久精品视频| 91久久精品网| 国产精品免费一区二区三区在线观看 | 久久久亚洲一区| 亚洲国产欧美日韩| 欧美日韩一区二区国产| 欧美在线日韩| 亚洲国产精品一区制服丝袜| 亚洲字幕一区二区| 91久久精品久久国产性色也91 | 国产精品成人一区二区| 在线日本欧美| 一区二区免费在线视频| 久久精品视频播放| 免费亚洲电影| 日韩一级黄色片| 亚洲一区免费视频| 亚洲人成网站影音先锋播放| 久久精品免费电影| 欧美一区二区性| 久久精品二区| 欧美成人日本| 亚洲国产乱码最新视频| 欧美激情欧美激情在线五月| 欧美电影在线| 夜夜嗨av一区二区三区四区| 夜夜嗨av一区二区三区| 亚洲欧美久久久| 久久亚洲精品一区|