游戏程序设计Ogre+cegui 071.docx

上传人:b****3 文档编号:4931845 上传时间:2022-12-11 格式:DOCX 页数:16 大小:1.03MB
下载 相关 举报
游戏程序设计Ogre+cegui 071.docx_第1页
第1页 / 共16页
游戏程序设计Ogre+cegui 071.docx_第2页
第2页 / 共16页
游戏程序设计Ogre+cegui 071.docx_第3页
第3页 / 共16页
游戏程序设计Ogre+cegui 071.docx_第4页
第4页 / 共16页
游戏程序设计Ogre+cegui 071.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

游戏程序设计Ogre+cegui 071.docx

《游戏程序设计Ogre+cegui 071.docx》由会员分享,可在线阅读,更多相关《游戏程序设计Ogre+cegui 071.docx(16页珍藏版)》请在冰豆网上搜索。

游戏程序设计Ogre+cegui 071.docx

游戏程序设计Ogre+cegui071

游戏开发软件安装及问题解决

Ogre+cegui0.7.1+NXOGRE+FMOD

一、安装仪器

硬件:

计算机

软件:

MicrosoftVisualStudio2008,ogre-v1-7-0.zip,

OgreDependencies_MSVC_20100106.zip,

DirectX,cmake-2.8.1-win32-x86.exe,CEGUI-DEPS-0.7.x-r1-vc9.zip,

CEGUI-0.7.1.zip,NXOGRE,FMOD等等。

二、ogre安装过程

1.登陆http:

//www.ogre3d.org/download/source下载Ogre和Ogre的依赖库OgreDependencies。

2.在安装Ogre之前,首先需要安装DirectX和MS2008。

3.编译Ogre,我们直接对源码进行编译。

解压缩OgreDependencies_MSVC_20100106.zip和ogre-v1-7-0.zip,将ogre-v1-7-0.zip解压缩之后存放到F:

\orgeInstall路径下,并将Dependencies整个目录copy到ogre主目录里。

4.打开vs2008,设置工作环境。

在主菜单中选择[工具]-[选项...],打开"选项"面板,在左边目录选择[项目]-[VC++目录]。

在右栏设置“包含文件”“库文件”目录。

“包含文件”增加

F:

\orgeInstall\ogre-v1-7-0\ogre\Dependencies\include

F:

\orgeInstall\ogre-v1-7-0\ogre\OgreMain\include

D:

\softwareInstall\MicrosoftDirectXSDK(June2010)\Include

“库文件”增加

F:

\orgeInstall\ogre-v1-7-0\ogre\Dependencies\lib\Release

F:

\orgeInstall\ogre-v1-7-0\ogre\Dependencies\lib\Debug

D:

\softwareInstall\MicrosoftDirectXSDK(August2009)\Lib\x86如图:

5.打开F:

\orgeInstall\ogre-v1-7-0\ogre\Dependencies\src目录下的

OgreDependencies.VS2008.sln。

分别在debug和Release版本进行编译,这里编译是生成解决方案。

在编译OgreDependencies.VS2008.sln会报错。

errorPRJ0003:

生成cmd.exe时出错。

原因是VS2008的环境变量设置有问题。

改正如下:

工具—选项—项目和解决方案—VC++目录,可执行文件中,

  把$(PATH)删掉;增加

  $(SystemRoot)“System32

  $(SystemRoot)

  $(SystemRoot)“System32“wbem即可。

6.安装cmake-2.8.1-win32-x86.exe,保持默认路径C:

\ProgramFiles\CMake2.8.

运行C:

\ProgramFiles\CMake2.8\bin\cmake-gui.exe,在"Whereisthesourcecode"和"Wheretobuildthebinaries"中设置ogre的解压路径,点击configure,选择VS92008。

然后点击Generate,在ogre目录下生成OGRE.sln。

如图:

7.打开生成的OGRE.sln,分别在Debug和Release下编译,编译成功后,可运行Samples。

编译好的程序例子位于…ogre\bin\debug下。

右击SampleBrowser,调试新实例。

选择一个Sample,如图

三.cegui0.7.1安装

1.CEGUI-DEPS-0.7.x-r1-vc9.zip和CEGUI-0.7.1.zip下载

2.将CEGUI-0.7.1.zip和CEGUI-DEPS-0.7.x-r1-vc9.zip解压,并把依赖库放到cegui的目录下。

3.进入目录…CEGUI-0.7.1\projects\premake,用记事本打开目录下的config.lua,

找到两个变量:

OGRE_PATHS和OIS_PATHS,将其修改成对应的ogre和ois的路径,例如:

