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

            黎明的剔透里伸出了你沁清的曖昧

            Graphics|EngineDev|GameDev|2D&3D Art

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              60 隨筆 :: 1 文章 :: 18 評論 :: 0 Trackbacks

            為什么需要osgViewer

            在過去的幾年里,用戶已經將現有的viewer庫osgProducer(基于Producer)發展到遠超出它設計初期的目的。開發Producer之外的窗體工具箱的難題已被解決,支持處理一個場景具有的多個獨立的view,特別復雜的是當應用程序使用數據分頁,而且還需要接二連三的打開/關閉窗口的時候。

            用戶與遇到的其他問題還有生成的復雜性,有一系列的額外的依賴的障礙需要解決。當學習這些API的時候,有很多的API需要去學習,這會增加學習曲線的陡峭度。如果我們提供一個原生的viewer庫,都使用一樣的矩陣、內存管理和編碼形式和設計,這樣的話學習起來就會變得簡單。支持多種窗體工具箱和復雜的viewer配置也非常易學易用,且用戶可以像使用組件一樣使用view而不是像以前一樣需要了解很多的實現細節。

            osgViewer的目標

            osgViewer背后的概念在于滿足一系列類的需求,這些類要求能夠無縫的支持廣泛的窗口工具包(即QT、Win32、MFC、WxWindows、Fox、FLTK、SDL、AGL/CGL等等)。也同時提供一種方便的架構來管理簡單的窗體、單攝像機視點的應用程序到復雜的多窗口、多視點、多線程的應用程序。

            目前的狀況

            osgViewer的大部分特性都完成了,Windows、X11和OSX Carbon的支持已經被集成,也附帶了兩個Viewer和CompositeViewer類。新的線程模型已經被引入,可以更好的支持現有的雙核CPU。在Windows平臺下,多線程、多窗口已經被完整的支持,使其能夠和其他平臺得到一致的伸縮性。

            所有的OpenSceneGraph例子現在已經被移植到使用osgViewer,最多的改變還在于從osgProducer::Viewer到osgViewer::Viewer的細微改變。

            OpenSceneGraph的2.0發行版將會看到osgViewer作為標準的viewer庫,同時osgProducer庫也轉移到自己獨立的一個發行。osgProducer會與OpenSceneGraph的主要發布一起進行維護。這次OpenSceneGraph的改動將不會要求Producer作為依賴了,所以只有OpenThreads才會作為主要的額外依賴。

            osgViewer相關的功能所關聯的類:

            osg核心庫:

            • osg::Camera(之前被叫做 osg::CameraNode)從1.0版本起。這個節點包含一個它渲染的場景。具有投影和視圖矩陣、視口和一個可選的osg::GraphicsContext讓其渲染,同樣還包含一些選項能夠讓其配置為渲染到紋理。
            • osg::OperationsThread/GraphicsThread - 從1.0版本起。是一個線程類,可以讓一系列GraphicsOperation在另外一個單獨的線程進行。
            • osg::GraphicsContext - 從1.0版本起。是一個基礎類,將實現創建和使用圖形上下文的細節進行了抽象-它可能是一個pbuffer或者是一個傳統的圖形窗口。GraphicsContext"有一個"可選的GraphicsThread。目前用在osg::CameraNode上以便管理pbuffer渲染到紋理的實現。
            • osg::View - 管理所有攝像機的類。這些攝像機協同一致的工作,以渲染單一、協調一致的場景的視野。一個視野有一個主osg::Camera控制場景的視圖和投影矩陣,和一系列的從動的osg::Cameras。這些從動的攝像機的視野和投影矩陣和主攝像機的矩陣有一定關系,每一幀都更新。主從攝像機都可以用于渲染。

            osgGA庫:

            • osgGA::EventQueue - 從1.0版本起,可以按照以前的樣子使用, 只是命名空間編程了osgViewer。osgGA::GUIEventAdapter - 從1.0版本起,因為它的繼承不是很理想,和僅僅關聯到了鼠標和鍵盤事件,但是在通用的和可擴展的osgViewer::Event類中作為一個位置標識符的還是差強人意。
            • osgGA::GUiEventHandler - 從1.0版本起,與GUIEventHandler有點相像 - cludgy??? 和需要在最終的osgViewer庫進行更新,但是在構造osgViewer原型時還是很好的。
            • osgGA::EventVisitor - 從1.0版本起,需要在上面做一些工作,但是在osgViewer::EventVisitor會一直照這個模式發展下去。

            osgViewer庫:

            • osgViewer::View - osg::View的子類,增加更高層次的viewer功能。
            • osgViewer::Scene - 管理場景圖數據的輔助類。
            • osgViewer::GraphicsWindow - 實現OpenGL圖形化窗口的基類,它繼承于osg::GraphicsContext,不同在于增加了事件處理。
            • osgViewer::Viewer - osgProducer::Viewer的功能替換。osgViewer::Viewer “是一個” osgViewer::Viewer,所以能夠從View獲得多窗體/多攝像機支持,但從概念上來說還是只在一個單獨的場景里管理了一個單獨的視野。
            • osgViewer::!CompositeViewer - 通過使用的osgViewer::View一個列表,增加對需要在一個場景里面多個視點的viewer的支持。這種復雜的viewer功能在先前的OpenSceneGraph里面并沒有被很簡單的實現,但是現在變得很直接了。

            目前有三種具體的osgViewer::GraphicsWindow的實現,這些實現支持所有的OpenSceneGraph發行所在的平臺。

            • osgViewer::GraphicsWindowWin32 - Windows支持
            • osgViewer::GraphicsWindowX11 - 所有Unix平臺的X11 支持(包含OSX)。
            • osgViewer::GraphicsWindowCarbon - OSX的Carbon支持.
            • osgViewer::GraphicsWindowEmbedded - 一個GraphicsWindow的適配器版本,這個版本不執行大部分的函數操作,但是允許Viewer和CompositeViewer類能夠在外部的窗體里面進行嵌入工作,例如被QT、FLTK創建的。

            為了測試osgViewer::SimpleViewerosgViewer::GraphicsWindow的可行性,這里有為各種窗體工具箱里寫的若干個基于simpleviewer的示例。

            • osgviewerGLUT
            • osgviewerFLTK
            • osgiewerQT
            • osgiewerWX
            • osgviewerSDL
            • osgviewerCocoa
            • osgviewerMFC
            posted on 2012-01-09 21:14 情絕格調(fresmaster) 閱讀(876) 評論(0)  編輯 收藏 引用 所屬分類: Graphics
            伊人久久大香线蕉综合5g| 久久丫精品国产亚洲av不卡| 精品国产乱码久久久久久人妻| 久久综合亚洲色HEZYO社区| 午夜精品久久久久久99热| 久久国产乱子伦精品免费午夜| 欧美午夜A∨大片久久| 久久精品国产亚洲av麻豆色欲| 久久精品亚洲AV久久久无码| 婷婷久久久亚洲欧洲日产国码AV | 久久久久国产日韩精品网站| 亚洲乱码日产精品a级毛片久久 | 久久久久这里只有精品| 亚洲中文字幕无码久久2017 | 久久91综合国产91久久精品| 香蕉久久夜色精品国产尤物| 91精品国产91久久综合| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 久久精品日日躁夜夜躁欧美| 亚洲AV日韩精品久久久久| 久久精品无码午夜福利理论片| 久久国产香蕉一区精品| 久久精品国产亚洲av影院| 伊人久久成人成综合网222| 久久91精品国产91久久麻豆| 亚洲国产欧美国产综合久久| 久久精品一区二区三区中文字幕| 久久精品亚洲日本波多野结衣| 一本久久免费视频| 欧美日韩中文字幕久久久不卡 | 精品无码久久久久久尤物| 亚洲国产一成人久久精品| 久久av免费天堂小草播放| 国产激情久久久久影院| 久久久WWW成人免费毛片| 久久精品免费观看| 国产亚洲综合久久系列| 99久久精品国内| 国产精品国色综合久久| 97久久精品人妻人人搡人人玩| 久久男人Av资源网站无码软件 |