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

清源游民 gameogre@gmail.com

布告板(Billboard)
Ogre中的布告板簡(jiǎn)單的來講就是場(chǎng)景中的一個(gè)四邊形,但它的朝向與相機(jī)有關(guān)。通常布告板隨著相機(jī)的視方向旋轉(zhuǎn)以便與相機(jī)的視線方向?qū)R。把布告板放在場(chǎng)景的任何地方,它將會(huì)朝向相機(jī)。為了效率考慮,布告板與相機(jī)的視線方向?qū)R,而不是與從布告板到相機(jī)的向量對(duì)齊。大部分情況下兩者沒有明顯的區(qū)別。如果想使用后一種的對(duì)齊形式,也可以辦到,但在性能會(huì)有所降低。
布告板集(Billboard Sets)
布告板不能獨(dú)立存在,他們也不能自我渲染。他們必須屬于某個(gè)布告板集。布告板集可認(rèn)為是一組布告板
的管理器,布告板集內(nèi)的所有布告板有相同的尺寸,使用相同的材質(zhì)。相同的尺寸,相同的紋理會(huì)帶來計(jì)算與渲染效率的提升。可以在一個(gè)布告板集內(nèi)單獨(dú)改變某個(gè)公告板的尺寸,但這樣做會(huì)導(dǎo)致性能下降ogre
認(rèn)為一個(gè)布告板集是一個(gè)操作的單位,它們要么都不渲染,要么全部進(jìn)行渲染,換句話說,它們以同樣的
方式進(jìn)行剔除處理,也可以對(duì)集合的個(gè)體進(jìn)行單獨(dú)剔除,但最好不要這么做,同樣這也是出于效率的慮。在大范圍的應(yīng)用布告板集來模擬草的例子中,就有可能出現(xiàn)在布告板集內(nèi)的許多布告板落在視角之外的情況,在這種情況下也許會(huì)想到用單獨(dú)剔除的方式,但這樣做同樣不可避免地會(huì)影響性能。更好的做法是使用多個(gè)布告板集而不是在一個(gè)巨大的布告板集進(jìn)行單獨(dú)剔除。布告板集內(nèi)的布告板是相對(duì)于布告板集attached到的場(chǎng)景結(jié)點(diǎn)進(jìn)行定位的。既然,布告板集內(nèi)的布告板使用相同的材質(zhì),那么它們會(huì)在同一batch進(jìn)行渲染。
布告板創(chuàng)建
布告板可以用與本布告板集的中心的偏移與尺寸(寬,高)來描述。它的方向是它到相機(jī)向量的函數(shù)。缺省,創(chuàng)建的布告板是所謂的point布告板。這種布告板總是完全地面對(duì)相機(jī)而且垂直。布告板的原點(diǎn)缺省位置是它的中心,可以在九個(gè)規(guī)范的位置范圍內(nèi)改變?cè)c(diǎn)位置。第二種類型的布告板是oriented布告板,它即可以沿各自的Y軸旋轉(zhuǎn),也可沿共同的軸(通常是Y軸)旋轉(zhuǎn)。第三種是perpendicular布告板,它與方向向量(布告板與相機(jī)之間的向量)垂直。這個(gè)方向向量可以是共享的向量(通常是Z軸),也可以是各自的Z軸。這種類型的布告板也需要一個(gè)上方向輔助定位。
point布告板相對(duì)于其他類型的布告板有一些優(yōu)點(diǎn)。一般,ogre為每個(gè)布告板產(chǎn)生一個(gè)quad(四個(gè)頂點(diǎn),每個(gè)
頂點(diǎn)都有位置,紋理坐標(biāo)),并把生成的幾何體送入GPU進(jìn)行渲染。對(duì)于point 布告板,可以廢除其中的三個(gè),讓GPU挑選,以及決定如何進(jìn)行基于點(diǎn)繪制紋理屬性的渲染。進(jìn)行硬件點(diǎn)渲染有一些限制:只支持
point布告板,其中只限于以中心為原點(diǎn)的那一類。尺寸與外觀在材質(zhì)中定義,不在布告板集,尺寸是有限
的,不可能與軟件創(chuàng)建的一樣大。不支持單獨(dú)的布告板旋轉(zhuǎn)與改變大小,但可以對(duì)紋理單元旋轉(zhuǎn)。
布告板池
創(chuàng)建布告板時(shí)需要告訴布告板集中布告板的數(shù)量。布告板被分別放在active與free列表中,這使得定位非常快。當(dāng)創(chuàng)建的布告板的數(shù)量超過了布告板池的尺寸,池的尺寸會(huì)增加一倍。最好事先確定池的大小,避免在使用中使池的大小不合理地增長。
布告板紋理坐標(biāo)
支持非全范圍的紋理坐標(biāo)分配。舉個(gè)例子,假如你有個(gè)紋理,它包含幾個(gè)子紋理。每個(gè)紋理都包含一個(gè)
英文字母。這時(shí),你想創(chuàng)建幾個(gè)公告板,每個(gè)公告板上顯示不同的字母,當(dāng)然它們都來自同一個(gè)紋理。
可以先創(chuàng)建一個(gè)包含紋理坐標(biāo)的數(shù)組,然后把這個(gè)數(shù)組提供給布告板集。當(dāng)利用布告板集創(chuàng)建布告板時(shí),
可以給這個(gè)布告板一個(gè)存放紋理坐標(biāo)的數(shù)組的索引。圖片與代碼如下:

