當前位置:首頁 » 編程軟體 » osg源碼vs編譯

osg源碼vs編譯

發布時間: 2022-05-06 05:26:02

『壹』 osg第一次編譯時用的vs2008,現在我需要用QT開發,還要重新編譯osg嗎

1, 在C:\OSG\OpenSceneGraph下新建兩個文件夾,分別命名為build, bin,用於放置編譯文件
2, 解壓cmake-2.6.4,打開bin/CMakeSetup.exe,將C:\OSG\OpenSceneGraph下的CMakeLists.txt拖到界面上,
3, 設置where is the source code 為:C:\OSG\OpenSceneGraph
和where to build thebinnaries.為:C:\OSG\OpenSceneGraph\build
4, 設置相關的cache value參數,這里主要設置的參數包括:
ACTUAL_3RDPARTY_DIR,:設置為前面的C:\OSG\3rdParty
BUILD_OSG_EXAMPLES :ON,即編譯實例
CMAKE_INSTALL_PREFIX:C:/OSG/OpenSceneGraph/bin ,設置編譯成功後,相關的庫文件存放的地址,切勿忘記
5, 點擊configure按鈕,進行第一次配置
6, 第一次配置完成後,將右上角的show advanced values 復選框選擇上,將mfc example 設置為on
7, 點擊configure按鈕進行第二次配置,ok按鈕變為可用,就可點擊ok按鈕開始生成

『貳』 求助一下,關於OSG編譯的問題,cmake下就是沒有ACTUAL_3DPARTY_DIR這一項,編譯卡在這進行不下去了!!!

ACTUAL_3DPARTY_DIR,這個的意思是第三方文件所在目錄,你把3rdParty下載下來,然後放在你電腦的任意盤位,比如C:/Programs/OSG/3rdParty。在cmake下ACTUAL_3DPARTY_DIR,把那個路徑加上來就行了。我驗證了下,是會有ACTUAL_3DPARTY_DIR這一項的,如果沒有,是不是你沒有下載3rdParty第三方文件啊。或者是你加入的CMakeLists.txt這一項應該是OpenSceneGraph-3.0.0中的CMakeLists.txt,而不是OpenSceneGraph-3.0.0\applications中的CMakeLists.txt,你再試試,如果還不行,再追問,希望最終能幫你解決問題。

『叄』 initqtwindowingsystem;中不能使用osgtext嗎

注意:

1.編譯osg源碼時,勾選osgQT 相關模塊,這是對QT的支持

2.在QtPro文件中添加對應的庫和目錄

例如:


win32:INCLUDEPATH += C:/OpenSceneGraph/include
win32:DEPENDPATH += C:/OpenSceneGraph/include
unix:!macx:INCLUDEPATH += .


win32:CONFIG(release, debug|release): LIBS +=
-LC:/OpenSceneGraph/lib/ -lOpenThreads
-LC:/OpenSceneGraph/lib/ -losg
-LC:/OpenSceneGraph/lib/ -losgAnimation
-LC:/OpenSceneGraph/lib/ -losgDB
-LC:/OpenSceneGraph/lib/ -losgFX
-LC:/OpenSceneGraph/lib/ -losgGA
-LC:/OpenSceneGraph/lib/ -losgManipulator
-LC:/OpenSceneGraph/lib/ -losgParticle
-LC:/OpenSceneGraph/lib/ -losgPresentation
-LC:/OpenSceneGraph/lib/ -losgQt


3. 編寫CPP文件。


#include <QApplication>

#include <osgViewer/Viewer>
#include <osgGA/TrackballManipulator>
#include <osgQt/GraphicsWindowQt>

#include <osg/ShapeDrawable>
#include <osg/MatrixTransform>
#include <osgManipulator/TabBoxDragger>
#include <osgGA/StateSetManipulator>
#include <osgViewer/ViewerEventHandlers>
#include <osgDB/ReadFile>
#include <osg/Material>
#include <osg/Texture2D>
#include <osg/Vec3>
#include <osg/Vec4>
#include <osg/ShapeDrawable>
osg::ref_ptr<osg::Geode> CreateBox() {
osg::ref_ptr<osg::Geode> geode= new osg::Geode;
osg::ref_ptr<osg::TessellationHints> hints= new osg::TessellationHints;
osg::ref_ptr<osg::ShapeDrawable> shape= new osg::ShapeDrawable(new osg::Sphere(osg::Vec3(5.0,5.0,5.0),10.0));
osg::ref_ptr<osg::Material> material= new osg::Material;
osg::ref_ptr<osg::Texture2D> texture= new osg::Texture2D;
osg::ref_ptr<osg::Image> image= new osg::Image;

hints->setDetailRatio(0.5);
//設置顏色
shape->setColor(osg::Vec4(0.1,0.5,0.5,0.5));
//設置材質
material->setAmbient(osg::Material::FRONT_AND_BACK,osg::Vec4(0.5,0.5,0.5,0.5));
material->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4(0.5,0.5,0.5,0.5));
material->setSpecular(osg::Material::FRONT_AND_BACK,osg::Vec4(0.5,0.5,0.5,0.5));
material->setShininess(osg::Material::FRONT_AND_BACK,0.6);
shape->getOrCreateStateSet()->setAttributeAndModes(material.get(),osg::StateAttribute::ON);

