- 帖子
- 75
- 精华
- 1
- 积分
- 373
- 阅读权限
- 30
- 注册时间
- 2013-12-20
- 最后登录
- 2015-6-24
|
先上代码:- import sys
- sys.path.insert(0,'..')
- import PythonOgreConfig
- import ogre.renderer.OGRE as ogre
- import SampleFramework as sf
- class Tutorial(sf.Application):
- def _createScene(self):
- camera=self.camera
- sceneManager=self.sceneManager
- entity=sceneManager.createEntity("robot","robot.mesh")
- sceneManager.getRootSceneNode().createChildSceneNode(ogre.Vector3(0,0,0)).attachObject(entity)
- light = sceneManager.createLight('BlueLight')
- light.setPosition (-200, -80, -100)
- light.setDiffuseColour (ogre.ColourValue(0.5, 0.5, 1.0) )
- light = sceneManager.createLight('GreenLight')
- light.setPosition (0, 0, -100)
- light.setDiffuseColour (0.5, 1.0, 0.5)
- camera.setPosition (100, 50, 100)
- camera.lookAt(-50, 50, 0)
- if __name__=='__main__':
- ta=Tutorial()
- ta.go()
复制代码 运行效果:
PyOgre是一个非盈利性的组织开发的第三方开发库,使得python能够使用OGRE这个开源图形渲染引擎进行开发一些3D应用程序。关于这个模块,网上的资料少得可怜,pyogre的官方倒是提供了一个文档,但是这个文档晦涩难懂,不适合初学者。那么我就根据我这么长时间接触这个模块的经验来给大家做一介绍。
一、安装
pyogre的原下载地址已经无法使用,其项目移到了SourceForge,大家可以参考这个网址http://sourceforge.net/projects/python-ogre/
pyogre支持的版本很广,但只有python 2.5有msi格式的安装包,其余版本几乎都是源码包,
msi格式的安装包:之一.http://sourceforge.net/projects/python-ogre/files/Historic%20Releases/1.6.1/ 之二.http://sourceforge.net/projects/python-ogre/files/Historic%20Releases/1.6.0/
msi格式的安装包我就不细说了,很简单,一路next就行了,主要是说一下源码包,下载源码包时,注意看右侧有一个小窗口,显示的是下载量,最好选下载量大的,比如我这里下载的是ogre-1.7.2-r1131M-py-2.7.7z。解压到一个文件夹,最好在C盘与python文件夹同级,当然不同级也无所谓,下载之后,按“WIN+R”键调出运行框,键入cmd打开命令提示符,切换到刚才解压后的pyogre文件夹,比如D:\PyOgre,然后在提示符后键入"python setup.py install",等待一段时间后,安装完毕,就可以进行pyogre编程之旅了。
二、配置
pyogre的配置不比c++/ogre配置复杂,安装完毕之后就可以使用了,只不过注意一点就是编写好的python文件最好放在pyogre的demo里的某个目录里,比如我这里放的就是bullet这个文件夹,放在其他文件夹,有时候会提示找不到文件。
三、开发流程
由于python不似c++有指针,python是一种面向类、面向对象的语言,因此就没有什么指针,更没有指针操作符。但是基本的思想是不变的,在pyogre里,为简化开发,有一个被称为“SampleFramework”的基础应用程序框架,开发的时候只需导入这个框架再重写createScene等其它函数就可以了
在pyogre里,所有的应用程序都继承自SampleFramework的Application类,并且还需重新定义那里面的成员函数,譬如_createScene(void),与c++一样,在createScene里定义模型、节点树并挂接到节点上
希望这篇文章能对大家有一点小小的帮助
|
|