OGRE_PATHS={"F:

\orgeInstall\ogre-v1-7-0\ogre","OgreMain/include","lib"}

OIS_PATHS={"F:

\orgeInstall\ogre-v1-7-0\ogre/Dependencies/include/OIS/","","lib"}

找到CEGUI_OLD_OIS_API变量,设置为false

找到OGRE_RENDERER变量,设置为true

找到SAMPLES_OGRE变量,设置为true

4.进入目录…CEGUI-0.7.1\projects\premake,运行build_vs2008.bat(对应VS2008),当前目录下生产CEGUI.sln。

5.运行build_samples_vs2008.bat(对应VS2008),当前目录下生产CEGUISamples.sln。

6.分别编译CEGUI.sln和CEGUISamples.sln(同样要在debug和release下编译)

可能产生的错误及解决方法:

(1)编译CEGUI.sln,缺少OgreBuildSettings.h,需要添加包含文件。

工具—选项—项目和解决方案—VC++目录,包含文件中,添加

F:

\orgeInstall\ogre-v1-7-0\ogre\include即可。

(2)编译CEGUI.sln时,出现LINK:

fatalerrorLNK1104:

无法打开文件“OgreMain_d.lib,需要相应的添加库文件。

工具—选项—项目和解决方案—VC++目录,库文件中,添加

F:

\orgeInstall\ogre-v1-7-0\ogre\lib\Release和F:

\orgeInstall\ogre-v1-7-0\ogre\lib\Debug即可。

(3)编译CEGUISamples.sln时,会出现缺少库文件的情况,需将…ogre\Dependencies\include\OIS中的库文件复制到…CEGUI-0.7.1\dependencies\include即可。

7.在运行sample前,先复制…CEGUI-0.7.1\dependencies\bin下的所有dll到…CEGUI-0.7.1\bin下面,这样就不会报错提示缺少dll了.

8.运行结果

四、NXOGRE安装

首先必须安装PhysXSystemSoftware和PhysXSDK

Vs2008下添加相应文件

     头文件:

…\NVIDIAPhysXSDK\v2.8.1\SDKs\Physics\include

                  …NVIDIAPhysXSDK\v2.8.1\SDKs\Foundation\include

                  …\NVIDIAPhysXSDK\v2.8.1\SDKs\PhysXLoader\include

                  …\NVIDIAPhysXSDK\v2.8.1\SDKs\Cooking\include

    库文件:

…\NVIDIAPhysXSDK\v2.8.1\SDKs\lib\Win32

下载BloodyMess(来源于http:

//www.ogre3d.org/tikiwiki/Nxogre)

编译Build/msvc目录的NxOgre和OgreRenderSystem工程,会在sdk目录下生成相关文件。

VS下添加相应文件

头文件:

…NxOgre\sdk

库文件:

…NxOgre\sdk

就可以使用NxOGRE了,当然运行程序我们还要添加必要的dll文件,release版本下大概就这两个,NxOgre.dll和NxOgre.dll.intermediate.manifest,如果不够可以再加。

五、FMOD安装

教程http:

//www.ogre3d.org/tikiwiki/FMOD+SoundManager&structure=Cookbook

可以安装一下fmodapi43206win32-installer

(1).exe,里面有很多有用的文件,包括头文件,库文件,dll文件。

头文件fmod_errors.h,fmod.h,fmod.hpp,库文件fmodexp_vc.lib加入到工程中即可。

Release版本用到的dll文件大概有fmodex.dll和fmodexL.dll,不够再加。

问题集锦:

1.无法找到头文件

文件路径没有找到,解决方法:

项目属性—配置属性—c/c++—常规—附加包含目录,添加include,就可以找到Game.h

2.程序编译成功,无法运行

缺少链接库,创建lib文件夹,添加需要的lib文件

3.加入FmodWiki中的封装类SoundManager.h和SoundManager.cpp出现错误

通过网上查找资料,是ogre版本问题

将getWorldOrientation改为getOrientation,getWorldPosition改为getPosition

OK了。

4.编译过程中发现:

Vehicle.obj:

errorLNK2001:

无法解析的外部符号"public:

classOgre:

:

SceneNode*__thiscallOGRE3DPointRenderable:

:

getNode(void)"(?

getNode@OGRE3DPointRenderable@@QAEPAVSceneNode@Ogre@@XZ)

通过查找资料,发现是nxogre问题

在…NxOgre\rendersystems\ogre\OGRE3DPointRenderable.cpp

添加此函数

Ogre:

:

SceneNode* OGRE3DPointRenderable:

:

getNode()

{

return mNode;

}

重新编译nxogre(具体参考nxogre安装过程)即可。

5.添加声音时,出现下面错误

定义soundManager对象为静态变量即可。

6.编译时产生很多警告,如下图:

经查找,在项目属性中,c/c++的命令行中添加/wd4819/wd4390即可。

7.errorC2664:

“MessageBoxW”:

不能将参数2从“constchar*”转换为“LPCWSTR”

解决办法:

在项目属性的常规中将字符集改为使用多字节字符集即可。

8.赛车制作过程中,为了增加赛车的真实感,将赛车各个部件分开制作,之前没有考虑到,因此走了很多冤枉路。

9.

添加音乐之后产生了无法解析的外部命令,因为是在链接方面,所以跟FMOD的lib有关。

查看项目属性,在附加依赖项添加FMOD的链接文件fmodex_vc.lib即可。

10.赛车建模和贴图时所遇到的问题:

(1).所建模型和游戏要求不符合

游戏本款游戏为3D游戏,所以对游戏中赛车的要求也比较高,游戏要求在游戏过程中,随着赛车转弯等动作的产生,赛车的车轮也能够改变方向。

由于一开始的建模过程中没有考虑到这一点,所以使得建的赛车模型不能满足游戏的要求。

解决方案:

重新建模,增加模型的复杂度,使重建模型符合游戏要求。

(2).贴图的材质问题

在贴图的过程中,开始时使用3DMax自带的一些色彩来进行贴图,再利用光照的效果,这样做虽然提高了效率,节省了大量的贴图时间,但为后来的导入OGRE工作带来了不变,原因是OGRE不能识别3DMax自带的色彩信息。

解决方案:

1).使用各种材质来进行贴图,而不单单是简单的色彩;

如下图所示为游戏工程初期简单的色彩贴图:

如下图所示为使用改进后的贴图模型:

2).使用另一种建模软件:

