前言
2022年,Coding给开发者搞了一种模式,DevOps,别管这东西多高级多看不懂,我只知道开发可以全在云上做了,什么环境配置,什么安装什么都不需要,在云端一点就完成,有浏览器有网,随时随地就能开发,省心省事省力。
腾讯现在针对云原生构建又有了一个新产品cnb——Cloud Native Build
,官网在cnb.cool,每个月有1600免费核时的云原生开发额度,够爽吧。
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/5aba55aaf42f80d8b9b59d1ee1878f01.png)
最大支持64核128G
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/6e5cbab4b373eb6cfc52b390301dc6bc.png)
嘿嘿,既然资源都是云端的,那是不是可以异想天开一下。只拿来写代码那太浪费了,cnb的云原生开发基于docker那样的模式,那很自由了,前几天我看到cnb在部署Deepseek,也验证了这一想法。
效果展示
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/a883d70ee22773566583fbede5543d6a.png)
使用单张GPU,EEVEE渲染速度可以达到8秒每帧,同样参数在3050Laptop下需要10秒,Tesla A10上需要18秒。重要的是这东西跑了7小时,连免费额度的5%都没用到,这不是爽飞了
云原生开发使用
跟喝水一样简单
构建Blender
我这里已经做了一个仓库,可以直接按照说明使用https://cnb.cool/arsrna/blender-docker
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/9a01c557ea97681b2545a9a3fc5e1c9c.png)
打开仓库,点击右上角云原生开发
WebIDE使用
进入WEBIDE后,将本地渲染所用文件上传到工作区,工作区的路径为/workspace
,建议新建一个tests文件夹,里面的文件会自动被git排除,以免造成不必要的占用。
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/58bcbbd899ba3985f7cbbb63acc5ccf2.png)
编辑渲染设置
注:由于blender官方python文档写得太烂,建议因blender脚本遇到问题时,前往stackexchange查找和交流
- 将需要处理的
.blend
文件上传到工作区/usr/local/blender/blender -b /workspace/{.blend文件} -P /workspace/eevee_render.py - 修改
eevee_render.py
,请参考下一章节渲染脚本设置
要注意,由于我使用了mmd插件,导致摄像机视角有问题,透视变成了正交,所以加入了一句强行让视角转为透视,如果没有出现问题,或者摄像机本身就是正交视角的,请注释这一部分。
for obj in bpy.data.objects:
# 检查对象是否为摄像机
if obj.type == 'CAMERA':
# 设置摄像机为透视视角
obj.data.type = 'PERSP'
print(f"摄像机 {obj.name} 已设置为透视视角。")
更多配置请参考eevee_render.py
内的注释进行修改
开始渲染
左上角打开终端(如果屏幕宽的话会直接在顶部显示)也可以Ctrl+Shift+C打开
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/c28345e69fa4c9bf92e525584f7a8137.png)
运行
/usr/local/blender/blender -b /workspace/你的.blend文件路径 -P /workspace/eevee_render.py
构建的过程是真不容易,点点star支持下。
构建逻辑
docker
.ide/Dockerfile
,即为运行云原生开发所用到的环境。
考虑到Cycles渲染器调用的cuda,这里选择了NVIDIA的CUDAGL镜像nvidia/cudagl:11.4.2-base-ubuntu20.04
为了能够正常使用WebIDE,这里安装了nano,code-server,git等插件,方便对.py脚本进行开发,以及适配云原生开发环境,请勿随意去掉此依赖。剩下的是Blender运行所需要的二进制库,一个个测试出来的,也请不要随意删除。
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/a1b324402e4630852e3666a5c601753f.png)
根据Blender官方安装文档,在这里我使用下载二进制包的方式来安装使用,使用的是阿里云的Blender镜像(什么时候腾讯搞一个,这样内网绝对够飞速)
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/a8d0e2284a3f311309266ccc76f52625.png)
没有装到/usr/bin里面,所以启动需要输入完整路径。
.cnb.yml
在CNB runner的这个配置里,参考了官方的Deepseek-R1库,使用了GPU的Tag,为了保证不爆内存,使用32核64G的配置,足够渲染一些中小工程。
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/d85e26d72d0dbff1e5b80ac2817fd7a0.png)
可以根据自己的需要,调节相对应配置,可参考:云原生开发
TODO
目前只是一个测试,确实能够在cnb里面完整运行Blender,实现GPU调用,但运行VNC时会因为权限问题,没办法从外网进行访问,不过关掉了图形化,Blender渲染会更快
未来会加入ArRM(ArSrNa集群渲染器),目前ArRM只支持windows版本,感兴趣的可以前往ArRM查看。其实CNB跑渲染灵感正是从ArRM来的,既然能够运行脚本,不妨脑洞大开,在开发docker版本的时候就想到了cnb。
加入WebUI,现在通过命令行有点鸡肋,不熟悉代码的操作起来不方便
已知问题
初代毕竟是初代,还是有很多问题需要完善,前面也提到了,mmd渲染会因为插件问题,丢失摄像机数据,导致原本是透视的摄像机变成了正交,视角很奇怪,有些项目通过强制设置透视可以正常,但有些就是不行,不知道是不是mmd的问题。如下图。
![[CNB] 只写代码?太浪费了,直接云原生渲染!](https://developer.qcloudimg.com/http-save/yehe-3335308/a3614e7fd4f31740a1df61d7988a78da.png)