使用blender对模型进行渲染


这是个人整理的关于使用blender对模型进行渲染的文档,目前写到了gltf,glb,ply等,包含自定义轨迹等的用法,除此之外其他的一些模型或用法相关部分尚未进行总结。


导入和调整模型文件

首先open一个新项目,删去这里的方块,找一个合适的模型,点击File→import→glb,gltf 这里选用了一个来自Sketchfeb的生锈汽车的glb模型

1

为了方便我们调试可以在右上角打开Material Preview,也就是第一个红框框住的地方

接着为了让我们正常渲染,点击右边collection目录下对应模型,然后按S来进行缩放,到这个程度大概就可以了,如果地图或者物体实在太大,可以调整渲染距离

2

调整渲染距离

需要修改两个地方的“结束点(End)”数值:

1. 修改 3D 视图的裁剪:

  • N 打开侧边栏 -> View 选项卡。

  • 找到 Clip StartEnd

  • End 的数值加个 0 或者改得很大(例如从 1000m 改为 10000m)。

2. 修改渲染相机的裁剪(为了渲染):

  • 选中你的相机对象

  • 在右侧属性面板,点击绿色摄像机图标。

  • 找到 Lens -> Clip StartEnd

  • 同样将 End 的数值改得非常大,直到模型完全显示

调整相机位姿

为了方便我们后续渲染帧和视频,需要控制相机初始位姿在一个合理的位置,按下数字0进入相机视角,然后使用shift + ~来进行操作,此时可以动态调整相机,WASD移动,QE上下移动,鼠标控制方向,调整合适后点击左键保留

3

相机轨迹

为了得到理想轨迹,这里以360度环拍为例,我们不调整相机,而是调整它的控制杆,shift A插入一个空物体empty,选择纯轴,Axis,就会在原点创建一个空物体,我们把体院的camera按住左键和shift拖到empty上,得到这样的结果

4

然后选中empty进行旋转,可以看到相机也在同步进行运动

5

调整光照

调整光照一般有两个方法,分别是:

方法一:调亮世界环境”(World)

这是最快让整个模型变亮的方法,相当于把阴天变成晴天。

  1. 在右侧属性面板,点击红色地球图标 (World Properties)。

  2. 找到 Color (颜色),把它往白色调(默认是很暗的灰色)。

  3. 找到 Strength (强度),将数值从 1.0 提高到 2.0 或更高,直到画面亮度满意。

    • _优点:_ 360度无死角变亮。

    • _缺点:_ 阴影会变淡,画面可能看起来比较“平”。

方法二:添加日光 (Sun Light)

如果你希望模型有明确的亮面和暗面(立体感),就像在太阳底下一样:

  1. 在 3D 视图按 Shift + A

  2. 选择 Light (灯光) -> Sun (日光)

  3. 调整方向: 选中太阳图标,按 R 键旋转它。

    • _注意:_ 日光的位置不重要,只有旋转角度会影响阴影的方向。
  4. 调整亮度:

    • 选中灯光,点击右侧属性面板的绿色灯泡图标 (Data)。

    • 增加 Strength (强度)。在 Eevee 引擎下可能 3-5 就很亮了;在 Cycles 引擎下可能依然是 1.0 就够,或者需要更高。

这里使用方法二,效果如下(为了让效果调整明显,可以选择render模式)

6

在下方Timeline选取关键帧,选择渲染120帧结束,第一帧Z轴旋转0度,第120帧选择Z轴旋转360度,都要选择空物体empty调整,输入完成后按I保存

7

8

在时间线窗口,全选所有关键帧(按 A,所有钻石点变黄)。按 T 键。选择 Linear (线性)。然后按一下空格键播放,应该是完美匀速旋转的。

9

选取其他帧可以看到是很完美的,比如第95帧的Z轴就是319度

10

视频输出

默认 F12 只是渲染图片,要渲染视频需要改设置:

  1. 点击右侧属性面板的打印机图标 (Output Properties)。

  2. Output (输出路径): 点击文件夹图标,选择一个保存视频的位置(比如桌面)。

  3. File Format (文件格式): 将默认的 PNG 改为 FFmpeg Video

  4. Encoding (编码): 点开它。

    • Container (容器) 选 MPEG-4

    • Output Quality (输出质量) 自行选择即可

    11

Ctrl + F12进行输出,可以看到正在渲染的动画,最后完美得到结果视频。

自定义相机轨迹

当需要自定义相机轨迹,比如让相机像过山车一样走曲线、拐弯、忽高忽低时,之前绑定空物体转圈的方法就不够用了,需要使用路径跟随(Follow Path)

可以理解成先在场景里铺设一条看不见的铁轨(曲线),然后把相机变成一辆矿车,让它死死地卡在铁轨上滑行

添加曲线

添加曲线:Shift + A -> Curve (曲线) -> Bezier (贝塞尔曲线)。场景中会出现一条橙色的小弯线。

初步调整: 这条线可能很小或是平躺在地上的。按 S 把它放大。按 G 把它移动到大概的位置(比如模型的上方或侧面)。

