<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    osg的渲染樹

    osg存在兩棵樹,場景樹和渲染樹。場景樹是一顆Node組成的樹,這些Node可能是矩陣變換,或者是狀態切換,或者是真正的可繪制對象,它既反映了場景的空間結構,也反映了對象的狀態。而渲染樹則是一顆以StateSet和RenderLeaf為節點的樹,它可以做到StateSet相同的RenderLeaf同時渲染從而不用切換Opengl狀態,并且做到盡量少的在多個不同State間切換。渲染樹在CullVisitor的cull過程中逐漸創建。

    SceneView包含兩個與渲染相關的兩個成員,一個RenderStage對象與StateGraph對象

    StateGraph顧名思義,就是以狀態為節點的圖。StateGraph包含了真正的可渲染對象RenderLeaf,但是一個StateGraph是不夠的,因為不同的RenderLeaf可能會有不同的StateSet,于是StateGraph內部包含一個以StateSet為key,StateGraph為value的Map對象,從而形成一顆渲染樹

    渲染時以該渲染樹為基準按一定順序逐漸渲染各個RenderLeaf。以何種方式遍歷該樹呢,這正是RenderStage的任務。

    RenderStage從RenderBin派生

    RenderBin包含了一個StateGraphList,該List將渲染樹中的各個StateGraph摘取出來,形成列表。形成列表的過程就是遍歷渲染樹的過程。RenderStage可以在RenderBin渲染之前之后做一些預處理和后處理,以完成一些特殊效果。

    RenderStage包含兩種類型的RenderBin,透明與不透明的。對于Transparent RenderBin比較難處理,就是必須按深度順序調用gl函數渲染對象,否則可能半透明會有問題。對于Opaque RenderBin則沒有此限制,它只需按照盡量少切換狀態的原則排列StateGraph即可。

    StateSet的SetRenderingHint函數可以用來控制使用那個RenderBin進行渲染,題外話,StateSet的setAttributeAndModes函數可以指定AlphaFunc與BlendFunc,前者功能相當于Alpha測試,后者則反映了Alpha混合的方式。使用方式類似下面:

    BlendFunc* func = new BlendFunc();

    func->setFunction(...);

    dstate->setAttributeAndModes(func, StateAttribute::ON);

     

    可以參考的相關osg代碼:

    void CullVisitor::apply(Geode& node)

    void CullVisitor::addDrawableAndDepth(osg::Drawable* drawable,osg::RefMatrix* matrix,float depth)

    StateGraph的部分函數。。。

    void RenderLeaf::render(State& state,RenderLeaf* previous)

    void RenderBin::drawImplementation(osg::State& state,RenderLeaf*& previous)

    void RenderStage::drawImplementation(osg::State& state,RenderLeaf*& previous)

    posted on 2007-08-06 22:05 雁過無痕 閱讀(5240) 評論(2)  編輯  收藏

    評論

    # re: osg的渲染樹 2007-08-30 11:27 dreamstone

    寫的很好啊  回復  更多評論   

    # re: osg的渲染樹 2008-06-04 17:13 SodaWater

    學習了~~
    博主好文  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2007年8月>
    2930311234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    導航

    統計

    常用鏈接

    留言簿(7)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品亚洲综合| 久久精品免费一区二区喷潮| 中文字幕中韩乱码亚洲大片| 亚洲人成小说网站色| 最近中文字幕电影大全免费版| 亚洲日产无码中文字幕| 四虎国产精品成人免费久久| 情侣视频精品免费的国产| 一本天堂ⅴ无码亚洲道久久| 免费福利在线播放| 亚洲视频在线观看不卡| 特级精品毛片免费观看| 国产成人无码综合亚洲日韩| 中文字幕高清免费不卡视频| 亚洲一级特黄大片无码毛片| 日韩成人毛片高清视频免费看| 免费看国产一级特黄aa大片| 国产精品亚洲二区在线| 国产成人免费网站在线观看| WWW亚洲色大成网络.COM| 日韩免费毛片视频| 亚洲欧美中文日韩视频| 全免费a级毛片免费看无码| 国产亚洲玖玖玖在线观看| 搡女人真爽免费视频大全| 亚洲综合成人婷婷五月网址| A级毛片内射免费视频| 亚洲色大成网站www永久网站| 无码视频免费一区二三区| 亚洲精品无码专区久久| 在线免费观看韩国a视频| 男男黄GAY片免费网站WWW| 少妇亚洲免费精品| jizz在线免费观看| 亚洲情综合五月天| 久久午夜无码免费| 亚洲经典在线中文字幕| 国产福利在线免费| 亚洲精品蜜夜内射| 免费观看日本污污ww网站一区 | 香蕉97碰碰视频免费|