Blender用python脚本自动渲染3D模型的各个视角的2D图像

该Python脚本主要用于Blender环境中,通过自动化的方式为3D模型渲染多个不同视角的2D图像。它定义了不同的相机位置,包括固定视角和连续视角,调整渲染设置,如图像大小,并将渲染结果保存到指定目录。脚本还包含了模型加载、相机定位、渲染和图像保存等功能。

Blender用python脚本自动渲染3D模型的各个视角的2D图像

import bpy
import os.path
import math
import sys
import os
import csv
from random import sample
#file_path = 'D:/3D-FUTURE-model/final_choosed_FUTURE_chairs_text_caption_clear.csv'
#file_list = []
#with open(file_path, 'r') as r:
#    reader = csv.reader(r)
#    for row in reader:
#        file_name = row[0]
#        file_name = file_name.split('_')[0]
#        if file_name not in file_list:
#            file_list.append(file_name)
 
C = bpy.context
D = bpy.data
scene = D.scenes['Scene']


#inters =[i for i in range(48,72)] # [i for i in range(0,24)]#+
#fixed_views = [i for i in range(40,70)]
 
# cameras: a list of camera positions
# a camera position is defined by two parameters: (theta, phi),
# where we fix the "r" of (r, theta, phi) in spherical coordinate system.
 
# 5个固定视角:前 右 后 左 上
# cameras = [(60, 0), (60, 90), (60, 180), (60, 270),(0, 0)]
 
# 连续视角:固定某一个角度,然后环视3D物体,环视角度间隔inter=30度
fixed_view = 60
inter = 12
cameras = [(fixed_view, i) for i in range(0, 360, inter)] # 这会生成360/12=30个视角图片
render_setting = scene.render
 
# 输出图像大小 (W, H)
w = 224
h = 224
render_setting.resolution_x = w*2
render_setting.resolution_y = h*2

haved_folder = os.listdir('E:\\objaverse\\imgs\\')
count = 1
'''****************************************************************'''


def main(count):
    
    root_dir = 'E:\\objaverse\\objaverse\\'
    #for i,dir in enumerate(os.listdir(root_dir)[3736:4736]):
    for i,dir in enumerate(os.listdir(root_dir)):
    #for i,dir in enumerate(file_list):
#        inter = sample(inters, 20)
#        fixed_view = sample(fixed_views, 20)
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值