2005年06月03日

据说是第一个支持OpenGL2.0的游戏,感觉和farcry差不多,不过战斗场景还有水下的,看了他海面效果的sceenshots。非常非常真实,不知道他们是用什么方法做的。可以看出用了shader,但是不知道网格用的什么?projgrid?运动用的fft?

最重要的,这款游戏的渲染引擎用的是OSG!真是太棒了。更加坚定我一直学习OSG的决心!

我喜欢这海水:

以前在北航人论坛的,很不稳定,经常丢数据,还是找一家大的服务商比较稳妥,我对donews的速度很是满意,以后就在这儿安家了。

注意:把php的extension=php_mbstring.dll打开。
在MySQL数据库中建立数据库mantis
修改mantis/sql/db_generate.sql,将language varchar(32) NOT NULL default ‘english’,中的english改为chinese_simplified
导入mantis/sql/db_generate.sql

Mantis的设置是这样保存的:在config_defaults_inc.php中保存这Mantis的默认设置,用户自己的设置信息保存在config_inc.php中,如果某个选项在config_inc.php中有设置,则系统使用config_inc.php中的设置,否则使用config_defaults_inc.php的系统默认设置;config_inc.php.sample则是Mantis给出的一个用户设置文件例子。
所以我们需要修改config_inc.php文件中的设置,设置很简单,各个参数的意义可以参见config_defaults_inc.php,这里对每个参数都有详细的解释,虽然是E文,不过应该都能看懂;Sample中给出的一些设置是一定需要修改的,比如MySQL数据库的连接参数,管理员的邮箱的;其他的要根据你的实际情况进行修改。
下面是我的一些自定义参数。
修改以下几行为
  $g_db_username = "mantis";
  $g_db_password = "你在建立用户时指定的密码";
  $g_database_name = "mantis";
  增加以下几行
  $g_path = "http://www.yourdomain.com/mantis/";
  $g_icon_path = $g_path."images/";
  $g_absolute_path = "/解压缩的目录/mantis/";
  $g_use_iis = OFF; # 不使用IIS
  $g_show_version = OFF; # 不在页面下部显示 Mantis的版本号
  $g_default_language    =’chinese_simplified’;# 默认语言为简体中文
  $g_show_project_menu_bar = ON;# 显示项目选择栏
  $g_show_queries_count   = OFF; # 在页脚不显示执行的查询次数
  $g_default_new_account_access_level = DEVELOPER; # 默认用户级别
  $g_use_jpgraph = ON; # 使用图形报表
  $g_window_title = ‘Mantis Bug 跟踪管理系统’; # 浏览器标题
  $g_page_title = ‘Mantis Bug 跟踪管理系统’; # 页面标题栏

修改Apache的配置文件,Apache的配置文件位于Apache安装目录的conf目录中,文件名为httpd.conf。
增加以下几行(供参考):
Alias /mantis "G:/Web/mantis-0.19.2"
<Directory "G:/Web/mantis-0.19.2">
    Options Indexes MultiViews Includes FollowSymLinks +ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Subversion安装与配置(Windows)

作者:flmn

一、     环境

操作系统Windows2000 Professional

二、     下载

1.  Subversion

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

下载最新版,我下的是svn-1.1.2-setup-en-2.exe

2.  客户端软件TortoiseSVN

http://tortoisesvn.tigris.org

下载最新版,我下的是Version 1.1.2.2205 for NT4/Win2k/XP,文件是TortoiseSVN-1.1.2-UNICODE_svn-1.1.2.msi

3.  Windows服务Wraper

http://dark.clansoft.dk/~mbn/svnservice

下载SVNService.zip

三、     安装

先安装svn-1.1.2-setup-en-2.exe,一路next,然后安装TortoiseSVN,也是一路next,不过要重启计算机。

 

四、     服务器配置:

我们要采用svnserve做服务器,不用apache,因为这个简单,也够用了。