GoogleSketchUp7

,在SketchUp里用简单的色彩进行贴图,然后再将文件放入到3DMax中,转化为MESH格式的文件,为导入OGRE做准备。

11.导入OGRE时遇到的问题:

(1).在将模型导入OGRE后,模型变成全白色,只能分辨出汽车的轮廓。

解决方案:

在探索过程中,发现产生上述情况的原因有三种。

1)贴图时完全采用程序提供的色彩来进行贴图,由于OGRE不能识别3DMax自带的色彩信息,所以色彩信息就全部丢失,使得模型全部变成白色。

所以我重新用一些简单的图片来进行贴图,解决了问题;

2).在导入OGRE时,只导入了MESH格式,但是贴图的材质的信息是保存在material中的,由于没有将.material导入OGRE,使得材质信息丢失,所以使得模型变成了全白;

(2).导入OGRE的模型没有任何问题,但是还是无法导出。

仔细研究代码、查阅网上资料后发现,.material的文件名是不能有中文字符出现的,否则OGRE是无法辨认的,由于我一开始.material的文件名为“yangjun做的模型.material”,所以使得导入失败。

解决方案:

由于.material文件的文件名和.material文件内的文件内容是相关联的,所以单单改变.material的文件名是不能解决问题的,所以我不得不重新建模和贴图。

12.音效制作时的问题:

(1).游戏音效的基调把握不好。

由于本款游戏讲述的是两个小孩的赛车征途,但同时又是一款刺激的赛车游戏,所以在制作赛车游戏音效时,不能确定是要惊险刺激的效果还是略带童真的效果。

解决方案:

经小组成员的讨论决定,要一种带有时尚感的刺激的效果。

13.策划时问题:

(1).没有考虑实际情况,策划了过于复杂的游戏内容。

游戏策划前期是预期完成一款结合RPG和赛车的游戏,游戏中玩家可以选择自己所扮演的角色(Mickey或者是Jenny),然后根据所扮演的角色来进行比赛。

但到在游戏开发过程发现,实验角色扮演是有一定难度的,所以小组决定认真完成赛车游戏部分,而RPG的部分可以在以后的学习过程中加入进去。

(2).没有很好的细致地列出每周所需完成的任务,只是给出了一个大概内容,在后期总结了这一不足后认真布置每一周的作业,使得进度有很大的提升。

14.之前对这些制作都没有接触过,所以感觉学起来有点困难。

当中遇到了很多的问题,有的根据查阅资料或者网上的视频等资料解决了,但有的还是没有很好的解决。

刚开始是通过视频来熟悉软件。

最先做的是山坡加道路。

山体没有这样的模型,也没有相似的可以借鉴的网上相关内容,对于整个物体的实际尺寸也没有统一形成。

不知道该从何处入手做。

根据图书馆的相关书籍,里面介绍了简单山体的基本内容。

