openscenegraph编译
A. 如何编译openscenegraph android
可以的,只需要把QtVersion设置好就可以了。 点击Tools->Options->Qt4->Qt Versions. 然后添加你已经编译的Qtembedded目录进去,就可以编译了。 很简单的。 还有,在你的工程中的Release配置中,必须保证Qt Version是Qtembedded,也就是你刚才新建的那个Qt Version Qt Creator默认是Default Qt version的。 这需要点击左边的Projects来修改。 如果你前面把Default Qt Version改为Qtembedded了,就不用再改了。 另外,交叉编译的可执行文件是不能用QtCreator调试的,因为硬件平台不一样。
B. 关于opengl和 osg的问题
简介
OpenSceneGraph是一个开放源码,跨平台的图形开发包,它为诸如飞行器仿真,游戏,虚拟现实,科学计算可视化这样的高性能图形应用程序开发而设计。它基于场景图的概念,它提供一个在OpenGL之上的面向对象的框架,从而能把开发者从实现和优化底层图形的调用中解脱出来,并且它为图形应用程序的快速开发提供很多附加的实用工具。
特性
有了OpenSceneGraph,我们的目标是让所有的人在场景图技术中受益,无论是商业还是非商业的用户。它完全是由标准C++程序和OpenGL写的,充分利用STL和设计模式,发挥开源开发模型的优势来提供一个免费的开发库,并且重点集中在用户的需求上。随着使用一个全特性的场景图OpenSceneGraph的关键优势在于它的性能、可扩展性、可移植性和快速开发(proctivity),更具体的来说:
性能
支持视图投影剔除(view frustum culling),隐藏面剔除(occlusion culling),小特性剔除(small feature culling),细节层次节点(LOD),状态排序(state sorting),顶点数组,顶点缓冲对象(vertex buffer objects),OpenGL着色语言和显示列表(display lists),以上所列都是场景图内核的一部分。它们共同使OpenSceneGraph成为一个高性能的图形库变为可能,OpenSceneGraph也支持绘制进程(drawing process)的定制,比如场景图的连续细节层次(CLOD)的网格(参见虚拟地形项目和Delta3D)。
快速开发
场景图的内核封装了包括最新扩展的大部分OpenGL功能,提供诸如剔除和排序的渲染优化功能,同样提供能快速开发高性能图形应用程序的一整套补充库。应用程序开发者可以更关心实质性内容和如何操控这些它们,而不再是底层的代码
??? 通过学习已有的场景图,比如:Performer和Open Inventor,把它们同像设计模式这样现代软件工程理念联合起来,加上早期开发周期中的大量反馈信息,设计一个清晰的可扩展的库已经成为可能。用户可以很简单的适应OpenSceneGraph并且把它集成到自己的应用程序中
数据装载
为了读入和写出数据库,有一个数据库的支持库(osgDB)增加了通过后缀名动态插件机制,从而支持大量数据格式,目前的发布版本有55种单独的插件支持3D数据和图像格式的装载。支持的3D数据格式包括COLLADA, LightWave (.lwo),Alias Wavefront (.obj),OpenFlight (.flt), 多线程页面调度支持的TerraPage (.txp),Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds), Peformer (.pfb),AutoCAd (.dxf), Quake Character Models (.md2). Direct X (.x), and Inventor Ascii 2.0 (.iv)/ VRML 1.0 (.wrl), Designer Workshop (.dw) ,AC3D (.ac) 和自带的.osg ASCII 文本格式。支持的图像格式包括.rgb, .gif,.jpg, .png, .tiff, .pic, .bmp, .dds (包含压缩的一系列Mip贴图影像),.tga and quicktime (在OSX环境下),全范围的高质量、抗锯齿字体也能通过freetype插件支持,基于字体的图像也可以通过.txf插件支持。
用户也可以通过与我们同行的一个项目(VirtualPlanetBuilder)生成大规模地形空间数据(multi GB),使用OpenSceneGraph的自带数据分页调度支持来查看这些数据。
节点工具箱
这个场景图同样有一套节点工具集,它们是可以在你的应用程序中编译或者在运行时装载的独立库,它们增加支持粒子系统(osgParticle),高质量抗锯齿文本(osgText),特效框架结构(osgFX),阴影框架结构(osgShadow),交互控制(osgManipulator),与虚拟仿真相关的效果(osgSim)。
可移植性
场景图的内核已经被设计成尽量少的依赖具体的平台,很少的部分超出了标准C++程序和OpenGL。这就使得这个场景图可以快速移植到大部分系统中—最开始在IRIX开发,然后移植到Linux,接着到Windows,再后来就是FreeBSD, Mac OSX,Solaris,HP-UX, AIX 甚至是PlayStation2!
完全独立与窗口操作系统的场景图内核库使得用户在它上面可以增加他们自己的指定窗口库和应用程序,在发布版本中osgViewer库提供自带窗口支持,可支持Windows (Win32), Unices (X11) 和 OSX (Carbon)。osgViewer库也可以轻松的和你的窗口开发包集成起来,作为OpenSceneGraph-2.0发布版本的一部分,有例子演示了如何在Qt, GLUT, FLTK, SDL, WxWidget, Cocoa and MFC中的使用。场景图内核的可扩展性使得它不仅仅可运行在便携式设备,甚至高端的多核、多GPU的系统和集群上。这可能是因为场景图内核为OpenGL的显示列表和纹理对象支持多重图形渲染环境(multiple graphics contexts),剔除和绘制的遍历过程被设计成隐藏渲染数据为局部变量,这样可以以几乎只读的方式使用场景图内核。这样就允许多对剔除—绘制过程运行在多个CPU上,CUP也是绑定在多个图形子系统之上。对多图形设备渲染环境和多线程的支持可以在osgViewer中方便使用,发布版本中所有的例子都可以以多线程和多GPU的方式运行。作为社区项目,OpenSceneGraph支持多种语言,比如Java,Lua和Python。
C. 小白请教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渲染引擎的强大吧
D. OpenSceneGraph 如何使用
你好!可以去osg论坛!那儿有教程http://bbs.osgchina.org
E. 现在学习OSG,但编译过程中遇到了一些问题,哪位同学给解释一下 以及解决办法
1、UNICODE是全球统一宽字符集,说明你的代码中有不规范的字符,比如某些汉字标点、特殊字符;
2、未知
3、可能是库文件路径没有包含或位置不正确
F. 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按钮开始生成
G. openscenegraph下编译出错,求解决方案
这个是链接错误
错误 14 error LNK1120: 13 个无法解析的外部命令 F:\VS2010_test\osg_house\Debug\osg_house.exe osg_house
通常是你的库没有正确地包含进来。我指的包含进来是说.h头文件要有,链接库文件.lib也要有,二者缺一不可。
建议:你应该至少说明一下你在什么操作系统,什么应用背景下碰到了这个问题。
编译错误通常是只看头一个错误,很多情况下是一个错导致了几十个错误,你只要解决了这一个错,就都OK了,没必要列出那么多东西。
H. openscenegraph可以在易语言上编译通过吗
API??!
I. 求助一下,关于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,你再试试,如果还不行,再追问,希望最终能帮你解决问题。
J. OSG是什么的缩写
OpenSceneGraph
OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API)。OpenGL技术为图形元素(多边形、线、点……)和状态(光照、材质、阴影……)的编程提供了标准化的接口。而OSG开发的主要意义在于,将3D场景定义为空间中一系列连续的对象,以进行三维世界的管理。正是由于场景及其参数定义的特点,通过状态转化、绘图管道和自定制等操作,OSG还可以用于优化渲染性能。
可以运行OSG的平台需要具备OpenGL的支持能力,以及C++的编译环境,支持OSG的系统包括Solaris,IRIX,Windows,Mac OSX,HP-UX,Sony Platystation等等,不过XBox除外。
和OpenGL类似,OSG的核心并没有提供窗口系统的功能。因此用户可以自由选择所需的图形开发接口,如GLUT,X11/Motif,Win32,MacOS X,Qt,wxWindows,Fox等。
OSG采用以下思想和工具进行构建:
· ANSI标准C++;
· C++标准模板库(STL);
· 设计模式(Design patterns)。
这些工具使得OSG的开发者可以在自己喜好的平台上进行开发,并且依据用户所要求的平台进行配置。
OSG是一个开源系统,主要包括场景图形核心,Procer库,OpenThread库以及用户插件四个部分。自Robert Osfield主持这个项目以来,OSG就作为一个开放源代码的图形开发工程开始在全球运作了。
目前,部分高性能的软件已经使用了OSG来渲染复杂的2D和3D场景。虽然大部分基于OSG的软件更适用于可视化设计和工业仿真,但是在使用3D图形的每个领域,都已经出现了OSG的身影。这其中包括了地理信息系统(GIS),计算机辅助设计(CAD),建模和数字内容创作(DCC),数据库开发,虚拟现实,动画,游戏和娱乐业。
OpenSceneGraph的开发及免费下载网址为:http://www.openscenegraph.org/