首先建立一个仓库,用来存储所有今后要管理的项目,比如F:\SVN,然后把SVNService的可执行文件解压出来放到Subversion安装目录下的bin目录,用它来把svnserve安装称为Windows服务,这样它就可以随着计算机启动自动启动了,在命令提示符下进入Subversion安装目录下的bin目录,执行命令:


SVNService -install -d -r F:\SVN


这里F:\SVN是我们的代码仓库所在目录。

执行完后,服务已经安装,但是没有启动也没有配置成自动启动,需要手工在Windows服务管理里面设定。这样,服务器端就配置好了。

因为TortoiseSVN和资源管理器紧密结合,所有功能都在右键菜单里

五、     使用

1.  建立项目。在代码仓库目录里,这里是F:\SVN,建立一个新目录,名字改成你项目的名字,这里用test。在这个目录上点击右键,选择Create Repository here,在弹出的对话框里选择数据库类型,两种数据库具体差别请看Version Control with Subversion这本书,我们选择FSFS,点击OK后,项目仓库就建立成功了。

2.  设定访问权限。进入刚建的项目仓库的conf目录,编辑文件svnserve.conf,将上面那些注释去掉,文件内容如下:


[general]

anon-access = read

auth-access = write

password-db = passwd.conf

其中anon-access = read表示匿名用户可读,也可改成none或者write,分别表示没权限和可写,如果anon-access设成可写了,就是谁都可以改代码了,这是我们不希望的。

auth-access = write表示认证用户可写。

password-db = passwd.conf表示密码文件是passwd.conf

svnserve.conf所在目录新建一个文件passwd.conf,编辑内容如下:


[users]

flmn = password

表示有个用户叫flmn,密码是password,下面可以再添加用户。

3.  将代码导入项目仓库。在要导入仓库的目录上面点击右键,点击TortoiseSVN项的子菜单Import…URl里面填写svn://服务器IP/test,这里test就是刚刚建立的项目仓库,在下面填入注释,点击OK,弹出提示输入用户名密码对话框,填入flmnpassword,就可以把代码导入仓库了。刚刚导入的文件并没有显示被svn管理,现在把这个目录里文件都删除,再在右键菜单里选择SVN Checkout…就可以导出代码,再看这个目录,就有个小图标在文件夹图标下面了。

4.  对于其它操作,和CVS差不多,这里就不赘述了。可以参考TortoiseSVN帮助文件。

 ACT  (ACTION GAME )动作游戏
 STG  (SHOTING GAME )射击游戏
 RPG  (ROLE PLAYING GAME )角色扮演游戏
 A.RPG  (ACTION ROLE PLAYING GAME )动作角色扮演游戏
 S.RPG  (SIMULATION ROLE PLAYIG GAME)模拟角色扮演游戏
 FTG  (FIGHTING GAME )格斗游戏
 S.FTG  (SIMULATION FIGHTING GAME )模拟格斗游戏
 SLG  (SIMULATION GAME )模拟仿真游戏
 SPG  (SPORT GAME )运动游戏
 TAB  (TABLE GAME )桌上游戏
 PUZ  (PUZZLE GAME )益智游戏
 AVG  (ADVENTURE GAME )冒险游戏
 RAC  (RACE GAME )赛车游戏
 RTG  (REAL TIME GAME)实时战略游戏
 PET  (PET)养成类游戏及电子宠物
 MAG  (MANAGEMENT GAME)经营类游戏
 L.MUD  (LETTER MULTI-USER DUNGEONS)文字网络游戏
 F.MUD  (FIGURE MULTI-USER DUNGEONS)图形网络游戏
 ETC  (ETCTERA GAME )其他类游戏

最近一直在看OSG的邮件列表,感觉信息很丰富啊。

虽然说论坛发言很方便,但是总是有很多人灌水,让有用的信息淹没在茫茫大水中了。

