汐星の部落格

Desmos Bezier Renderer安装&使用指南

大纲
  1. 1. Demo
  2. 2. 安装Ubuntu
    1. 2.1. 创建虚拟机
    2. 2.2. 安装操作系统
    3. 2.3. 配置操作系统
  3. 3. 安装Desmos Bezier Renderer
  4. 4. 使用SMB在虚拟机和Windows主机之间传输文件
    1. 4.1. 在主机创建SMB共享文件夹
    2. 4.2. 在Ubuntu虚拟机上连接到SMB服务器
  5. 5. 准备渲染素材
    1. 5.1. 单张图片文件处理
    2. 5.2. 视频文件处理
      1. 5.2.1. 处理视频素材
      2. 5.2.2. 分解视频素材
  6. 6. 使用Desmos Bezier Renderer渲染
    1. 6.1. 重启虚拟机恢复运行
  7. 7. 处理渲染后的文件
    1. 7.1. 单张图片文件
    2. 7.2. 视频文件
      1. 7.2.1. 合成渲染文件
      2. 7.2.2. 合成视频文件
  8. 8. 常见问题
    1. 8.1. 无法连接网络
    2. 8.2. 查找Ubuntu上的用户名
    3. 8.3. 自定义渲染后的图像大小
    4. 8.4. 隐藏网格
    5. 8.5. 自动同意EULA
    6. 8.6. 渲染中断

项目地址:Desmos Bezier Renderer
参考文章:Installation and Usage Guide for Desmos Bezier Renderer on Windows with WSL

本篇文章使用VMware workstation部署虚拟机

Demo

安装Ubuntu

创建虚拟机

安装操作系统

配置操作系统

安装Desmos Bezier Renderer

sudo apt update

这里会要求你输入安装操作系统时填写的密码,终端不会显现输入的字符

sudo apt install git python3.10-dev python3-pip python3.10-venv build-essential libagg-dev libpotrace-dev pkg-config ffmpeg

输入Y,按下回车键确认

git clone https://github.com/kevinjycui/DesmosBezierRenderer.git
python3 -m venv env
. env/bin/activate

执行完成后,终端前面出现(env)代表执行成功

pip install wheel
pip install -r requirements.txt

使用SMB在虚拟机和Windows主机之间传输文件

在主机创建SMB共享文件夹

请不要在不信任的网络环境下开启SMB共享,若需要,请限制可访问SMB共享文件夹的用户数量(>2)

在Ubuntu虚拟机上连接到SMB服务器

准备渲染素材

单张图片文件处理

视频文件处理

处理视频素材

分解视频素材

完整命令示例

ffmpeg -i 'example.mp4' -vf "fps=30.0" "frames/frame%d.png"

使用Desmos Bezier Renderer渲染

. env/bin/activate
python3 backend.py -d

后面加上-d会自动下载渲染后的图片到下载文件夹,注意提前清空下载文件夹
注意输入Y并按下回车同意EULA

重启虚拟机恢复运行

部署完整套系统,下次运行只需要输入这两条命令即可

. env/bin/activate
python3 backend.py -d

处理渲染后的文件

单张图片文件

若在渲染时启用了-d参数,你可以在下载文件夹找到渲染后的图片,将其复制到SMB共享文件夹即可在Windows主机上的SMB共享文件夹内找到

视频文件

合成渲染文件

确保在渲染时启用了-d参数,最终合成视频分辨率取决于你渲染时设定的分辨率

ffmpeg -r 视频帧数 -f image2 -i frame-%05d.png output.mp4

合成视频文件

常见问题

无法连接网络

配置网络代理或查看这篇文章通过Clash在局域网设备上配置代理

查找Ubuntu上的用户名

任意位置打开终端,@字符前面的就是你的用户名
例如blog-test@ubuntu-blogblog-test就是你的用户名

自定义渲染后的图像大小

在这条命令python3 backend.py后面加上--size <宽><高>
例如python3 backend.py --size 1920x1080
如果渲染画面出现不正确的拉伸,请不要添加这条参数,并直接修改Ubuntu设置里的显示屏分辨率
在渲染时将浏览器窗口最大化,这样他渲染的画面就是你设置的显示屏分辨率

若实在是要输出高分辨率,请修改Ubuntu设置的显示屏分辨率为目标渲染分辨率的整数倍,并在渲染时最大化浏览器窗口
例如需要输出3840x2160的画面,修改显示屏分辨率为1920x1080,并且最大化浏览器窗口,然后开始渲染

隐藏网格

在这条命令python3 backend.py后面加上-g

自动同意EULA

在这条命令python3 backend.py后面加上--yes

python3 backend.py后面可以同时添加多条参数,注意使用空格分开
命令参考

python3 backend.py -d -g --yes --size 2560x1440

渲染中断

当需要渲染帧较多,而虚拟机配置的内存较少时,可能出现渲染中断的情况
具体表现为共600帧画面,实际渲染到450帧时浏览器出现崩溃,下载文件夹也中断到第450帧

解决方案,在渲染器终端按下Ctrl+C终止渲染器运行
重启浏览器和渲染器,在浏览器以F=451继续进行渲染