我有一个梦:把我的设定用XR/AR的形式展示出来。
但是我的模型特别贵,不能直接把模型文件放在外面,会被有心之人偷走。
五一的时候和ChatGPT聊天,提到了Gaussian Splat。发现确实可以用在我这个需求里:展示模型但是不给别人拿走模型。
我的主要流程有:
- 把 VRM 的模型放进环境里
- 摆个姿势
- 录视频绕一圈
- 把视频抽成图片
- 放到奇怪的软件里炼丹
- 用 SuperSplat 清理
二次元部分
打开Warudo跟着向导把模型导入进去,从Workshop里选一个好看的场景。

我的脚旁边有柱子,导致脚和尾巴有些糊。因为很难录到下半部分。
然后准备开录!根据我的浅薄理解,Gaussian Splat的工作原理是先根据图片的前后关系算出纵深,从而定到摄像机的机位。所以画面尽量要像人类一些,有的场景自带一些发光的粒子特效就不行,会让他定位有难度。我选择的这个环境有运动模糊,可以尝试把环境->环境->环境组件->启用环境内后处理体积关了,关了以后感觉滤镜都没了,但动起来的时候不模糊了,好耶!

牺牲的画质或者滤镜可以在 环境->环境->覆盖环境设置 里面补一些回来

录像,转起来!
应该要慢慢的…录到所有部分,但不能太快,据说他是计算前后两张图片的角度差距,算法真神奇啊。
打开banicam,也不用太高清,反正后面ffmpeg会压低分辨率。我用了20小时证明了分辨率不会影响生成效果,相反还会浪费时间。
我在这里像一根竖过来的弹簧一样:
从最上面的头发开始,围着角色中心旋转(warudo很适合这个),慢慢往下。把头身体尾巴脚都转到,慢慢到比较高的角度以后想想还有哪里需要展示细节,慢慢的挪过去。

(能看到相机是从上面转下来的,转到后面又往上看了一下)
相机的突然靠近原理会让训练时间变长,如果有东西挡住尽量看一看调整好再录。
角色一定要大!不要被东西挡住。
现在,二次元结束了,通过二次元软件得到了角色转一圈的视频。接下来要在炼丹前做好准备工作
用 ffmpeg 抽帧
如果你的视频一点遮挡都没有,不需要手动剔除,可以直接看下面,用软件直接导入视频抽帧。
ffmpeg -i vid.mp4 -vf "fps=4,scale=1920:-1" -vsync 0 frames/frame_%04d.png需要新建一个frames文件夹,每秒在vid.mp4中抽4张1080P的图放到文件夹里。所以绕的越快,fps=的数字就要越大。
照片不是越多越好!我的900张1080P照片在后续的流程花了8小时,效果和半小时的差不多,但是大了三倍。
删掉一些你看上去就不对的图:角色就一小块的、角色被背景挡住会得巨物恐惧症的、据说前后相差太大了也不行。
用软件处理照片
题外话:我的毕设做的是YOLOv4,一毕业后我就赶紧抛弃NVIDIA,转投AMD。导致现在没有训练环境。
我用的是M4 Pro的Mac Mini, 32G内存,在app store有一个叫做3D Splat App的App可以做到开箱即用,不用配置环境,棒棒。
他先需要完成一个叫做COLMAP的流程,确定摄像机的位置后再开始训练。

上面的Full/Fast是下面的设置预设,我自定义了一下:下面的选项选不选区别都不大;最大图片大小和实际的图片差不多,高了也没用;Quality当然是High;线程最大站起来蹬!

在训练设置中,可以先把总的Iteration调低一点,后面可以慢慢叠上去,先用 5000~8000 验证;据说Image Scale一定要Full,后面补会晚;Splats在后续也能叠上去,先小一些;Max SH Degree和颜色光照有关系,选3,这题选3!;Opacity Reset会在设置的每个Iteration重置splat 的不透明度,清掉奇怪的漂浮物和脏点;Masks不要开,不然训练出来的内容会一团糟糕,不知道为什么。
怒等5小时…..导出.ply文件
使用 SuperSplat 编辑
编辑器,这么复杂的工具居然是免费的:https://superspl.at/editor

拖进去就行,美丽的角色就藏在这些榴莲壳中间。

首先需要将角色中心放在坐标原点,才能删掉多余的部分:左边有重置相机按钮,点一下能看到一个白色原点,用滚轮拉的远一些。随后,确认右下角小字已选择是0,表示整个场景。拖动左边位置的左右箭头,把原点放在胸口里,确保看不见。

然后删除多余的内容,点击球选择,设置一个半径,Set后会选中以你角色(原点)为中心一个范围的区域,点击左上角选择->反选,会发现除了角色一圈以外的都被选中了,随后按删除键。魔法发生了:你的世界清净了。
这个时候应该看得清地板了,可以旋转到XYZ全正。

我们需要用吸管选择先清除奇怪的雾,不要把角色上面的相近颜色清掉,不然很丑。
随后用下方第一个“矩形选择”清除一个范围里的一两个小点,用右边第一个“splat模式”或者第二个“显示隐藏splats”更好看得清。

如果摆的够正,地板的也可以用盒选择选中并删除

我的最终成果如图,文件->导出就行了