而邮件列表里面的信息非常精炼,没人愿意通过发邮件灌水,发邮件数目也没个统计,也没积分什么的,所以,大家都关注于要讨论的问题,邮件列表的缺点是查询起来不是很方便。

难怪有人说,真正的高手是不上论坛的。

俄罗斯兄弟的网站(http://frustum.org/)好久没更新了,今天上去一看,他的引擎0.3版本发布了,不过不再是open source了,上了引擎的新网站(http://unigine.com/)看了,新引擎的demo非常华丽,要价也不低每程序员授权1995美元,无限授权4985美元,看起来还比较便宜,但是感觉好赚啊。这个也不失为创业的好方法。我得多花几天分析分析他的引擎……现在看看对显卡要求太高了,我的显卡跑得很吃力

摘要:
本文泛泛地叙述有趣实用的3D图形开发技术,介绍一些主流的开发库和工具软件,并不涉及底层的图形学知识,可作为初学者入门读物。作者希望通过这个文档,能够为新手提供一些信息,使他们更容易找到自己想要的东西,降低入门门槛。

一.引言
目前计算机3D技术确实达到了一个相当高的程度,所能完成的效果令人美不胜收,惊叹不已。3D技术被广泛应用于游戏娱乐、商业仿真、战场和空间仿真、计算机可视化、城市仿真、计算机教育等领域。

(From MultiGen-Paradigm Vega)

二.主流的底层渲染3D API
尽管有如NVIDIA的GL、SGI的OpenGL Shading Language等专门的图形语言的出现,但是对普通程序员而言,OpenGL和Direct3D仍然是最底层渲染API,大部分3D应用是在它们的基础上开发的。
1.OpenGL
OpenGL当前版本为2.0,是一个性能卓越的三维图形标准,早先在SGI等多家世界闻名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准。许多软件厂商也纷纷以OpenGL为基础开发出自己的产品,其中比较著名的产品包括动画制作软件Soft Image和3D Studio MAX、仿真软件Open Inventor、VR软件World Tool Kit、CAM软件ProEngineer、GIS软ARC/INFO等,涉及到建筑、产品设计、医学、地球科学、计算流体力学等领域。OpenGL作为一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植,并有使用简便,效率高的优点。OpenGL在微机中也得到了广泛的应用。
2.Direct3D(DirectX Graphics)
Direct3D是Microsoft DirectX9.0的一个组件,主要用于游戏开发,但是由于Microsoft的巨大投入,目前已经成为足以与OpenGL相抗衡的3D标准。DirectX 9.0 基于COM (Component Object Model)技术,它由下列组件组成:
•DirectX Graphics:集成了9.0以前版本里的Microsoft DirectDraw和Microsoft Direct3两大组件,统一了2D和3D的编程接口。该组件包括了可以简化许多图形编程任务的Direct3D 扩展实用库(Direct3D extensions utility library)。
•Microsoft DirectInput提供对多种输入设备的支持,包括对力反馈技术的支持;
•Microsoft DirectPlay提供多用玩家网络游戏的支持;
•Microsoft DirectSound用来开发高品质的音频应用,可播放或抓取波形音频;
•Microsoft DirectMusic为基于波形的游戏音乐提供了完整的解决方案;
•Microsoft DirectShow提供了抓取和回放高品质多媒体流的支持;
•DirectSetup提供安装DirectX组件简单API支持;
•DirectX Media Objects提供读写包括视频、音频编码、解码和效果等数据流对象的支持。
如果直接用OpenGL或Direct3D来开发3D应用,则开发效率低,对开发人员素质要求高,低手很难开发出象样的3D产品。幸好人们已经作了很多努力,98年以后就有很多商业的或免费的图形工具包可供使用。所以,我们可以在掌握OpenGL和Direct3D基本使用方法后,再去学习使用这些高层的工具包,就可以使我们的3D开发一开始就站在高手们的肩膀上,迅速进入这个陌生的领域。

三.高级3D开发库介绍
目前,3D开发库算得上数不胜数,
GLUT – OpenGL Utility Toolkit
GLUT 是一个与操作系统无关的OpenGL程序工具库, 它实现了可移植的OpenGL窗口编程接口,GLUT支持C/C++、FORTRAN、ADA。工具包当前版本号为3.7,支持OpenGL多窗口渲染、回调事件处理、复杂的输入设备控制、计时器、层叠菜单、常见物体绘制函数、各种窗口管理函数等。GLUT不是一个全功能的开发包,并不适合大型应用的开发,它只为中小应用而设计,特别适合初学者学习和应用OpenGL,由此入门相对容易。
SGI OpenGL Peformer
SGI公司是业界的领导厂商之一,在实时可视化仿真或其它对显示性能要求高的专业3D图形应用领域里,OpenGL Performer为创建此类应用提供的强大而容易理解的编程接口。Performer可以大幅度减轻3D开发人员的编程工作,并可以容易地提高3D应用程序的性能。它的软件模块对数据的组织和显示做了广泛的优化。
OpenGL Performer是SGI可视化仿真系统的一部分。它提供了访问Onyx4 UltimateVision、SGI Octane、SGI VPro图形子系统等SGI视景显示高级特性的接口。Performer和SGI图形硬件一起提供了一套基于强大的、灵活的、可扩展的专业图形生成系统。Performer已经被移植到多种图形平台,在使用的过程中,用户不需要考虑各种平台的硬件差异。
我们在试用的过程中发现,OpenGL Performer的通用性非常好,它并不是专门为某一种视景仿真而设计,API功能强大,提供的C和C++接口相当复杂。除了可以满足各种视景显示需要,它还提供了美观的GUI开发支持。
Quamtum3D OpenGVS
OpenGVS是Quantum3D公司的早期成功的产品,用于场景图形的视景仿真的实时开发,易用性和重用性较好,有良好的模块性、巨大的编程灵活性和可移植性。OpenGVS提供了各种软件资源,利用资源自身提供的API,可以很好地以接近自然和面向对象的方式组织视景诸元和进行编程,来模拟视景仿真的各个要素。目前,OpenGVS的最新版本为4.6,支持Windows和Linux等操作系统。
由于Quamtum3D已经收购了CG2,而OpenGVS又是基于C的老套架构,对OpenGVS的后续开发投入不足,Quamtum3D可能把战略眼光投放在VTree和Quantum3D IG(整套解决方案Mantis )上边。
Quamtum3D Mantis
Mantis系统是Quamtum3D推出的一整套视景仿真解决方案。Mantis系统作为一种图形生成器开发平台,提供了使用现有计算机和图形硬件,得到高效率,高性能,高帧速率,以及较好的图形质量。CG2公司的VTree是实时3D可视化仿真的首选开发包,此前已经为美国国防部投入了多年的研究和开发工作。Mantis合并了VTree开发包和可扩展图形生成器架构,从而创造了强大的,可伸缩的,可配置的图形生成器。重要的特征包括:跨平台:Mantis可以在包括Win32和Linux等多种操作系统上运行;公共接口:Mantis支持分布式交互仿真(DIS),也支持更现代的公共图形生成接口(CIGI);Mantis支持许多高级特性,包括同步的多通道,包括各种特效:比如仪表、天气、灯光、地形碰撞检测等;可伸缩性:多线程可视化仿真应用可能有多种多样的显示需求,Mantis可以根据需要进行器件的裁减;灵活性和可配置性:Mantis作为一个开放系统硬件平台,可以利用最新的硬件和图形卡,而基于客户端/服务器端的架构,又可以使Mantis的配置可以通过网络在客户端上即可进行,可配置功能极为丰富;可扩展性:不象传统的硬件图形生成器,Mantis系统的扩展和修改并不昂贵,软件模块可以通过插件的形式增强软件功能;Mantis支持地形数据库,支持场景管理。
MultiGen-Paradigm Vega
Vega是MultiGen-Paradigm公司应用于实时视景仿真、声音仿真和虚拟现实等领域的世界领先的软件环境。使用Vega 可以迅速地创建各种实时交互的三维环境,以满足各行各业的需求。它还拥有一些特定的功能模块,可以满足特定的仿真要求,例如:船舶、红外、雷达、照明系统、人体、大面积地理信息和分布式交互仿真等等。附带的Lynx程序,这是一个用来组织管理Vega场景的GUI工具。
MultiGen Creator系列产品是世界上领先的实时三维数据库生成系统,它可以用来对战场仿真、娱乐、城市仿真和计算可视化等领域的视景数据库进行产生、编辑和查看。这种先进的技术由包括自动化的大型地形和三维人文景观产生器、道路产生器等强有力的集成选项来支撑。MultiGen Creator是一个完整的交互式实时三维建模系统,广泛的选项增强了其特性和功能。
MultiGen-Paradigm公司已经计划用Vega Prime取代Vega,Vega Prime全部用C++写成,是全新的产品,而不是Vega的后续版本,虽然目前在功能上比Vega3.7没有大的提高,但是Vega Prime的核心Vega Scene Graph是完全面向对象的先进架构,采用了许多现代C++的特性和技术,比如泛型,设计模式等,大大增加了软件功能和灵活性、通用性;此外,目前大部分程序员都有面向对象编程经验,Vega Prime提供的接口恰好符合其编程思维,易于上手,因此特别有吸引力。Vega Prime有很好的发展前景,但是Vega Prime是新推出的产品,最新版本号是1.2,很明显,有的方面还不够成熟。
OpenSceneGraph(OSG)
OSG是一个可移植的、高层图形工具箱中,它为战斗机仿真、游戏、虚拟现实、或科学可视化等高性能图形应用而设计。它提供了基于OpenGL的面向对象的框架,使开发者不需要实现、优化低层次图形功能调用,并提供了很多附加的功能模块来加速图形应用开发。
OSG通过动态加载插件的技术,广泛支持目前流行的2D、3D数据格式,包括OpenFlight (.flt),TerraPage (.txp) (多线程支持),LightWave (.lwo),Alias Wavefront (.obj),Carbon Graphics GEO (.geo), 3D Studio MAX (.3ds),Peformer (.pfb),Quake Character Models (.md2),Direct X (.x),以及Inventor Ascii 2.0 (.iv),VRML 1.0 (.wrl),Designer Workshop (.dw)、AC3D (.ac) ;.rgb,.gif,.jpg,.png,.tiff,.pic,.bmp,.dds,.tga 和 qucktime。另外还可通过freetype插件支持一整套高品质、反走样字体(英文)。OSG内含LADBM模块,加载大地形速度较快,帧速率高,在运行过程中占用计算机资源少。
另外,OSG是自由软件,公开源码,完全免费。用户可自由修改,来进一步完善功能。目前已经有很多成功的基于OSG的3D应用,效果不亚于商业视景渲染软件。如果要自主开发视景渲染软件,OSG是最佳的基础架构选择。
CG2 VTree
CG2 VTree是一个面向对象,基于便携平台的图象开发软件包(SDK)。前面提到Mantis系统的强大功能,其中的一个重要原因是Mantis的软件部分主要基于VTree。VTree SDK包括大量的C++类和压缩抽象OpenGL图形库、数组类型及操作的方法。VTreeSDK功能强大,能够节省开发时间,获得高性能的仿真效果。利用此工具包开发者可充分展开想象力,置身于鲜活的虚拟世界中.比如战场战术的实现、探索火星表面的过程等。对于希望得到跨平台、高性能低成本、可实时响应虚拟仿真应用VTree无疑是最佳选择。
CG2设计、优化了代码,使得在同一硬件上得到更快的实时显示速度变成可能。Vtree能用于多平台的三维可视化应用,它既可用在高端的SGI工作站上,也能用在普通PC上。VTreeSDK是开发交互式仿真应用优秀开发包。VTree 包含一系列的配套C++类库适用于开发高品质,高效的VTree应用。VTree提供的扩展功能成功地兼容并融合了复杂的OpenGL-API接口。VTree应用可运行于支持OpenGL的Windows和Unix类型的平台。
Vtree显示效率非常高,实际使用过程中给人感觉是非常快的。其原因一方面在于Vtree全新设计和优化了程序代码,另一方面在于Vtree显示控制的策略。Vtree生成和连接不同节点到一个附属于景物实体的可视化树状结构,这个可视化树状结构定义了如何对实体进行渲染和处理。一个实体由一个所有图形原始状态组成的渲染树和定义如何使实体显示的接合部分所组成。实体的渲染树包含所有这些实体的几何特性、运动特性和纹理节点。这些树状结构对于实体的细节描述能变得非常精细,并且通过不同的路径能够显示用于优化的不同的细节等级划分(LOD)。
VTree针对仿真视景显示中可能用到的技术和效果,如仪表、平显、雷达显示、红外显示、雨雪天气、多视口、大地形数据库管理、3D声音、游戏杆、数据手套等等,均有相应的支持模块。
Vtree开发包附带例子代码结构清晰,实现的功能全面,用户容易在阅读例子代码的基础上开发自定义应用。


名称 对比项 产品性质 平台支持 开发人员要求 购买费用 产品服务   
SGI Peformer 商业SDK IRIX, Linux, Window2000, WindowsXP,  中     
Quamtum3D OpenGVS 商业SDK Windows2000, WindowsXP, Unix,Linux 中     
Quamtum3D Mantis 全套商业
解决方案 本身提供系统平台 低     
MultiGen-Paradigm Vega Prime 商业SDK Window2000, WindowsXP, Unix,Linux 低     
OpenSceneGraph(OSG) 自由软件,
免费SDK Windows2000, WindowsXP, Unix,Linux 高     
CG2 VTree 商业SDK Windows2000, WindowsXP, Unix,Linux 低     
      


参考资源:
http://www.sgi.com/software/opengl/glut.html GLUT库页面
www.opengl.org OpenGL官方站点
www.multigen-paradigm.com multigen-paradigm公司主页
http://www.microsoft.com/windows/directx/default.aspx 微软公司directx页面
http://www.sgi.com/software/performer/ SGI OpenGL Performer页面
http://www.quantum3d.com/ Quantum3D主页
openscenegraph.sourceforge.net OpenSceneGraph主页

关于作者:
hujinshan 从事飞行仿真系统的设计和开发。对软件工程和3D技术感兴趣。您可以通过电子邮件 tohjs#163.com 和他联系。

作者:姬涛
邮件:jitao_at_china_dot_com
网站:http://www.flmnware.com/

1、 前言

本文讲解了OpenSceneGraphWindows环境下的安装。

OpenSceneGraph可移植性非常强,支持主流UnixWindowsLinuxMac OSX等操作系统,支持多种编译器,这里主要讲Windows NT系列系统下使用Visual Studio.Net 2003VC7.1)进行开发,这是在Windows下推荐的组合。文中所涉及的版本是0.9.8-2

 

 

 

 

