2013-02-20 44 views
18

Tôi đang cố gắng hiển thị và lưu nhiều hình ảnh thông qua tập lệnh python trong máy xay sinh tố. Tôi biết làm thế nào để render và lưu hình ảnh thông qua giao diện đồ họa nhưng tôi muốn làm tất cả thông qua kịch bản của tôi kể từ khi tôi đang sử dụng một tập hợp các vòng lồng nhau và cần phải lưu nhiều hình ảnh. Tôi có thể hiển thị hình ảnh và tôi đoán lưu hình ảnh với đầu ra thành công. Nhưng tôi không chắc chắn nơi nó tiết kiệm và khi tôi cố gắng chỉnh sửa filepath nó mang lại cho tôi lỗi của bối cảnh không chính xác.hiển thị và lưu hình ảnh thông qua Blender python

Trả lời

7

một cái gì đó như thế này:

import bpy 

bpy.context.scene.render.filepath = 'pathToOutputImage' 
bpy.context.scene.render.resolution_x = w #perhaps set resolution in code 
bpy.context.scene.render.resolution_y = h 
bpy.ops.render.render() 
+5

Nếu không có 'write_still = True' làm thông số cho trình tạo hàm chức năng 'render()' không tạo hình ảnh trong trường hợp của tôi. – tobltobs

20

đây những gì tôi đã làm trong Blender 2.63:

bpy.data.scenes['Scene'].render.filepath = '/home/user/Documents/image.jpg' 
bpy.ops.render.render(write_still=True) 

gì tôi đang làm là tạo ra một bức tranh toàn cảnh VR (một loạt các bức ảnh một đối tượng xung quanh nó). Và tôi kết thúc với thuật toán này:

  1. tạo hoặc tải một đối tượng bạn đang đi để chụp của
  2. quy mô nó và thực hiện một số ánh sáng đẹp; kiểm tra ánh sáng với render cảnh (sử dụng F12 key)
  3. tạo ra một nút Empty và thiết lập vị trí và luân chuyển của nó để nhận dạng (vị trí: 0, 0, 0, luân chuyển: 0, 0, 0)
  4. thiết xem máy ảnh của bạn đến vị trí bắt đầu (hãy kiểm tra lại bằng cách hiển thị lại)
  5. chạy tập lệnh!

Bạn sẽ kết thúc với step_count ảnh xung quanh đối tượng của mình trong thư mục /home/user/VR.

cam = bpy.data.objects['Camera'] 
origin = bpy.data.objects['Empty'] 

step_count = 32 

for step in range(0, step_count): 
    origin.rotation_euler[2] = radians(step * (360.0/step_count)) 

    bpy.data.scenes["Scene"].render.filepath = '/home/user/VR/vr_shot_%d.jpg' % step 
    bpy.ops.render.render(write_still=True) 
+0

Tự hỏi tại sao 'write_still = True' quá quan trọng đến mức bạn không có một hình ảnh được lưu mà không có nó. –

+1

@SibbsGambling Tôi nghĩ rằng đó là vì Blender cũng có tùy chọn để hiển thị hình ảnh xem trước (giống như khi bạn nhấn F12). Vì vậy, thực sự tiết kiệm render như một hình ảnh tĩnh là một phần tùy chọn. –