//設置紋理
image= osgDB::readImageFile("Images/land_shallow_topo_2048.jpg");
if(image->valid())
texture->setImage(image);
shape->getOrCreateStateSet()->setTextureAttributeAndModes(0,texture.get(),osg::StateAttribute::ON);

geode->addDrawable(shape);
return geode;
}


int main( int argc, char** argv )
{
QApplication app(argc, argv);
osgQt::initQtWindowingSystem();

osg::Group* sceneroot = new osg::Group;

sceneroot->addChild(CreateBox());
osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;
viewer->addEventHandler(new osgViewer::StatsHandler);


viewer->setSceneData( sceneroot );
viewer->setCameraManipulator( new osgGA::TrackballManipulator );
osgQt::setViewer( viewer.get() );

osgQt::GLWidget* glw = new osgQt::GLWidget;
osgQt::GraphicsWindowQt* graphicswin = new osgQt::GraphicsWindowQt(glw);

viewer->getCamera()->setViewport( new osg::Viewport(0, 0, glw->width(), glw->height() ) );
viewer->getCamera()->setGraphicsContext( graphicswin );

glw->show();

return app.exec();
}

4.效果圖如下:

『肆』 現在學習OSG,但編譯過程中遇到了一些問題,哪位同學給解釋一下 以及解決辦法

1、UNICODE是全球統一寬字元集,說明你的代碼中有不規范的字元,比如某些漢字標點、特殊字元;
2、未知
3、可能是庫文件路徑沒有包含或位置不正確

『伍』 OSG+VS2013運行常式,編譯不通過。出現如下錯誤:

if rv is not None and rsv is not None:
# extract version/subversion
self._nmap_version_number = int(line[rv.start():rv.end()])
self._nmap_subversion_number = int(line[rsv.start()+1:rsv.end()])
break
}

『陸』 osg+vs2015+win10配置 cmake時選擇哪個編譯器

解決Win10系統無法安裝VS2015的方法教程1、如果你在安裝過程中,出現安裝失敗的問題,不妨重新打開下載的那個安裝程序,選擇修復; 2、有用戶反應在安裝前對系統進行了如下設置, 一是,自行安裝了運行庫——vc++和.NET Framework 二是,卸載了系統內置應用——Groove音樂、電影和電視 所以,准備安裝Visual Studio的朋友們注意了,一定不要進行上面這兩個操作不然。安裝不上的用戶建議重新安裝Windows10並在第一時間安裝Visual Studio 2015。 通過上述方法我們就能夠讓win10系統更好的兼容VS2015的安裝了, 如果在安裝VS2015之前,你對系統做了部分修改,導致出現無法安裝的問題,那麼可將系統還原出廠設置後,再嘗試安裝該軟體!

『柒』 .osg能在osgviewer中顯示,不能在vs中顯示

猜測可能是模型位置和相機位置不合適造成,如果代碼中用viewer.frame()渲染的話,可以使用viewer.run()試試,這個函數會自動設置相機位置到模型的位置

『捌』 osgearth 編譯是報錯 c++

我的也是,同樣的軟體,別人正常使用,我的就報錯,但是現在我把編程的源碼寫上後先編譯stdafx.cpp後在編譯就沒問題了。 c++6.0與win8.1是不兼容的,你可以下載vs2010

『玖』 小白請教osg(OpenSceneGraph)如何安裝

一下載資料:

1、下載源碼:
在http://www.openscenegraph.org/projects/osg/wiki/Downloads下載穩定版本的源代碼或預編譯包。

source code為源代碼,可以用CMAKE工具生成.sln的解決方案;
binaries為預編譯包,預編譯包不是openscenegraph官方直接維護,而是有其他愛好者上傳,可能會有隱患,最好是從源代碼進行編譯。
版本說明:<主版本號>.<副版本號>.<修訂號>
主版本號高的,功能豐富;副版本號為偶數的為正式版本,比較穩定;副版本號為奇數的為開發者版本,有新特性和功能,但會存在未解決的兼容性和效率問題;開發者版本和正式版本是同步發行的。