2、 下载

要建立一个基本环境,需要下载如下三个包:

OSG_OP_OT-0.9.8-2.zip:包括OpenThreadsOpenProducerOpenSceneGraph,前两者是OpenSceneGraph最重要的依赖包。

3rdParty_Win32binaries_2004-07-25a.zip:第三方依赖包,包括OpenSceneGraph各个插件的依赖包,比如libpnglibjpeg……,随着OpenSceneGraph的不断更新,文件名后面跟随的日期可能不一样。

OpenSceneGraph-Data.zip:一些示例数据,对学习OpenSceneGraph非常有用。

打开OpenSceneGraph官方网站http://www.openscenegraph.org,在左边树型菜单里可以找到Downloads,点击进入下载页。可以找到OSG_OP_OT-0.9.8-2.zip,点击Dependencie链接可以找到3rdParty_Win32binaries,点击SampleDataset可以找到OpenSceneGraph-Data.zip

 

 

 

 

3、 编译

完全编译OpenSceneGraph需要接近5G的磁盘空间,所以在适当的地方建立一个目录用来存放OpenSceneGraph所有的文件,比如E:\OpenSceneGraph,将OSG_OP_OT-0.9.8-2.zipOpenSceneGraph-Data.zip解压缩到这个目录。以后我就以这个目录为基础讲解。