它是根据等高线来制作的。

用曲线画出大小不同的内外嵌套的闭合曲线来作为等高线,利用修改器中的松弛、网格平滑等效果对等高线做修饰,最后做成大致的山体模型。

而山脉中的道路,是仿室内设计的制作门的方法套过来的。

室内的门是利用二维几何体的绘制再转成三维物体。

先画一条简单的几何线,加上轮廓得到封闭的双线。

再根据地形的起伏变化将道路在山脉的布局慢慢调整,细节的地方可以在线上加点,一点一点细化,再利用挤出命令得到一条根据山脉地形起伏变化的道路。

如果是单一的简单的均匀材质,直接把材质贴上去就可以,它的真实度就挺好。

但是山体和道路要有真实感,贴图是需要复合的。

后来制作的一个山坡,它的贴图是用两种复合的材质。

调整两者的比例可以控制山体表面的真实效果。

每一种材质所贴的位置不同、所贴的数量不同都会影响到最后的效果。

这里山脉所贴的位置是漫反射颜色、高光颜色、高光级别以及凹凸处对其进行贴图,两种材质的贴图位置是相同的。

同时还需要一张黑白图片,后来发现另一种制作山脉的方法。

如果我们所制作的山脉的起伏是根据我们自己画等高线的方法(就是前面所提的方法),就不必在遮罩处贴上这张图片。

另外的制作山脉的方法就是利用这张黑白图片。

黑白图片会决定山脉的起伏,利用修改器中的一些列命令来制作山脉。

如果用的黑白图片做山体,就需要在遮罩处同时贴上这张图片。

再调整混合曲线,通过材质球来观察效果,从而得到我们所想要的那种贴图效果。

这样通过混合得到的贴图后的效果还行。

在山脉上可以看见土的那种效果,土与绿色植物相结合。

在山脉上加上树的效果。

沿山体的起伏分布树。

软件本身带了树的制作模型,但是它本身的模型比较粗糙,叶子都很简单,直接是长方形的叶子,如果不是要求精细的场景,这样的树也是可以直接使用的。

我们也可以根据自己的需要对其进行简单的修改。

比如,树叶的数量,枝干的多少等。

它也有好几类树木模型,针松、柳树以及一般的树。

制作树木也有好几类方法。

一种是可以根据立方体模型拼凑出树木,各种大大小小不同的立方体,等树木整体的基本造型完成后,再对其进行细化,立方体本身是棱角分明的,可以通过网格平滑等命令,使得其形象进一步接近树木。

再贴图来完成整棵树的制作。

还有一种方法,它也不是一种真正的三维制作方法,而是二维的,用于不是那么精细的场景制作中的。

它要准备两张树木的黑白图片,两张刚好相反的黑白区域,一张是树白,一张是树黑。

先在视图中建立一个弧形的线条得到弧形类似于墙面的单层体,将其中一张图片重复贴到弧形上,再将另一张树的贴图贴上,它的数目与前面图片的数目是相同的。

这样就可以得到简易的行道树,由近及远还可以根据自身需要对其进行设置得到更具真实感的图片。

当然,这类制作方法只能用于简单的场景制作。

对于要求较高的场景制作,是远远不能达到的。

贴图里面还有一个就是环境贴图。

只要在“渲染”—“环境”中将图片贴上,再拉进材质编辑器的材质球中即可。

但是环境贴图要跟我们所制作的场景相融合,就需要不断的调整,找到一个合适的角度才行。

极简单的草地可以直接对表面进行贴图。

也可以用二维转三维的方法。

利用修改器中的毛发功能来制作草地,草地的地表就比较重要,要形成草地的错落有致。

在制作草地的过程当中很关键的一步是对颜色的把握。

梢、根部分是用贴图,还有变异颜色和卷发参数等的设置来控制草的形状。

感觉赛道的制作挺困难的。

没有可以直接借鉴和参考的资料。

刚开始,是简单的用挤出等命令来做。

但是赛道是弯弯曲曲的,赛道旁边的景物也就要随着弯曲程度的不同而变化。

所以后来赛道的制作,参考了很多网上的资料。

14在利用3dsmax制作过程中遇到的问题:

1、不知道怎么样才能在造型上贴好材质,才能使效果图看起来不失真,有真实感。

不应该用100%的材质贴图,应该多用色彩调和,图片也要,现在的硬盘大,多装图片没关系。

还有必须要弄清楚贴图坐标的用法!

2、在PHOTOSHOP中处理的图像贴到3D中如何可做出立体效果?