// create a new billboard set with a pool of 4 billboards
BillboardSet* bbset = sceneMgr->createBillboardSet("BBSet", 4);
// create a texture coordinate array to address the texture
FloatRect texCoordArray[] = {
FloatRect(0.0, 0.0, 0.5, 0.5), // address the "A"
FloatRect(0.5, 0.0, 1.0, 0.5), // address the "B"
FloatRect(0.0, 0.5, 0.5, 1.0), // address the "C"
FloatRect(0.5, 0.5, 1.0, 1.0), // address the "D"
};
// provide this array to the billboard set
bbset->setTextureCoords(texCoordArray, 4);
// now create a billboard to display the "D"; this
// is the fourth entry in the array, index=3
Billboard* bb = bbset->createBillboard(Vector3(0, 0, 0));
bb->setTexcoordIndex(3);
也可以直接對(duì)紋理坐標(biāo)進(jìn)行賦值
FloatRect coords(0.5, 0.5, 1.0, 1.0);
bb->setTexcoordRect(coords);
布告板使用的材質(zhì)腳本與可以包括正常材質(zhì)腳本中的所有東西,而且可以使用布告板與點(diǎn)紋理特有的一些
指令與參數(shù)。
布告板鏈與絲帶跟蹤(Ribbon Trails)
布告板鏈一組前后相聯(lián)結(jié)的一組布告板(可以聯(lián)想“老鷹抓小雞”的游戲中小雞們的組織結(jié)構(gòu))。ogre
提供了一個(gè)ribbon-trail引用類,它使用了布告板鏈,可以追逐場(chǎng)景中的結(jié)點(diǎn),并留下一條尾巴。布告板鏈可以分多個(gè)節(jié),因此可以很好來模擬燈的效果 。布告板鏈的缺點(diǎn)是必須手動(dòng)更新。可以為布告板鏈的每個(gè)節(jié)的尾部添加項(xiàng),每個(gè)節(jié)有最大的長度,假如超過了那個(gè)長度,尾部項(xiàng)被移除,重新做為節(jié)的頭。
ribbon trail有類似的行為,從尾部移除項(xiàng)作為頭來增長,從頭到尾顏色逐漸褪化。圖片與代碼如下:


void setupTrailLights(void)
{
NameValuePairList pairList;
pairList["numberOfChains"] = "2";
pairList["maxElements"] = "80";
RibbonTrail* trail = static_cast<RibbonTrail*>(
mSceneMgr->createMovableObject("1", "RibbonTrail", &pairList));
trail->setMaterialName("Examples/LightRibbonTrail");
trail->setTrailLength(400);
mSceneMgr->getRootSceneNode()->
createChildSceneNode()->attachObject(trail);
// Create nodes for trail to follow
SceneNode* animNode = mSceneMgr->getRootSceneNode()->
createChildSceneNode();
animNode->setPosition(50,30,0);
Animation* anim = mSceneMgr->createAnimation("an1", 14);
anim->setInterpolationMode(Animation::IM_SPLINE);
NodeAnimationTrack* track = anim->createNodeTrack(1, animNode);
TransformKeyFrame* kf = track->createNodeKeyFrame(0);
kf->setTranslate(Vector3(50,30,0));
kf = track->createNodeKeyFrame(2);
kf->setTranslate(Vector3(100, -30, 0));
kf = track->createNodeKeyFrame(4);
kf->setTranslate(Vector3(120, -100, 150));
kf = track->createNodeKeyFrame(6);
kf->setTranslate(Vector3(30, -100, 50));
kf = track->createNodeKeyFrame(8);
kf->setTranslate(Vector3(-50, 30, -50));
kf = track->createNodeKeyFrame(10);
kf->setTranslate(Vector3(-150, -20, -100));
kf = track->createNodeKeyFrame(12);
kf->setTranslate(Vector3(-50, -30, 0));
kf = track->createNodeKeyFrame(14);
kf->setTranslate(Vector3(50,30,0));
AnimationState* animState = mSceneMgr->createAnimationState("an1");
animState->setEnabled(true);
mAnimStateList.push_back(animState);
trail->setInitialColour(0, 1.0, 0.8, 0);
trail->setColourChange(0, 0.5, 0.5, 0.5, 0.5);
trail->setInitialWidth(0, 5);
trail->addNode(animNode);
// Add light
Light* l2 = mSceneMgr->createLight("l2");
l2->setDiffuseColour(trail->getInitialColour(0));
animNode->attachObject(l2);
// Add billboard
BillboardSet* bbs = mSceneMgr->createBillboardSet("bb", 1);
bbs->createBillboard(Vector3::ZERO, trail->getInitialColour(0));
bbs->setMaterialName("Examples/Flare");
animNode->attachObject(bbs);

}
首先,RibbonTrail創(chuàng)建了兩個(gè)鏈,每個(gè)最多包括80個(gè)元素,尾巴長400個(gè)世界單位。創(chuàng)建了一個(gè)結(jié)點(diǎn)animNoade。為這個(gè)結(jié)點(diǎn)創(chuàng)建了一個(gè)動(dòng)畫,使得這個(gè)結(jié)點(diǎn)可以根據(jù)關(guān)鍵幀的設(shè)計(jì)在場(chǎng)景中不斷變化位置。并把一個(gè)RibbonTrail與這個(gè)結(jié)點(diǎn)聯(lián)結(jié)起來,于是RibbonTrail可與animNode一起運(yùn)動(dòng)。又創(chuàng)建了一個(gè)燈,并聯(lián)結(jié)到這個(gè)結(jié)點(diǎn),燈隨結(jié)點(diǎn)也一起運(yùn)動(dòng),于是怪物頭會(huì)有明暗變化。最后用一個(gè)布告板來形象表示剛創(chuàng)建的燈,因?yàn)闊粼趫?chǎng)景中是不可見的。因?yàn)闊舯粧斓絘nimNode結(jié)點(diǎn)上,所以布告板bbs也掛到同樣的結(jié)點(diǎn)上。當(dāng)然別忘了使用了動(dòng)畫狀態(tài)來推進(jìn)動(dòng)畫。

posted on 2007-03-20 15:31 清源游民 閱讀(3758) 評(píng)論(0)  編輯 收藏 引用 所屬分類: OGRE
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