因为第三方库很多,不建议把可执行文件放到System32目录下,头文件和库文件也不该放到VC对应目录,那样是一种“污染”,因为这些第三方库会不断更新的,建议把这些统一放在一起,比如在D:\建立目录usr,将3rdParty_Win32binaries里面的文件解压到这里。然后在系统PATH环境变量添加D:\usr\bin,打开VS2003集成开发环境,在工具-》选项-》项目里,在对应项添加D:\usr\includeD:\usr\lib目录。最后在Windows系统添加环境变量OSG_FILE_PATH,将其指向OpenSceneGraph-Data目录,即E:\OpenSceneGraph\OpenSceneGraph-Data\,这样环境设好了。

首先编译OpenThreads,打开E:\OpenSceneGraph\OSG_OP_OT-0.9.8-2\OpenThreads\win32_src\OpenThreads.dsw,将其转为VC7.1工程,分别编译Debug版和Release版,保存并关闭工程。

然后编译OpenProducer ,打开E:\OpenSceneGraph\OSG_OP_OT-0.9.8-2\Producer\VC++6.0\ Producer.dsw,将其转为VC7.1工程,分别编译Debug版和Release版,保存并关闭工程。

最后编译OpenSceneGraph,打开E:\OpenSceneGraph\OSG_OP_OT-0.9.8-2\OpenSceneGraph\VisualStudio\VisualStudio.dsw,将其转为VC7.1工程,选择生成-》批生成,点击全选,然后就去喝茶吧,编译完毕后,保存并关闭工程。

 

 

 

 

