BlenderProc2使用过程记录

本文介绍了BlenderProc2的安装和环境配置过程,包括使用anaconda创建虚拟环境、通过pip安装BlenderProc2、编写quickstart.py脚本进行测试,以及如何在IDE中进行断点调试。文章还提到了BlenderProc2的两种运行模式和Blender的debugUI。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一篇 BlenderPrc2安装以及环境配置



前言

该系列记录了如何用Blenderpro来构建自己的场景数据集,从环境搭建到后期构建数据集的整个流程

本文章是第一部分,BlenderPrc2的安装以及环境配置

部分参考https://blog.csdn.net/weixin_49521551/article/details/121573334
官方文档https://dlr-rm.github.io/BlenderProc/


一、Blenderpro是什么?

一个用于真实感渲染的程序性 Blender pipeline。

二、使用步骤

1.创建虚拟环境

为了方便日后的环境管理,我们在anaconda新建一个虚拟环境进行Blenderproc的安装,anaconda安装过程略,新环境命令如下:

conda create -n blender python=3.7  # blender处为你的虚拟环境名称
conda activate blender

2.安装Blenderproc(这一步直接按github官方教程走)

blenderproc的安装有两种方式,第一种是通过github安装,再这里我们使用更简便的方式,在虚拟环境下直接执行
代码如下:

pip install Blenderproc

安装结束后我们根据官方文档,先编写一个quickstart.py的python脚本,内容如下:

import blenderproc as bproc
import numpy as np

bproc.init()

# Create a simple object:
obj = bproc.object.create_primitive("MONKEY")

# Create a point light next to it
light = bproc.types.Light()
light.set_location([2, -2, 0])
light.set_energy(300)

# Set the camera to be in front of the object
cam_pose = bproc.math.build_transformation_mat([0, -5, 0], [np.pi / 2, 0, 0])
bproc.camera.add_camera_pose(cam_pose)

# Render the scene
data = bproc.renderer.render()

# Write the rendering into an hdf5 file
bproc.writer.write_hdf5("output/", data)

之后终端执行命令:

blenderproc run quickstart.py

第一次运行会安装blender和所需要的一些库,包括Imageio库(不用管),运行之后在目录下会有0.dhf5的文件生成,如图
在这里插入图片描述![
此时终端运行:

blenderproc vis hdf5 output/0.hdf5

即可将结果进行可视化,结果如图:
在这里插入图片描述
到这一步,blenderproc的环境安装配置也就完成了,更多的基础示例可以下载github项目工程并参照示例进行。
注:
blenderproc的运行有两种模式

一种是通过设置python脚本运行(github项目工程主目录下运行)

blenderproc run examples/basics/basic/main.py examples/resources/camera_positions examples/resources/scene.obj examples/basics/basic/output

另一种则是通过配置yaml文件进行运行

blenderproc run examples/basics/basic/config.yaml examples/resources/camera_positions examples/resources/scene.obj examples/basics/basic/output

两种方法大同小异,不过官方建议使用第一种方法,并且通过配置yaml文件运行的方法会在之后被移除。
另外,Blender 还有自己的debug UI, 如图所示

只需运行如下代码:

blenderproc debug quickstart.py

现在打开 Blender UI,选择脚本选项卡并加载正确的脚本。要启动 BlenderProc pipeline,现在只需按 RunBlenderProc 。
与正常模式一样,print 语句仍然打印到终端。
pipeline可以运行多次,因为在每次运行的开始,场景都会被清除。

3.IDE 中的断点调试

由于 blenderproc 运行在独立的 python 环境中,因此调试 blenderproc 脚本的方法不能与调试其他 python 脚本的方法相同。
因此,远程调试是必要的,这里以pycharm pro 为例:
首先点击 Edit Configurations
然后点击左上角的加号,新建一个Python Debug Server,如下图所示
在这里插入图片描述
然后在服务器的虚拟环境中运行如下代码:
(需根据窗口中显示的选择符合自己配置的版本号,我这里是213.7172.26)

pip install pydevd-pycharm~=213.7172.26

然后,将以下代码添加到要调试的 blenderproc 脚本的顶部(在import之后)。

import pydevd_pycharm
pydevd_pycharm.settrace('localhost', port=$SERVER_PORT, stdoutToServer=True, stderrToServer=True)

然后,首先在 PyCharm 中运行 Python Debug Server 配置,然后像往常一样通过 CLI 运行 blenderproc 脚本。
PyCharm 就可以进入调试模式,停止下一行代码。现在就可以添加断点并逐步执行。


总结

以上就是第一部分,主要是BlenderProc2的安装以及环境配置。

### BlenderProc 3D 场景生成和渲染工具 BlenderProc 是一款基于 Blender 的开源框架,专为计算机视觉研究设计,能够用于合成逼真的 RGB-D 图像以及相应的标注数据。该工具支持复杂的场景创建、物体放置、光照设置等功能。 #### 安装与配置 为了使用 BlenderProc 进行 3D 场景生成和渲染,需先安装 Python 和 Blender,并通过 pip 安装 BlenderProc 库: ```bash pip install blenderproc ``` 接着可以下载并解压对应版本的 Blender 软件包至本地环境。 #### 创建基本场景 下面是一个简单的例子来展示如何用 BlenderProc 构建基础场景并执行渲染操作: ```python import bpy from mathutils import Vector, Matrix from blenderproc.python.types.MeshObjectUtility import create_mesh_object_from_pydata # 设置相机位置 camera_location = [0, -5, 2] bpy.ops.object.camera_add(location=camera_location) # 添加光源 light_data = bpy.data.lights.new(name="Light", type='SUN') light_obj = bpy.data.objects.new(name="Sun", object_data=light_data) bpy.context.collection.objects.link(light_obj) # 放置立方体作为测试对象 vertices = [[-1,-1,-1], [-1,-1,1],[-1,1,-1],[-1,1,1],[1,-1,-1],[1,-1,1],[1,1,-1],[1,1,1]] faces = [[0,1,3,2], [4,5,7,6], [0,2,6,4], [1,5,7,3], [0,1,5,4], [2,3,7,6]] cube = create_mesh_object_from_pydata(vertices, [], faces) cube.location = Vector([0, 0, 0]) # 渲染图像 output_path = "./render_result.png" bpy.context.scene.render.filepath = output_path bpy.ops.render.render(write_still=True) ``` 此脚本定义了一个简单的工作流程:初始化摄像机视角;引入太阳灯模拟自然光效果;构建一个由顶点坐标构成的基础几何形状——正方体;最后指定输出路径保存渲染后的图片文件[^1]。 #### 高级功能拓展 对于更复杂的应用需求,比如大规模城市景观或者室内布局仿真,则可能涉及到更多高级特性如材质贴图应用、物理属性设定等。这些都可以借助于 Blender 自带的强大编辑能力实现自动化处理。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值