• <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>
            清源游民  gameogre@gmail.com

            粒子系統
            ogre中的粒子系統既可用腳本描述,也可用代碼完成。用粒子腳本定義的粒子系統實際上是個模板,因此它定義的粒子系統可在程序中方便地重用。
            粒子系統與場景
            粒子系統會被掛到場景結點上,因此,結點的平移,縮放,旋轉會關聯到粒子系統,影響粒子反射的向。
            粒子會被發射到世界空間中,這意味著當場景移動時,它會牽連到發射器,但已經發射出去的粒子不受影響。假如需要這些粒子受結點的影響,可以把粒子發射到本地空間(local space)中。粒子系統不能無限制的發射粒子,它有一個限額(quota)。一旦到達限額,粒子系統不會再發射粒子,直到已經存在的粒子消亡。缺省的限額是10。
            粒子系統約束(Bounds)
            粒子系統的動態特征意味著它們的綁定盒必須規律地被重新計算。缺省情況下,ogre會在10秒之后,停止
            更新綁定盒。可以用ParticleSystem::setBoundsAutoUpdated(? bool? autoUpdate,? Real? stopIn = 0.0f )來改變缺省行為。stopIn這個參數告訴ogre多長時間后停止更新。假如有個粒子系統,可以知道它的增長不會超過某個范圍,可以事先用ParticleSystem::setBounds()設置綁定盒尺寸。這樣做效率很高,如果無法事先確定粒子系統的增長情況,可先用setBounds()設定一個初始尺寸,而用setBoundsAutoUpdated()讓它在一段時間之后更新。
            粒子系統更新
            對于粒子系統的更新,ogre采用適度啟發式的策略。舉例來說,當粒子系統不在視錐體之內,ogre仍會對粒子系統進行更新,這是考慮到不久之后,粒子系統有可能會重新進入視錐體之內。這就避免了這種情況下的視覺上的不和諧。但是出于性能上的考慮,當粒子系統退出視錐體一段時間之后,粒子確實會停止更新。這又會碰到上面的問題:被凍結的粒子系統突然重新進入視錐體的情況。ogre提供了一個所謂的
            "fast-forward"機制,允許粒子系統在被凍結之后,快速超越當前狀態。這種特性也可以用在剛創建的粒子系統,使它們狀態提前一段時間,使用的方法是ParticleSystem::fastForward ();
            粒子系統排序
            可以指示ogre根據與相機之間的距離,對粒子進行排序。雖然這會影響性能,但有時不得不用。在煙的
            例子中,不使用排序的結果是,從煙的頂部依然清晰地看到火苗,而使用了排序之后火苗被煙霧模糊掉了。顯然后者更加真實。
            發射器
            點發射器從空間中單一點發射粒子。box發射器可以從規則四方體的任何位置發射粒子。cylinder定義了一個圓柱體。ellipsoid定義了一個橢球體。hollow elipsoid只是橢球體的外殼。ring只出平面圓環的邊發射。被發射粒子的速度,方向也可以配置。粒子系統會被掛到場景結點上,因此發射器與父結點有一個相對的位置。粒子通常不會沿直線發射,它們在發射器方向的一個錐內發射,有一個angle參數來定義。假如希望沿直線發射,angle應該設為0,假如希望全方向發射,angle設為180, 90表示會在方向向量的半球內隨機發射。
            發射率用 粒子數/秒 表示。發射器可以按某個發射率發射,也可以使用一個范圍內的隨機值。粒子可
            以有固定的生命期,也可以從一個范圍隨機指定。顏色也一樣,固定值,隨機值都可以。也可以在運動時,以插件的形式提供定制發射器,這是擴展ogre粒子系統最簡單的方法。
            影響器
            粒子一旦被發射到世界中,影響器可被用來影響粒子的運動路徑與生命期。
            LinearForce:加一個力到粒子上,力是一個向量,有方向與大小(模)。
            ColourFader:用于改變粒子顏色。表示每秒減少的值,是一個絕對值。
            ColorFader2:與ColourFader相似,但是粒子生命到到達其生命期的某個階段時,可以轉換到另一個褪色函數。
            ColourInterpolator:與上面兩個相似,但是它最多可以有6個階段,分別對每個階段的時間與顏色進行定義,然后不同階段之間進行插值,這與關鍵幀動畫的思想有點像。
            Scaler:用來縮放粒子尺寸,以時間為函數來定義一個縮放因子。
            Rotator:通過一組隨機數量,或是隨機速率來旋轉粒子的紋理,這些被定義在某個范圍之內。
            colourImage:從圖像中攻取顏色,方向從左到右,適合一維紋理 。
            posted on 2007-03-20 18:04 清源游民 閱讀(2047) 評論(2)  編輯 收藏 引用 所屬分類: OGRE

            FeedBack:
            # re: 《Pro Ogre 3D Programming》讀書筆記 之 第十章 布告板與粒子 第二部分
            2008-10-30 08:41 | ogre
            如果你看明白了 來點你自己的東西吧   回復  更多評論
              
            # re: 《Pro Ogre 3D Programming》讀書筆記 之 第十章 布告板與粒子 第二部分
            2008-10-31 22:49 | 清源游民
            @ogre
            好久不更新了,水平差,還是蒙頭學習比較好。你的留言很奇怪,不知你想說點啥。我的筆記主要是為自己隨時查看,如果你覺得沒用,那就別看了。看你的簽名想來是對ogre有所研究,你可能是覺得我寫的東西可能不是很準確,也沒什么參考價值,我想很可能就是這樣的,所以提醒各位朋友,我不對我隨便寫的這些東西的準確性負責,別認為我是一名人民教師,哦,我不是的。  回復  更多評論
              
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            留言簿(35)

            隨筆分類(78)

            隨筆檔案(74)

            文章檔案(5)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲国产成人精品女人久久久| 久久精品国产亚洲av麻豆图片| 国产精品99久久久精品无码| 亚洲人成网亚洲欧洲无码久久| 久久久久成人精品无码中文字幕| 国内精品九九久久久精品| 伊人久久大香线蕉精品| 少妇人妻综合久久中文字幕| 久久精品毛片免费观看| 欧美久久天天综合香蕉伊| 久久久久久久亚洲Av无码| 久久精品国产亚洲5555| 国内精品久久久久影院一蜜桃| 久久精品二区| 精品久久香蕉国产线看观看亚洲| 欧美粉嫩小泬久久久久久久| 99久久国产综合精品麻豆| 99久久这里只精品国产免费| 欧美精品一本久久男人的天堂| 久久只这里是精品66| 91精品国产高清久久久久久91| 国产成人无码精品久久久性色| 久久精品99无色码中文字幕| 国产精品久久成人影院| 伊人久久大香线蕉综合Av| 亚洲国产成人精品女人久久久 | 亚洲日本va午夜中文字幕久久| 久久久精品免费国产四虎| 国内精品久久久久影院一蜜桃| 一日本道伊人久久综合影| 手机看片久久高清国产日韩| 久久精品国产只有精品66| 精品久久久久一区二区三区| 成人亚洲欧美久久久久 | 天天综合久久一二三区| 久久中文字幕无码专区| 老司机午夜网站国内精品久久久久久久久| 久久久中文字幕| 久久久久亚洲爆乳少妇无| 久久se这里只有精品| 日韩一区二区三区视频久久|