<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)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 天黑黑影院在线观看视频高清免费| 亚洲看片无码在线视频| 国产精品99爱免费视频| 免费人成在线观看网站品爱网日本| 久久亚洲国产成人影院| 曰曰鲁夜夜免费播放视频| 亚洲乱码一二三四区国产| 18禁男女爽爽爽午夜网站免费| 亚洲毛片在线免费观看| 狼群影院在线观看免费观看直播| 亚洲免费人成在线视频观看| 成人爽a毛片免费| 亚洲国产美国国产综合一区二区 | 亚洲国产最大av| 毛片免费视频观看| 色欲色欲天天天www亚洲伊| 日美韩电影免费看| 免费永久在线观看黄网站| 一级做a爰性色毛片免费| 亚洲精品无码av人在线观看| 久操免费在线观看| 亚洲一线产区二线产区精华| 日韩高清在线高清免费| 国产免费高清69式视频在线观看| 国产亚洲精品自在久久| 久久精品一本到99热免费| 亚洲AV综合色区无码二区偷拍 | 久久成人国产精品免费软件| 国产成人精品日本亚洲11| 日本一道高清不卡免费| 国产精品免费久久久久影院| 亚洲va在线va天堂va四虎| 成人毛片免费观看视频| 四虎永久在线精品免费一区二区| 亚洲综合熟女久久久30p| 成人浮力影院免费看| 美女啪啪网站又黄又免费| 亚洲成色www久久网站夜月| 无码av免费毛片一区二区| 免费的黄色的网站| 亚洲成人免费网址|