freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

osg-osgearth學(xué)習(xí)技術(shù)總結(jié)報(bào)告-展示頁

2025-06-08 18:07本頁面
  

【正文】 將來的所有程序都是這個(gè)步驟。在上面的代碼中加入vieweraddEventHandler(new osgViewer::StatsHandler)。實(shí)現(xiàn)方法很簡單,viewer自己有一個(gè)函數(shù)式addEventHandler(),此函數(shù)可以加載事件處理,具有處理什么事件需要自己重載虛函數(shù)handle(),這樣就可以達(dá)到處理自己想處理的效果。 run程序框架說明,只要viewer沒有結(jié)束,那么就繪制它的每一個(gè)幀[frame]。第7行:這里主要就是run方法,run的具體干了什么工作,我們就得查看osg源碼。其中//為轉(zhuǎn)義字符,編譯器會(huì)識(shí)別為/,從某種意義上講,我個(gè)人從來不把文件夾設(shè)置為中文名,OSG對(duì)中文支持的可不是很好。第6行:這里是設(shè)置觀察器Viewer中的數(shù)據(jù),換句話說,有了觀察器, 得可以年模型呀,模型中要以含有路徑,(osgDB::readNodeFile(C://glider.osg))。 這樣就引用了超級(jí)指針的機(jī)制,其實(shí)就是引用一個(gè)計(jì)數(shù)器,這個(gè)計(jì)數(shù)器會(huì)計(jì)算這個(gè)箱子被引用的次數(shù),被別人引用一次執(zhí)行ref方法,計(jì)數(shù)器加1,別人不用一次,執(zhí)行unref方法,計(jì)數(shù)器減1。那么如果說還有一個(gè)箱子,在地上放著,從感覺上來講他們應(yīng)該用同一塊內(nèi)存。在OSG中問題是這樣提出來的,有這樣一個(gè)場景,有一輛卡車,卡車上有一個(gè)箱子。 osgviewer::viewer類繼承圖功能說明OSG的所有類都是從osg::Referenced,referenced有兩個(gè)很好的方法就是ref與unref,這兩個(gè)方法就構(gòu)成了OSG里的著名模板ref_ptr,智能指針:使用棧中的資源管理堆中的東西。在此我們來看看osgViewer::viewer的類關(guān)系圖, osgViewer::viewer的類關(guān)系圖它是繼承自osgviewer::ViewerBase和osgviewer::View,繼承的子節(jié)點(diǎn)具有父節(jié)點(diǎn)更強(qiáng)大的功能,并且具有父節(jié)點(diǎn)的全部功能;其中osgviewer::ViewerBase負(fù)責(zé)場景的渲染線程;osgviewer::View負(fù)責(zé)場景的數(shù)據(jù)加載和事件處理;osgGA::GUIActionAdapter負(fù)責(zé)與操作系統(tǒng)UI部分的交互功能;osg::View負(fù)責(zé)狀態(tài)與相機(jī)處理。比如,你的Viewer寫的有問題,用Viewer等等打招乎語。第4~5行:這里申請(qǐng)了一個(gè)viewer,這里要解釋一下,為什么要osgViewer::Viewer, osgViewer是名字空間,與std::的地位是一樣的,關(guān)于名字間是C++防止重名的很重要的一個(gè)機(jī)制,從而使程序看起來井井有條。這里要說一下,一般需要頭文件與對(duì)應(yīng)庫和動(dòng)態(tài)鏈接DLL就可以編譯了,不需要CPP文件,頭文件是說明庫文件和DLL的。最后一個(gè)viewer的方法run,就是啟動(dòng)渲染,進(jìn)行渲染。其中包括了必要的OSG工作原理。3. 編寫第一個(gè)HelloWorld程序:CTRL+: helloworld首先這個(gè)程序很簡單,實(shí)際有用的就三句話,這也說明OSG編程很方便。 加入lib這里要注意,調(diào)度版的庫后面都是帶個(gè)d的,然而R版的就不帶這個(gè)D。菜單:項(xiàng)目屬性配置屬性鏈接器輸入在附加依賴項(xiàng)中輸入: ,或者到項(xiàng)目屬性配置屬性鏈接器命令行下輸入這些。這樣設(shè)置項(xiàng)目的包含路徑就配置好了??蓤?zhí)行文件目錄指向編譯的OSG的bin目錄,把庫文件指向lib目錄即可。如果是自己編譯的,也建議把庫文件、頭文件與數(shù)據(jù)文件都放入同一個(gè)文件夾中,類似安裝包那樣。這三部分在開發(fā)的過程當(dāng)中都會(huì)用到。在VS2005中設(shè)置項(xiàng)目的包含目錄可以全局設(shè)定,但是在VS2010中屏蔽了此功能了,只能在每一個(gè)項(xiàng)目里每次進(jìn)行設(shè)定。在學(xué)習(xí)各種語言的時(shí)候當(dāng)中,都會(huì)有第一個(gè)程序,名為Hello World的,在OSG中也不例外,在OSG中也會(huì)有了幾行的程序來說明OSG中的一些功能、機(jī)制和原理。 圖 7 編譯的最終結(jié)果文件目錄第二章 OSG原理初窺 第一個(gè)程序現(xiàn)在來使用OSG編程,在這里需要明確一個(gè)概念,就是OSG的語法是標(biāo)準(zhǔn)C++的。11. Osgearth測試:在osgearth的test文件夾下,命令行中輸入:osgearth_viewer ,出現(xiàn)如圖6漂亮的小地球,恭喜你編譯成功了。邊編譯邊做其他的事吧。7. 下載并編譯proj4,下載地址:編譯方法u u nmake /f installu nmake /f installall8. 下載編譯VPB,使用svn簽出各版本源碼,.編譯工具還是用CMAKE9. 使用cmake編譯osgEarth,編譯的步驟與編譯OSG類似,在此不詳述。在這里就大致說明一下編譯的步驟,細(xì)節(jié)的東西不再詳述。OSGEarth編譯及相關(guān)步驟前提條件是完成了OSG的編譯工作,因?yàn)閛sgearth是OSG的一個(gè)分支,他的很多編譯依賴必需需要OSG的支持。具有創(chuàng)建一個(gè)簡單的XML文件,將它指向您的圖像紋理、海拔、和矢量數(shù)據(jù),并應(yīng)用于OpenSceneGraph程序。osgversion查看OSG版本號(hào),osglogo查看官方圖標(biāo)。把編譯成功的bin文件下exe文件;;include文件來自源文件的include;。圖4 批生成,對(duì)編譯的成果進(jìn)行轉(zhuǎn)移。就開始了漫長的編譯工作。最后點(diǎn)擊Generate,自此建構(gòu)完成。如果不知道各個(gè)插件是干什么的就上網(wǎng)搜搜。圖1. CMKAE路徑2.點(diǎn)擊Configure,選擇Visual Studio 10(x86),finish后進(jìn)行相關(guān)設(shè)置:比如ACTUAL_3RDPARTY_DIR值 D:/OSGdown/3rdParty。如圖1:第一行為源文件目錄;第二行為生成結(jié)果目錄。如果想獲得最新的測試版需要利用軟件TortoiseSVN簽出各種版本源代碼,.2.OSG第三方庫,;最新下載地址:~bchrist3.OSG數(shù)據(jù)包,當(dāng)前最新版:,最新下載地址:,最新版:CMake ,下載地址:OSG編譯步驟1.安裝CMAKE,解壓OSG源碼;利用CMAKE生成OSG的VC編譯工程項(xiàng)目,即生成sln項(xiàng)目文件。所以在編譯OSG的時(shí)候必須利用相關(guān)工具生成VC工程。因此工業(yè)控制,城市規(guī)劃,機(jī)械仿真、戰(zhàn)場仿真等方面OSG可以帶來極大的方便。OSG發(fā)展至今以來,以非常驚人的速度在VR行業(yè)占據(jù)非常重要的地位,其開源、易學(xué)、易用的特性使其在短期內(nèi)取得了很大的成功。除了開源和平臺(tái)無關(guān)性以外,它封裝并提供了數(shù)量眾多的提升程序運(yùn)行時(shí)性能的算法、針對(duì)包括分頁數(shù)據(jù)庫在內(nèi)的幾乎所有主流數(shù)據(jù)格式的直接數(shù)據(jù)接口、以及對(duì)腳本語言系統(tǒng)Python 和Tcl 的支持,特別的,支持腳本語言系統(tǒng)的意義不僅限于用戶可以使用除C++語言以外的工具進(jìn)行圖形系統(tǒng)的開發(fā),事實(shí)上,對(duì)弱類型計(jì)算機(jī)語言的支持將突破現(xiàn)有交互式圖形系統(tǒng)在人機(jī)交互性能方面的最終限制。它作為中間件(middleware)為應(yīng)用軟件提供了各種高級(jí)渲染特性,IO,以及空間結(jié)構(gòu)組織函數(shù);而更低層次的OpenGL 硬件抽象層(HAL)實(shí)現(xiàn)了底層硬件顯示的驅(qū)動(dòng)。在此針對(duì)開源軟件OpenSceneGraph及其相關(guān)的插件進(jìn)行人工的裁剪、編譯 。項(xiàng)目技術(shù)總結(jié)報(bào)告2012年年底技術(shù)總結(jié)報(bào)告 作者:宋力兵第一章 OSG、OSGEarth等軟件概述與環(huán)境編譯 OSG軟件概述開源是一種趨勢,以操作系統(tǒng)為例,linux系統(tǒng)市場份額占7080%。所以研究開源軟件并應(yīng)用于實(shí)際具有很大的研究價(jià)值。OpenSceneGraph(簡稱OSG)使用OpenGL技術(shù)開發(fā),是一套基于C++平臺(tái)的應(yīng)用程序接口(API),它讓程序員能夠更加快速、便捷地創(chuàng)建高性能、跨平臺(tái)的交互式圖形程序。從系統(tǒng)開發(fā)人員的角度看,相比工業(yè)標(biāo)準(zhǔn)OpenGL 或其它的圖形庫,OSG的優(yōu)點(diǎn)顯而易見。OSG采用以下思想和工具進(jìn)行構(gòu)建:a、ANSI標(biāo)準(zhǔn)C++;b、C++標(biāo)準(zhǔn)模板庫(STL);c、設(shè)計(jì)模式(Design patterns)。OpenSceneGraph從字面上看只是一個(gè)場景管理系統(tǒng),從某種意義上講,OSG的對(duì)三維動(dòng)畫等等的支持還不是很強(qiáng),打個(gè)比方來說:OSG不適合做游戲引擎。 OSG編譯OSG是從開源的系統(tǒng)linux移植過來的,隨著OSG的不斷發(fā)展和相關(guān)插件的增多,OSG的及插件只提供源碼,沒有VC工程。編譯環(huán)境 一臺(tái)具有顯示卡的計(jì)算機(jī),推薦NVDIA的顯示卡 操作系統(tǒng)為WIN7或者XP 軟件編譯器VS2010OSG編譯相關(guān)工作準(zhǔn)備:1.OSG源碼,最新下載地址。在源碼或者其他地方建立一個(gè)文件夾,放置生成的OSG編譯項(xiàng)目。注意:所有的項(xiàng)目文件路徑不要出現(xiàn)中文或者其他怪異的符號(hào)。BUILD_OSG_EXAMPLES :ON……圖2 CMAKE配置里面有很多配置項(xiàng),根據(jù)自己的需要選擇的配置,也就是指定各個(gè)插件的文件路徑,如圖2。一般配置一次Configure是不可能成功的,應(yīng)為它還用很多小項(xiàng)目,說以要多點(diǎn)幾次Configure,直到CMAKE不再出現(xiàn)紅色的信息為止??梢栽谥付ǖ哪夸浳募纠贒/OSGdown/VCOSG下看見生成的VC工程,如圖3:圖3 生成的VC工程3.,打開OSG的VC工程項(xiàng)目;選擇菜單“生成”“批生成”在ALL_BUILD選項(xiàng)中選擇Debug|Win32和Release|Win32,如圖4,最后點(diǎn)擊“生成”。這個(gè)編譯的過程很長,根據(jù)自己的電腦配置情況不同,好的電腦一般要34小時(shí),差的配置需要半天或者一天時(shí)間。其子文件夾包括有bin:、include、lib、data。5.設(shè)置電腦的環(huán)境變量:OSG_FILE_PATH X:/(數(shù)據(jù)文件路徑)OSG_ROOT X:/(OSG文件路徑)Path X:/(執(zhí)行文件路徑):利用命令行,在其輸入osgviewer ,則出現(xiàn)如圖5,表明編譯成功。圖5 OSGEarth 概述及編譯osgEarth是一個(gè)c++地形渲染工具包。osgEarth支持所有類型的數(shù)據(jù),有許多的例子來幫助你更快、更容易來學(xué)習(xí)和使用它。Osgearth編譯比較繁瑣,它需要編譯很多其他工具,里面的CMAKE在此不再累述。1. osgearth源碼的下載,最新地址:2. 下載gdal并編譯,下載地址:編譯方法:u (VS2010安裝目錄下)u /f MSVC_VER=1600u nmake /f installu nmake /f devinstall u 最終結(jié)果在c:\warmerda下3. 下載geos 并編譯,下載地址: 編譯方法:u u u nmake /f MSVC_VER=1600u 最終結(jié)果在c:\warmerda下4. 下載SQLite并編譯,下載地址:編譯方法u 建立一個(gè)靜態(tài)鏈接工程,加入sqlite3開頭的三個(gè)文件u 建立一個(gè)exe工程,u ,分別表示debug和release版本5. ,下載地址:6. 下載libzip并編譯結(jié)果,下載地址:進(jìn)入contrib\vstudio\vc10目錄,雙擊工程進(jìn)行編譯。編譯的過程也是相當(dāng)?shù)穆L。10. 配置環(huán)境變量,把上面編譯的所有東西分別建立文件夾放在OSG的同級(jí)目錄下,并且在環(huán)境變量的path中加入各自的bin文件目錄路徑。圖6 osgearth測試這一章關(guān)于OSG和OSGEarth的概述和編譯就到這里,在此列出最終的編譯結(jié)果文件夾,如圖7所示。所以開發(fā)者必須具有C++知識(shí)。打開VS2010,點(diǎn)擊菜單:文件新建項(xiàng)目Visual C++ WIN32控制臺(tái)應(yīng)用程序,項(xiàng)目名稱設(shè)置為:HelloWorld,現(xiàn)在需要設(shè)置項(xiàng)目的相關(guān)文件。 設(shè)定項(xiàng)目包含路徑OSG編譯后自身可用的有三部分組成,一部分是運(yùn)行時(shí)文件,一部分是庫文件,另一部分是頭文件。 如果你使用的是安裝包,可以跳過這一段,否則需要把path設(shè)置為編譯后的庫文件目錄,就是里面有很多DLL與EXE文件的目錄,把OSG_FILE_PATH指向測試模型的目錄。在VS里面,右鍵點(diǎn)擊項(xiàng)目屬性配置屬性VC++目錄,包含文件中加入安裝或編譯后的include文件夾,如果include文件夾為空,則拷一下源文件中的include文件內(nèi)容就可以了。如果你要編譯release版的程序,還需要在release選項(xiàng)卡中完成類似設(shè)置。 包含目錄設(shè)置 添加相關(guān)的庫添加OSG相關(guān)的庫,在這里我們把所有的鏈接庫都添加進(jìn)去,以免出什么亂子。這時(shí)如果需要在R版中也配置R版的庫,就在配置中選中“release”。發(fā)布版的可執(zhí)行文件會(huì)比較小,因?yàn)槔锩娌缓{(diào)試信息。與C或者C++類似,雖然程序很短,但是五臟俱全。在此對(duì)此簡單的說明。osgViewer負(fù)責(zé)視圖的管理,其中包括事件的管理osgGA,模型的讀取osgDB等。 helloworld的原理圖現(xiàn)在來具體看看每一行的功能:第1~2行:這里是包含頭文件,可以打開OSG的安裝目錄,發(fā)現(xiàn)應(yīng)該存在osgViewer和osgDB的文件夾,而ReadFile和Viewer都是其中的頭文件。第3行:主函數(shù),這里主函數(shù)還沒有任何的參數(shù)。這里你可以理解為申請(qǐng)一個(gè)觀察器,該觀察器可以查看模型就可以了,在現(xiàn)實(shí)中我們也是叫Viewer的。注意這里申請(qǐng)的是一個(gè)智能指針,它具有內(nèi)存的自我管理能力。還有其他的類。關(guān)于超級(jí)指針的問題由來已久,用的頗廣。如果說卡車在運(yùn)行過程中,箱子突然掉了,這樣就知道該把箱子的結(jié)點(diǎn)刪除??ㄜ嚿系南渥与m然掉了,但是地上的箱子還在,所以箱子所占的資源不能被粗魯?shù)尼尫诺?。?dāng)減至0時(shí),內(nèi)存放掉不用,這樣有效的防止內(nèi)存泄露。表示打開C盤根目錄下的該模型。所以最好不用要中文路徑名,還有就是有空格的路徑名,最好也不用,不要讓這些無所謂的東西干擾你。從源碼可以看出:它是執(zhí)行osgviewer::Base的run,我們再來查看osgviewe
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1