Blender是一個強大的3D建模工具,他提供了很是強大的Python API,能夠用來學習3D編程,還能夠用來開發遊戲。 要注意的是,Blender有兩套Python API,一套是用來調用Blender自身的功能,一套是用來調用BGE的功能(作遊戲開發)。我在這裏僅僅介紹調用Blender自身功能的API。
我在麥子學院學習的時候老師曾說過,經過例子來入門是初學者最好的學習方法。我先舉個例子:使用Blender的Python API來作3D模型的自動化渲染。 編程
下面這段腳本很是簡單直觀,
1. 首先,獲得要渲染場景的context,並將渲染輸出文件格式設置爲PNG。
2. 加載一個圖片。
3. 經過名稱(ID)「tex001」找到一個texture,,將該texture使用的圖片設置爲剛纔加載的圖片。
4. 遍歷3D模型中全部的camera,使用每一個camera來作渲染。
工具
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.blend爲Blender的3D模型)
執行以後,渲染結果將保存在設置的目錄中。
Blender的Python API很是強大,除了這個例子展現的這些基本功能外,還完整封裝了OpenGL的功能(Blender是徹底基於OpenGL開發的)。使用Blender的Python API來學習3D編程,是一條很好的途徑。