使用Python和Blender來學習3D編程


Blender是一個強大的3D建模工具,他提供了很是強大的Python API,能夠用來學習3D編程,還能夠用來開發遊戲。 要注意的是,Blender有兩套Python API,一套是用來調用Blender自身的功能,一套是用來調用BGE的功能(作遊戲開發)。我在這裏僅僅介紹調用Blender自身功能的API 

我在麥子學院學習的時候老師曾說過,經過例子來入門是初學者最好的學習方法。我先舉個例子:使用BlenderPython API來作3D模型的自動化渲染。 編程

 

下面這段腳本很是簡單直觀, 
1.
首先,獲得要渲染場景的context,並將渲染輸出文件格式設置爲PNG 
2.
加載一個圖片。 
3.
經過名稱(ID「tex001」找到一個texture,,將該texture使用的圖片設置爲剛纔加載的圖片。 
4.
遍歷3D模型中全部的camera,使用每一個camera來作渲染。 

工具

Python代碼  學習

1.  from Blender import Object, Scene, Texture, Image  spa

2.    orm

3.  scene = Scene.GetCurrent()  遊戲

4.  context = scene.getRenderingContext()  圖片

5.  context.setImageType(Scene.Render.PNG)  遊戲開發

6.    開發

7.  render_dir = "D:/WORK/blender/render"  get

8.    

9.  img = Image.Load('D:/WORK/blender/pictures/111.jpg')  

10.   

11. texture = Texture.Get('tex001')  

12. texture.type = Texture.Types.IMAGE  

13. texture.image = img  

14.   

15. cameras = [obj for obj in scene.objects if obj.getType()=='Camera']  

16. for index, camera in enumerate(cameras):  

17.     print '\tRendering %i of %i cameras.' % (index+1, len(cameras))  

18.     context.setRenderPath('%s/%s_' % (render_dir, camera.name))   

19.     scene.setCurrentCamera(camera)  

20.     context.render()  

21.   

22. print 'Done per camera render'  



將這段腳本保存爲render.py,而後執行這段腳本: 
blender -b xxx.blend -P render.py
 
xxx.blendBlender3D模型) 
執行以後,渲染結果將保存在設置的目錄中。 

Blender
Python API很是強大,除了這個例子展現的這些基本功能外,還完整封裝了OpenGL的功能(Blender是徹底基於OpenGL開發的)。使用BlenderPython API來學習3D編程,是一條很好的途徑。

相關文章
相關標籤/搜索