留言簿(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>
            久久婷婷成人综合色| 亚洲第一狼人社区| 欧美一区二区视频免费观看 | 欧美sm极限捆绑bd| 久久久久五月天| 可以免费看不卡的av网站| 欧美sm视频| 一本不卡影院| 久久九九久精品国产免费直播| 久久久久国产精品一区二区| 欧美国产日韩一区| 欧美视频一区二区三区四区| 国产视频不卡| 亚洲精品女av网站| 欧美一级欧美一级在线播放| 免费短视频成人日韩| 日韩午夜电影在线观看| 欧美在线亚洲在线| 欧美女同视频| 国色天香一区二区| 99视频在线精品国自产拍免费观看| 亚洲一区二区三区中文字幕| 久久亚洲视频| 一区二区三区精品视频| 久久激情五月激情| 欧美日韩精品综合在线| 国产真实久久| 亚洲一区二区三区久久| 欧美国产日韩一区二区在线观看| 一区二区三区导航| 久久亚洲影院| 国产亚洲欧美一区| 一区二区三区高清不卡| 欧美成年人视频| 午夜影院日韩| 欧美亚洲成人精品| 亚洲精品社区| 裸体一区二区三区| 亚洲欧美在线看| 亚洲激情欧美激情| 亚洲精品一区二区三| 久久免费高清视频| 国产一区二区中文字幕免费看| 一区二区三区精品视频| 欧美高清视频一区二区三区在线观看| 亚洲自拍偷拍视频| 欧美小视频在线| 一本色道久久综合亚洲精品按摩| 欧美成人午夜免费视在线看片| 欧美亚洲免费电影| 国产精品一二三四| 亚洲欧美日韩国产成人| 99视频精品全国免费| 欧美日本亚洲| 99成人精品| 亚洲激情午夜| 欧美精品三级日韩久久| 亚洲精品国产系列| 91久久综合| 欧美日本国产精品| 夜夜夜久久久| 一本久久综合亚洲鲁鲁五月天| 欧美另类亚洲| 亚洲午夜精品久久久久久app| 亚洲国产日韩在线一区模特| 免费在线观看精品| 亚洲每日在线| 日韩午夜电影av| 国产精品免费视频观看| 午夜在线视频观看日韩17c| 亚洲午夜激情网站| 国产日韩欧美一区二区三区在线观看 | 欧美一区二区啪啪| 韩国av一区二区三区四区| 久久久噜噜噜| 久久综合久色欧美综合狠狠 | 亚洲国内精品在线| 欧美乱人伦中文字幕在线| 一本色道久久88综合日韩精品 | 欧美国产欧美亚洲国产日韩mv天天看完整 | 欧美高清视频在线播放| 欧美成人中文字幕| 99在线热播精品免费99热| 一区二区三区 在线观看视频| 久久爱www久久做| 国产精品乱码久久久久久| 久久av一区二区三区漫画| 欧美在线资源| 亚洲欧洲在线一区| 99re热这里只有精品视频| 欧美亚洲成人免费| 久久一本综合频道| 欧美女同视频| 久久精品国产久精国产爱| 狂野欧美激情性xxxx欧美| 亚洲最快最全在线视频| 亚洲欧美日韩精品久久亚洲区| 韩国av一区二区三区| 亚洲精品少妇30p| 国产伦精品一区二区三区| 欧美成人视屏| 国产精品一二三| 亚洲丶国产丶欧美一区二区三区| 欧美性大战久久久久| 麻豆91精品| 国产精品国产三级国产普通话三级| 久久视频一区| 国产精品久久毛片a| 欧美激情二区三区| 国产一区91精品张津瑜| 亚洲精品你懂的| 国产毛片精品国产一区二区三区| 亚洲国产精品久久精品怡红院| 国产亚洲欧美激情| 亚洲一二三级电影| 99精品欧美一区二区三区| 久久久欧美精品| 久久国产日韩欧美| 国产精品对白刺激久久久| 亚洲国产日韩一级| 影音先锋亚洲一区| 午夜在线不卡| 亚洲欧美韩国| 欧美性大战xxxxx久久久| 亚洲精品欧美日韩专区| 亚洲激情成人在线| 久久久精品一区二区三区| 性8sex亚洲区入口| 国产精品xxxav免费视频| 亚洲乱码视频| 一本久久综合亚洲鲁鲁五月天| 欧美大片一区| 亚洲高清久久网| 91久久久久久国产精品| 久久亚洲春色中文字幕久久久| 久久久久久久久久久久久女国产乱| 欧美三级资源在线| 99热在这里有精品免费| 亚洲一区网站| 国产裸体写真av一区二区| 亚洲免费在线视频一区 二区| 亚洲欧美在线视频观看| 国产精品视频xxx| 香蕉久久a毛片| 久久综合网hezyo| 激情成人av在线| 麻豆精品网站| 亚洲欧洲精品一区二区三区不卡 | 久久九九电影| 欧美一区二区三区视频免费播放| 欧美主播一区二区三区| 亚洲福利视频专区| 亚洲一区在线观看视频| 欧美精品情趣视频| 亚洲国产激情| 欧美高清视频www夜色资源网| 亚洲欧美日韩一区二区| 国产精品海角社区在线观看| 日韩一区二区精品葵司在线| 欧美激情在线| 欧美日韩精品久久久| 亚洲综合第一页| 午夜精品亚洲| 亚洲第一偷拍| 欧美激情在线播放| 欧美日韩在线影院| 久久久91精品国产一区二区精品| 久久精品在线观看| 一区二区三区视频在线观看| 亚洲欧美日韩视频一区| 在线观看欧美黄色| 亚洲视频一区在线观看| 在线精品一区| 午夜激情综合网| 99在线热播精品免费| 久久色中文字幕| 午夜老司机精品| 欧美日韩1区2区| 亚洲大片av| 1769国内精品视频在线播放| 亚洲线精品一区二区三区八戒| 亚洲国产日韩欧美一区二区三区| 亚洲欧美中日韩| 性亚洲最疯狂xxxx高清| 欧美日韩一区在线视频| 亚洲欧洲在线播放| 亚洲狠狠婷婷| 美女91精品| 亚洲国产人成综合网站| 亚洲二区在线观看| 久久免费视频在线观看| 久久久久青草大香线综合精品| 欧美成人在线免费观看| 精品69视频一区二区三区| 欧美一区二区三区免费观看| 久久精品免费看| 亚洲高清资源综合久久精品| 欧美电影在线观看完整版| 91久久国产综合久久| 亚洲一区精品电影|