4、 配置

编译完成后,要想进行开发,还需要把OpenThreadsOpenProducerOpenSceneGraph生成的动态链接库、头文件和连接库拷到D:\usr对应目录。这样下次新建工程VC就能找到头文件和库文件了,运行OpenSceneGraph程序的时候也能找到动态链接库了。

 

 

 

 

5、 测试

可以通过运行E:\OpenSceneGraph\OSG_OP_OT-0.9.8-2\OpenSceneGraph\目录里的runexamples.bat来测试OpenSceneGraph是否编译配置成功,同时还能欣赏一下OpenSceneGraph的能力。

 

 

 

 

6、 总结

开源软件因为文档不全和缺乏测试,很多时候下载了都不能通过编译,或者编译步骤复杂,OpenSceneGraph是我用过的很少的能够打开工程然后编译成功的,也体现了OpenSceneGraph软件本身和社区的成熟。

今天从OSG库里继承了一个Drawable,需要覆盖它的drawImplementation,但是drawImplementation是个const方法,我要在里面更新我的模型,上网查了以下资料,发现两个方法可以实现我的要求:
1。使用关键字mutable修饰要在const方法里修改的变量,相关理论网上很多;
2。将要改变的变量声明成指针,在构造函数里new一下,然后记得delete就行了,指针变量本身不能修改,但它指向的内容还是可以修改的。

因为我需要的是一个巨大数组,所以第二种方法正好符合我的需要。