利用blender实现截取模型六视图

import bpy
from mathutils import Matrix, Vector

import numpy as np
import math
resolution = 1024

# 引擎设置
scene = bpy.data.scenes["Scene"]
scene.camera.data.type = 'ORTHO'
scene.camera.location = 5 * Vector([1, 0, 0])
scene.render.resolution_x = resolution
scene.render.resolution_y = resolution

scene.render.engine = 'BLENDER_WORKBENCH'

scene.display.shading.light = 'MATCAP'
scene.display.shading.color_type = 'SINGLE'
scene.display.shading.single_color = (1, 0.068478, 0.0578055)
scene.display.shading.show_cavity = True
scene.display.shading.cavity_ridge_factor = 1
scene.display.shading.cavity_valley_factor = 1
scene.view_settings.exposure = 1

# 背景设置
bpy.context.scene.world.color = (1, 1, 1)

bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.select_by_type(type='MESH')
bpy.ops.object.delete(use_global=False)

bpy.ops.object.select_by_type(type='LIGHT')
bpy.ops.object.delete(use_global=False)



obj_path = "obj模型路径"
im_dir = "保存路径"

bpy.ops.import_scene.obj(filepath=obj_path)

bpy.ops.object.select_by_type(type='MESH')

meshes = [object for object in bpy.data.objects if object.type == 'MESH']
obj = meshes[0]

# scale mesh
factor = 3/max([np.linalg.norm(x.co) for x in obj.data.vertices.values()])
bpy.ops.transform.resize(value=(factor, factor, factor))

bpy.ops.object.origin_set(type='ORIGIN_CENTER_OF_MASS')
obj.location = [0, 0, 0]

# set_tracking
cns = scene.camera.constraints.new('TRACK_TO')
cns.target = obj
cns.track_axis = 'TRACK_NEGATIVE_Z'
cns.up_axis = 'UP_Y'


location = [(0,5,0),(0,-5,0),(5,0,0),(-5,0,0),(0,0,5),(0,0,-5)]

for i in range(6):
    scene.camera.location = location[i]
    img_path = os.path.join(im_dir,C_" + str(i) + ".jpg")
    bpy.data.scenes["Scene"].render.filepath = img_path
    bpy.data.scenes["Scene"].render.image_settings.file_format = 'JPEG'
    bpy.ops.render.render(write_still=True)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值