下載文件為:OpenSceneGraph-2.8.0.zip

2、下載Cmake工具:
在http://www.cmake.org/cmake/resources/software.html中下載CMake工具cmake-2.8.2-win32-x86.exe。

3、下載SVN軟體(用於下載源碼或第三方庫,有的版本不需要此軟體,可直接下,根據情況定):

在http://tortoisesvn.tigris.org/下載TortoiseSVN。

4、下載第三方庫Dependencies,http://www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies,
「VisualStudio 8 (2005) SP1 - svn access directory 」

5、下載示例:
在http://www.openscenegraph.org/projects/osg/wiki/Downloads/SampleDatasets中下載示例數據文件OpenSceneGraph-Data-2.8.0.zip 。

二、安裝
1、安裝cmake工具
2、在某盤符下建立osg文件夾,在該文件夾中放置源碼文件、第三方文件和示例文件。
3、運行cmake,
第一行(where is the source code)輸入osg文件夾中的源碼文件;
第二行(where to build the binaries)輸入一個新文件夾名及地址,如osg/build_osg;
點configure,選擇所用的編譯器版本,即c++版本;
點grouped,選擇build項,選擇build_osg_examples和build_osg_wrappers;
選擇cmake項,設置cmake_install_prefix的位置(用於存放編譯完的各種模塊文件,如庫文件、可執行文件和頭文件)
點configure,點advanced,選上build_mfc_example
點configure,
點generate,完成。
此時在osg/build_osg文件中生成了對應編譯版本的.sln文件。
4、用c++編譯器打開該.sln文件,在解決方案管理器窗口中的all_build上右擊,選「生成」,將在osg/build_osg中生成幾個G的文件。
在install上右擊,選「生成」,將在第三步中cmake_install_prefix設置的文件夾中生成編譯完的各種模塊文件(如庫文件、可執行文件和頭文件)。

三、設置環境變數
我的電腦-屬性-高級-環境變數
系統變數
OPENSCENEGRAPH_VERSION=2.8.0
OSGDIR=D:\Program Files\OpenSceneGraph
PATH新增:%OSGDIR%\bin;
%OSGDIR%\bin\osgPlugins-%OPENSCENEGRAPH_VERSION%
OSG_FILE_PATH=%OSGDIR%\data
OSG_NOTIFY_LEVEL=INFO

四、簡單測試
在控制台下輸入osgviewerd cow.osg

五、建立工程環境
1、使VS支持無擴展名頭文件的高亮顯示。
進入visual studio,選擇Tools-Options,選text editor-file extension,在下面的map extensionless files to選項選擇microsoft visual c++。
2、構建基於OSG開發的工程。
1)建一個工程
2)在project-properties中選擇configuration properties-c/c++,在additional include directories中輸入「$(OSGDIR)\include」。
3)選擇configuration properties-linker,在additional library directories中輸入「$(OSGDIR)\lib」。
4)選擇configuration properties-linker-input,打開additional dependencies窗口,准備配置輸入的依賴庫文件名稱。如OpenThreadsd.lib;osgd.lib;osgDBd.lib;osgUtild.lib;osgGAd.lib;osgTextd.lib;osgViewerd.lib
注意:Debug版本的工程和Release版本的工程所依賴的OSG庫文件類型相同,但名稱有區別.Debug版本的文件名末尾有"d"標識。根據用戶需要的不同,還可以添加其他庫依賴文件,這些文件在osg的lib文件夾中。

OK,現在可以編代碼,編譯、調試,輸出效果了,體會OSG渲染引擎的強大吧

『拾』 osg模型能在osgviewer中顯示,不能在vs中顯示

cow.osg模型具體放在什麼路徑下?
工程當前路徑下,則可以直接viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
模型文件cow.osg正常放在osg庫的data文件夾下

熱點內容
java服務端緩存 發布:2025-05-14 15:53:37 瀏覽:105
php判斷postget 發布:2025-05-14 15:34:24 瀏覽:357
linux查看電腦配置 發布:2025-05-14 15:32:07 瀏覽:317
軍用壓縮水 發布:2025-05-14 15:27:19 瀏覽:26
win7c盤加密 發布:2025-05-14 15:04:49 瀏覽:511
dm碼編程 發布:2025-05-14 15:03:56 瀏覽:405
apache加密 發布:2025-05-14 14:49:13 瀏覽:970
安卓什麼軟體蘋果不能用 發布:2025-05-14 14:49:03 瀏覽:772
jsoupjava 發布:2025-05-14 14:38:00 瀏覽:889
影豹選哪個配置最好 發布:2025-05-14 14:28:50 瀏覽:256