编辑曲线

  • 选中那条曲线,按 Tab 键进入编辑模式

  • 会看到曲线上有两个点,每个点都带着两根像“杠杆”一样的控制手柄

    • 移动点: 点击选中一个点,按 G 移动它。

    • 调整弯曲度: 点击选中杠杆末端的红点,按 GR(旋转)来改变曲线的弯曲形状。

  • 延长轨迹(重要):

    • 选中曲线最末端的一个点。

    • E (Extrude, 挤出) 键,移动鼠标,点击左键。这样就“长”出了新的一段路。

    • 重复按 E,画出您想要的复杂路径(S形、螺旋形都可以)。

  • _技巧:_ 建议先按 Numpad 7 在顶视图画好平面路径,然后再按 Numpad 13 在侧视图调整高低起伏。

  • 画好后,按 Tab 退回到物体模式

12

物体绑定

添加约束:

  • 选中相机。

  • 点击右侧属性面板的蓝色链条图标 (Object Constraint Properties)。

  • 点击 Add Object Constraint (添加物体约束),在第二栏选择 Follow Path (跟随路径)

设置目标:

  • 在约束面板里,点击 Target (目标) ,点击刚才画的那条贝塞尔曲线,在选择跟随曲线。

  • 此时,相机应该会瞬间跳到曲线的起点。

13

这时再点击上面图里的动画路径大按钮,按下空格就可以播放相机轨迹,这里我个人建议再按0从相机角度观察,可以及时调整轨迹

相机视角问题:

果勾选“Follow Curve”后,发现相机镜头不是朝前看,而是朝上或者横着看:

  • 在约束面板里调整 Forward Axis (前进轴)Up Axis (向上轴)

  • 通常的正确组合是:Forward 选 -Z (负Z),Up 选 Y。如果不因,就多试几个组合,直到相机视角在视图里看起来是正的。

控制速度

  • 选中贝塞尔曲线(注意是选曲线,不是选相机)。

  • 点击右侧绿色的曲线数据图标。

  • 找到 Path Animation (路径动画) 这一栏。

  • 调整 Frames (帧数) 的数值(调整完成后一定要改变渲染终点,比如我改成200帧,就需要设置结束帧到200)。

    • 默认是 100。如果想让它走慢点,就改成 200 或 300。(数值越大,走完全程花的时间越长,速度越慢)。

14

最后选择跟之前一样输出,就可以得到结果了。

细分曲线

如果相机在拐弯时很生硬或者抖动,通常是因为曲线上的点太少了。

  • 选中曲线进入编辑模式 (Tab)。

  • 全选所有点 (A)。

  • 右键 -> Subdivide (细分)

  • 这会增加更多控制点,让路径变得更圆润平滑。

关于点云文件的渲染(这里以ply为例)

我从The Stanford 3D Scanning Repository中下载了一个ply模型,导入进来仍然是选中后用S进行一些缩放,知道可以正常看见为止,随后如下操作

15将几何节点部分的结构做成这样(添加立方体,实例化于点上,实现实例),也就是把原来每个点做成立方体进行渲染,注意最后一个框中可以调节立方体大小,太小则不会相连导致有空洞,太大就会纹理不清晰

随后在着色部分进行操作,由于Stanford提供的文件就是纯白色的点云建模,没有纹理特征,所以添加节点完成后大概就是这样

16

注意这里的框住的矢量缩放可以不加,因为颜色渐变 节点只处理 0 到 1 之间的数值。如果你的模型坐标是 (10, 10, 10),这三个数都大于 1,在颜色渐变里就会被判定为“超级白”,导致整个模型也是白的,所以有些时候是必要的

也可以在这里自己选择纹理进行绘制,但是和渲染关系就不大了

17

实际上一般情况下做完几何节点和着色两步之后就会成为一个3D模型,像glb和gltf一样可以进行之前说到的相机轨迹定制操作了。

动态物体渲染

这就是一些技巧性的东西,把静态的渲染糅合一下就有了,比如说渲染一个车在路上走,然后我们拍摄这辆车

相机固定观察物体的某一视角

如果相机绑定在车上,我们就只需要让车走,比如说场景不动,让车走一个轨迹,把车和Camera像之前固定空物体和camera一样绑定起来,给车加一个贝塞尔曲线轨迹约束就好了

简单来说就是绑定相机和物体,给物体加轨迹

物体以一条曲线走,相机以另一个视角拍摄

这个就是给相机和车分别加贝塞尔曲线约束,但是有一点不一样就是相机虽然移动了,但它可能看着其他地方,需要再给相机加一个约束,Track To (标准跟随),设置 Target(目标) 为车(可能得调一下轴向,需要具体分析),然后就可以实现这个功能。

有一个小问题是关于两者的速度,因为两条线的默认时长可能都是 100 帧,但它们的长度不一样。我们就需要调整两条贝塞尔曲线的帧率来实现想要的效果。

如果觉得track to车的画面太死板的话可以在车旁边建一个空物体,把这个空物体绑到车上,然后track to这个空物体。


文章作者: Chen Zhou
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chen Zhou !
  目录