浏览 19734 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-02
最后修改:2009-04-02
http://www.iteye.com/topic/322929 Blender提供了非常强大的Python API,可以用来学习3D编程,还可以用来开发游戏。 要注意的是,Blender有两套Python API,一套是用来调用Blender自身的功能,一套是用来调用BGE的功能(做游戏开发)。我在这里仅仅介绍调用Blender自身功能的API。 通过例子来入门是初学者最好的学习方法,我先举个例子:使用Blender的Python API来做3D模型的自动化渲染。 from Blender import Object, Scene, Texture, Image scene = Scene.GetCurrent() context = scene.getRenderingContext() context.setImageType(Scene.Render.PNG) render_dir = "D:/WORK/blender/render" img = Image.Load('D:/WORK/blender/pictures/111.jpg') texture = Texture.Get('tex001') texture.type = Texture.Types.IMAGE texture.image = img cameras = [obj for obj in scene.objects if obj.getType()=='Camera'] for index, camera in enumerate(cameras): print '\tRendering %i of %i cameras.' % (index+1, len(cameras)) context.setRenderPath('%s/%s_' % (render_dir, camera.name)) scene.setCurrentCamera(camera) context.render() print 'Done per camera render' 这段脚本非常简单直观, 1. 首先,得到要渲染场景的context,并将渲染输出文件格式设置为PNG。 2. 加载一个图片。 3. 通过名称(ID)“tex001”找到一个texture,,将该texture使用的图片设置为刚才加载的图片。 4. 遍历3D模型中所有的camera,使用每个camera来做渲染。 将这段脚本保存为render.py,然后执行这段脚本: blender -b xxx.blend -P render.py (xxx.blend为Blender的3D模型) 执行之后,渲染结果将保存在设置的目录中。 Blender的Python API非常强大,除了这个例子展示的这些基本功能外,还完整封装了OpenGL的功能(Blender是完全基于OpenGL开发的)。使用Blender的Python API来学习3D编程,是一条很好的途径。 Blender Python API相关文档: HTML格式的API文档: http://www.blender.org/documentation/248PythonDoc/index.html PDF格式的API文档: http://www.letworyinteractive.com/pdfs/pythondoc_246_20080905.pdf Blender 3D: Blending Into Python/Cookbook: http://en.wikibooks.org/wiki/Blender_3D:_Blending_Into_Python/Cookbook Python Scripting: http://wiki.blender.org/index.php/Extensions:Py/Scripts 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-02
最后修改:2009-04-02
ray_linn 写道 这个我很早就在applet里干过了.....
我发这个帖,并不是为了证明我牛x,只是想吸引一些人对Blender产生兴趣。你发帖的意图很明显,急于想证明你确实牛x。 你的发言一向不喜欢提供证据,即使我很不情愿地承认你确实牛x,你的大多数发言还是毫无营养可言。 感觉你不仅牛x,而且还很无极。 |
|
返回顶楼 | |
发表时间:2009-04-02
这个和 applet 用法不是一回事
maya max xsi 这些软件都支持程序脚本 maya也用python 目的是增强一些功能,常用来作一些特殊材质和动画,图形界面操作有他的局限性 程序脚本是很好的补充,国内现在也有一些人用这些脚本开发辅助插件 |
|
返回顶楼 | |
发表时间:2009-04-02
剑事 写道 这个和 applet 用法不是一回事
maya max xsi 这些软件都支持程序脚本 maya也用python 目的是增强一些功能,常用来作一些特殊材质和动画,图形界面操作有他的局限性 程序脚本是很好的补充,国内现在也有一些人用这些脚本开发辅助插件 applet的用法是可以把3D max或者maya开发图形展示给客户,允许客户online更换材质。比如一个杯子,我可以展示红、黄、蓝、大理石等等不同的色泽。 这样是不是更有商业意义? 至于dlee,就不说了,不就是分数高么?爱投隐藏就投去呗。 |
|
返回顶楼 | |
发表时间:2009-04-02
最后修改:2009-04-02
ray_linn 写道 剑事 写道 这个和 applet 用法不是一回事
maya max xsi 这些软件都支持程序脚本 maya也用python 目的是增强一些功能,常用来作一些特殊材质和动画,图形界面操作有他的局限性 程序脚本是很好的补充,国内现在也有一些人用这些脚本开发辅助插件 applet的用法是可以把3D max或者maya开发图形展示给客户,允许客户online更换材质。比如一个杯子,我可以展示红、黄、蓝、大理石等等不同的色泽。 这样是不是更有商业意义? 至于dlee,就不说了,不就是分数高么?爱投隐藏就投去呗。 用途不一样,比如渲染成动画片视频,一般都是实现一些比较复杂的功能效果而且是结合3D软件一起跑的,设计到坐标贴图,动力学模拟,IK ,毛发等好多东西。程序脚本是辅助实现,作脚本擅长的功能部分。 applet是拿3D模型作类似展示,带交互功能,但功能不强效果比较简陋。 以前win98时代jre默认安装在系统里 web上正好可以applet作3D全景展示,比其它软件都方便,XP 之后大家都平等了 applet效果又一般,和其它几个比就比下来了 |
|
返回顶楼 | |
发表时间:2009-04-02
最后修改:2009-04-02
剑事 写道 用途不一样,比如渲染成动画片视频,一般都是实现一些比较复杂的功能效果而且是结合3D软件一起跑的,设计到坐标贴图,动力学模拟,IK ,毛发等好多东西。程序脚本是辅助实现,作脚本擅长的功能部分。
是啊,再往高端做还有render farm,3ds Max/Blender都可以作为render farm的节点来做渲染。render farm在游戏工业和电影工业中应用得很广泛,有巨大的商业价值。 ray_linn 写道 至于dlee,就不说了,不就是分数高么?爱投隐藏就投去呗。
你看,又武断了吧。其实我对你的所有发言从来都没有投过隐藏。 |
|
返回顶楼 | |
发表时间:2009-04-05
hmm....最近正在研究opengl中,,dlee老大的东西 可以参考参考。
|
|
返回顶楼 | |