OSG编程指南.pdf
ThisbooktomydeepestlovegirlXiaoNan引言想对看到这个引言的大家说声对不起,虽然在写这些话时,这本书的订价还没有最终定下来,但是也许在此后您会发现这本书物不所值。但是从StepIntoOSg的售出数量以及平吋和大家的交流来看,大家需要本书和一些代码来韜助理解∂sG的编稈方法。这本书估计是我平牛最后一次再接触OSG了,我已经找到了我的第·份工作,在西安,不是做OSG的在去年的时候Aray说一定要写一本好书,关于OSG的好书。在聊天的时候,Aray笑谈自己是写小说出身的,四十万言不成问题。我听了很激动,后来由于Aray兄有言在先,所以我打消了计划很久的写书念头。后来Array兄为求书的全面,一直在做osG的全面研究。从osG核心到oSG的边缘与繁多的库的结合等等,他都有提到。但是可惜的是前一段时间Flysky突然说Aray写书遇到了困难,恐怕要耽搁一段时问。我突然发现我离工作的时间越来越近了,还有个把月总得做点什么。于是我又重新计划写本适应0SG220版本的基础教程的念头。以抛砖引玉,期待Aray兄的书早日出版由于计划取谛的耽搁,时间不允分这是这本书不好的一个原因,主要原因还是因为我使用OSG年限太短,水平有限。所以还请大家对书的不足多多原谅。市面上关于OSG的书不多,资料也很少,我希望这本书能给大家以微小的帮助。眼看着就要工作了,我不知道该发一些关于大学的感慨还是关于OSG的感言。我是从零五年初开始接触OSG的,那个时候对它还一无所知,记得当时的情况是对着官方网站使劲看,不知道能不能看出几个中文字儿来。曹明亮师兄搜的点点滴滴的资料给宝贝似的,翻来覆去的看。后来进了VRDEV认识了FLMN并与大家进行了交流,那时候才真的开始学会使用C++,编程到零七年的时侯,我凵经到了大学三年纵了,突然觉得有必要对OSG进行总结一卜,于是写了木书,名为《StepIntoopenScenegraph》,由于市面上的资料很少,所以大家争相传阅。后来又借卖书的契机与3DVR的朱老师和唐老师合作做OSG方面的培训。大学里木科生写程序很辛苫,钱很少,而且不很正规,不怎么煅炼人。在慢慢的积累中,我萌发了小一个网站的念以,后来与Robert联系要了小站的主小权,以及网站的翻译版权等等,我约定月建好,也就是到大年三十的时候发布后来我仔细的研究了O5G官方网站的结构,使用的Trac,发现我使用Trac并不现实,因为买服务器和维扩都很贵ε租服务器上的TraC不是太好配置。于是我决定使用php后缀以备后来扩展。后来找了身边好友FⅣysky,Array,Hesicong,祝清鲁夜间和祝清鲁的同学一起来翻译这个网站,大家的热情都很高,所以不久网站就建立起來了。年前网站工作正紧的时候学校突然封校,我必须回家,家中又没有电脑。于是我天天在网吧徹σsgChina这个网站,从早到晩,在夜甲一般会给萧发一些短信聊天,除此雨没有别的事情了。后来大概是在年后初二的后半夜四点的时候,终于大功告成。之前购买了虚拟空间,所以一路上都很顺利。记得当时夜里我往maillist上发布消息的时候激动的手都不听使唤了,也可能是网吧条件太简陋,没空调给冻的回去的时候U盘还忘在了网吧的机器上,回到家清晨快五点,老爹说U盘是不是很贵,非让我去拿,要不然肯定丢,就用不成了。后米我又往网吧跑,由于夜里我经常与网吧老板对熬,所以很熟,U盘很容易就找后来osgChina顺利的给备上了案,备的案在河南。服务器在浙江,是双线的,但是aray还是不停的说龟速什久的。服务器有一次网速很好,网友立即爆言:太好了,终于可以在自天上咱的论坛了。说起来还是抱歉,很多人在论坛上发帖说:明早传图,服务器慢。我确实没有管理服务器这方面的经验,所以只能对不起大家了。以后会好起来的。很多好友问我为什么不徹osG了呢?我觉得这个问题我得好好回答一下,说出我的真实理由,这样才能给人家以参考。首先,在郑州人学的计算机专业里面,本科生编程编的差不多的很少,有项目经验的也很少。所以大企业来招L的吋候很容易我们这些做图形学的就出线了。从本质上来说是做OSG⊥资很低,没有做通信这类工资高。我转的是通信。其次,我没有想过创业,觉得自己经验太少,太单簿了,不太适合这时候创业,还需要到外面L作下。然而关于虚拟现实的国内公司最大的员工也不会超过五万人。所以感觉还是没有办法与类似通信、电信这类大规模工业生产相比。三来,做OSG做久了,突然觉得很虚,用我个同学的话说,没有太多的瓶颈,而我又没有读硏究生,没有做这方面研究的机会,所以只能放弃了。谢谢大家对我的关心。四来,3DVR的朱老师说,先成家,后立业。先成家,后立业。好像重复了七八遍。有句话叫誓不过三,我总算记住了。感觉做oSG要成家比较难,有位做OSG的老人哥,三十了,还光棍,后米转Java了,马上结婚了。在最后,我要感谢我的家人,我的家庭是农民出身,父母都非常勤恳、忠厚。感谢OSG圈里一直在一起的朋友们,和你们在一起让我感觉到了大学里物有所值。感谢女友萧楠,一直都以非常特姝的方式鼓励我。最后我要为您购买我的书籍表示感谢。谢谢您。FreeSouth2008619清晨于郑州大学菊园NDEX第一章绪论1.10SG简介∴111.10sG的诞生.1.20sG在中国1.2如何学习0SG.121.2.10sG的书籍.12.2.20sG的网站.…131.2.30sG的教程141.2.4邮件列表142.5必备的知识151.30sG的编译与安装.…………151.3.10sG安装包151.3.2编译0SG.………………………………………171.3.3开发环境设置::::::::::::.:::::..:::::::::::::·.::::.:::::::::::·,211.4小结22第二章0SG基础.2.1Heloword示例一:He|loWorld::...:::::.:::2.1.改进Hel|oDorId.25示例二:添加状态示例三:设置操作器∴……262.1.2最好的He|loWor|d.示例四:最好的HelloWorld.282.2官方的四个0SG程序2.2.1osgviewer模型查看工具2.2.2osgversion库版本检测.332.2.3osgArchive数据归档器2.2.4osgConv格式转换与压缩353小结.3624本章所用类参考..362.4.1osgViewer:Viewer..362.4.2osgViewer::ViewerBase402.4.3OSgGA∷KeySwitchMatrixManipulator∴452.4.4osg:ArgumentParser48第三章模型简单控制523.1读取模型3.1.1基本操作52示例五:添加模型.………52示例六:隐藏模型示例七:结点开关55OpenScenegraph程序设计www.osgdhina.org第一章:绪论3.1.2超级指针3.2移动/旋转/缩放模型.57示例八:移动/旋转/缩放模型….583.3小结5934本章所用类参考593.4.1osg:Node:.::.::·:,::::.·593.4.2osg::Group3.4.3osg:Switch673.4.4osg::Matrixtransf70第四章基本几何图元734.1概述4.1.1基本绘制方法示例九:绘制正方形……4.1.2所有可绘制图元75示例十:绘制线宽.……………………………………………1764.2内置几何类型78示例十一:内置几何类型784.3本章小节..:.:::::::::::.::::,804.4本章类参考4.4.1osg::Geode.....4.4.2osg::Drawable.....4.4.3osg4.4.4osg:Geometry第五章交互1035.1交互过程…:.:.:.:...::::::::::a:.:::.::5.2交互详解.1045.2.1经典示例.…………….………………………104示例十二:响应键盘鼠标1045.2.1事件类型与响应1065.3pick.…….………108示例十三:pick1095.4小结125.5本章所用类参考1125.5.1osgGA:GUIEventHandler......................1125.5.2osgFX::Scribe∴114第六章漫游1166.1MatrixManipulator∴……1166.1.1操作器概述1166.1.2操作器实例116示例十四:漫游实例,1176.2制作路径漫游1266.2.1使用path文件.126示例十五:使用path文件1276.2.2路径编辑器….128OpenScenegraph程序设计www.osgchIna.org第一章:绪论示例十六:建立MFC单文档0G程序.…….128示例十七:路径漫游程序.…..….1416.3小结15464本章所用类参考154第七章更新&回调.,1567.1回调.着面1567.1.1使用已有回调156示例十八;callback.…7.1.2自定义回调158示例十九:自定义callback类,1587.2Nodevisitor160示例二十:输出模型所有顶点…1607.3小结1627.4本章所用类参考1627.4.1。sg∷:Nodevisitor162第八章粒子系统1678.10sG中粒子系统要素1678.1.1粒子系统的模拟过程1678.1.2osgParticle中的类8.2粒子系统实例8.2.1雨雪效果.…180示例二十一:雨雪效果::::::::::::.:::::.·:.::::::::::a:..:.:::.:::8.2.2喷泉模拟…181示例二十二:喷泉8.3本章小节.:.:.:.:...::::::::::a:.:::.::18584本章所用类参考1858.4.1osgParticle∷:Particle∴.1858.4.2osgParticle:ParticleSystem1908.4.3osgParticle:GonstantRatecounter...................1938.4.4osgParticle:VariableRateCounter........,1948.4.5osgParticle:RandomRateCounter.1958.4.6osgParticle::Segmentlacer∴……198.4.7osgParticle:MultispLacer1988.4.8osgParticle:GenteredPlacer2008.4.9osgParticle:BoxPlacer2018.4.10osgParticle:PointPlacer.2038.4.11osgParticle::SectorPlacer.2038.4.12osgParticle:Particleeffect.2058.4.13osgParticle:FluidProgram208第九章:视口&L0D&多通道2109.1多视口2109.1.1多视口过程.…….2109.1.2创建前后左右视图210示例二十三:创建前后左右视图.210OpenScenegraph程序设计www.osgdhina.org第一章:绪论示例二十四:多窗口渲染2139.2L0D..2159.2.1文件的输出215示例二十五:输出结点到文件2159.2.2在模型中加L0D头结点215示例二十六:给模型加L0D头结点输出2169.3多通道216示例二十七:组建和使用osgCluster.…2169.4Imposter218示例二十九:Iposter2189.5本章小节21996本章所用类参考2199.6.1osg::Camera2199.6.2osg::L0D2289.6.3osgSim:第十章文字&模型阴影10.1显示汉字233示例二十九:汉字HUD23510.2显示当前位置236示例三十:HUD动态更新当前位置,23710.3阴影24110.4小结,24110.5本章所用类参考.24110.5.1osg:Text.......241第十一章地形VPB初步24811.1VPB简介2481.1.1VPB的获得.…………………………24811.1.2VPB的编译24811.2VPB使用25011.3小结.………………253附录:StepIntoOpenScenegraph中MFG基础章节1.1最精简的单文档MFC框架2542MFG常用的几种基本操作2702.1修改鼠标2701.2.2透明对话框,2711.2.3客户区全屏2731.2.4音乐播放.27610
暂无评论