将图应用到到置换贴图上,在贴图面版里有个displacement,选择bitmap,后,找些黑白的花纹贴上,然后赋给物体,然后在物体上加上一个displace,或者直接把黑白图贴到maps的bump里面,再赋给物体就可以得到简单的起伏变化了.

3、在渲染了后,已经增加了节点,但还是出现了大量的锯齿。

在渲染菜单底下选择SMOOTH项目。

1、蒙皮失效

在首次制作过程中出现了蒙皮失效的情况,之后经过仔细查找,发现由于体型模式按钮没有使用导致的。

以此认识到认真是必须的。

2、多动作的制作

经过细致的摸索,找到了多动作制作与分开导出的方法。

在OGREMAX中要对选中的动作模型,设置各个动作的起始,最终时间,这样就能在导出的mesh模型中调用各种动作。

3、动作质心问题

动作质心的移动和位置问题,一直都很严重。

但是始终未找到有效的解决办法。

目前的解决方式是手动修改质心的位置和移动距离。

4、场景导出贴图等问题

由于建模标准没有统一,各种命名问题等都会引起场景导出出错。

在以后的工作中,特别是多人合作的情况,必须要统一标准,统一命名。

5、不知道原由的破面,多加点少了点

为寻找出现这些问题的原因花费了不少时间,有时不得不因为找不到或者已经完全破坏无法修改时重新建一个,这时过程文件的保存就非常重要了。

就如在制作体育馆的模型时,我在制作过程中就边减少面,做到中间时发现了一个破面,找了很久都无法找到原因。

后来终于找到原因发现是因为在删面时多删掉了一个固定位置的点,导致附近的面无法形成。

6、3dmax中药高清楚视图的关系,把左视图和又视图弄反了会完全建错模型

7、建模的时候节约用面了,多边形,样条线要减少段数,这样会使渲染的速度加倍

8、为了能更方便精确的做出模型可以在视图中添加视口背景,匹配位图,这样移动模型的时候背景图就不会移动了,一般设置前视图和左视图,在透视图中对比来做

9、可以在材质编辑器中选择在视口中显示标准贴图,这样能更直观的观察贴图是否合适,如果要两面显示的话可以选择明暗器中的双面,双面在透视图中观察不到的,在渲染后可以观察出来

10、在可编辑多边形中可以选择点的环形或者循环,从而选中相关的点,这样比较方便不用一个一个点选中

11、3dmax中有可编辑多边形和可编辑网格,可编辑网格比较稳定,可编辑多边形本质上还是mesh但是修改的功能比可编辑网格要多很多。

12、做地图时遇到的问题主要是怎么做,不知道如何下手,后来在同学的帮助下,从网上下了几个别人做的场景模型,然后参照他们的做法,在一个平面上放东西,一层一层的叠上去。

做骨骼动画时,由于是看视频教程,讲的也比较仔细,没遇到什么大问题,就是做出来的动作不像,然后仔细观察了下走路或者跑步时的动作,做出来稍微能看了一下。

导到ogre里面后动作又不行了,感觉模型就是飘着走的或跑的。

还有就是关键帧之间会自动平滑,每一帧都有动作,因此有时候改关键帧时,动作之间会不平滑,不自然,尽量先想好在哪个地方需要关键帧,每一个关键帧大致是怎样的,尽量一次ok,同一个动作的第一帧跟最后一帧的动作需要一样。

模型不能太精细也不能太粗糙,太精细的话面太多会卡,但是太粗糙的话,蒙皮的时候不太好蒙,面少每个点的权值比较难衡量,很容易穿破面。

将动作导成mesh的时候老是出错,不是导出来没东西就是有中文名。

13、建模初期不知道如何添加人物参考图。

建立一个平面,赋予贴图,选择显示材质即可,但有的贴图在编辑界面会变得很不清晰。

14、从一个BOX开始加线,很慢很复杂。

使用涡轮平滑修改器,但是注意使用此修改器会大大增加模型的面数,不可多用,塌陷之后有时还需要删线。

15、浏览视窗时,模型会忽然缩得过小,然后就找不到模型了。

找到模型之后调出移动控制柄,依据它找到并放大模型(或直接在透视窗口右上点选房子图标即可)

16、贴图初期不会展UV,用UVW贴图修改器,选择圆柱模型后添加UVW展开,贴图展开分界线非常不平整

对于不该存在的边界,选中以后右键,点击选定缝合,这样就可以将绿色的边界转化为内在的线,离得较远表示同一根线的UV会自动移动过来。

17、不能将人物的头、身、手等部分UV放在同一张UVW贴图中导出

先用面级别模式,选中需要展成一张UV的面,点击分离,将它们分别分离,在面级别设置ID,然后分别展开。

18、建筑UV展分和人物区别较大,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1