【MME】细说 Ray 渲泛光光斑 Bug 修复方法
本文由 简悦 SimpRead 转码, 原文地址 www.bilibili.com
作者:ARonisc
点击进入查看全文 & gt;
现在使用 ray-mmd 渲染器的大家都基本用上了泛光 Bloom 功能
即 ray_controller.pmx 左下角的 Bloom 部分各个控制泛光选项
Bloom 是一种画面后处理效果
但很多伙伴开启泛光后都会碰到这个光斑 BUG,使得泛光并不好看
受害者 MME:空気尘埃
接下来介绍如何修复这个 BUG,以及相关进一步产生该 BUG 的原因和一种错误的修复方法
为了节省大家阅读时间,这里直接放出修复方法
- 打开记事本或 Notepad++ 打开 ray-mmd-1.5.2\Shader\PostProcessBloom.fxsub 文件
- 修改第 7 行代码中的 512 数值为 2048 或者 4096,随后保存
- 用记事本或 Notepad++ 打开 ray-mmd-1.5.2\ray.conf 文件
- 找到 Toon_Enable 选项,若是选择了 2 模式,请改为 1,即去除 diffusion 柔化效果
- 处理完成后,重置 MME 状态,或者重启 PMM 工程,泛光就修复正常了
该图为 4096,Toon 0,导出分辨率为 3840x2160 的效果图,光斑基本看不见了
下面介绍一些其他内容,感兴趣的可以看一眼
其实也不算 BUG,就是斯基预设的分辨率有些低了,shader 文件夹里放置了 ray 各个功能模块的代码,与泛光 Bloom 相关的就在 PostProcessBloom.fxsub 文件里。
我们只要把 512 改大即可。经过测试,对于当前 4K 分辨率来说,BloomScale 512,1024 都不太够,因此推荐使用 2048 或 4096。如果不够你就 4096x2=8192 这样依此类推。
Toon_Enable 2 模式,附加了 diffusion 柔化功能,而这个柔化也会产生光斑效果
当你选 Toon 2 模式时,会产生以下光斑
其原因跟 Bloom 一样,在 Shader 文件夹中,同样有该 diffusion 的代码文件
打开 PostProcessDiffusion.fxsub 文件,可以看到这里也设置成了 512
你若是一定要用 Toon 2 模式的话,将这个 512 改成与 Bloom 一样即可
曾经记得有人在群里说把 512 改成 ViewportSize 就行,这样其实是不对的。
static const float2 BloomScale = ViewportSize * float2(ViewportAspect, 1);
根据不吃鱼的喵酱翻译的 MME 参考文档中,ViewportSize 是一个 float2 参数,值是屏幕的尺寸
也就是说 4K 分辨率,ViewportSize 的值为(3840,2160)
在 common.fxsub 文件中,ViewportAspect 代表了 4K 分辨率的比例,也就是 16:9
static float ViewportAspect = ViewportSize.x / ViewportSize.y;
如果用 ViewportSize 相乘,就破坏了最终数值的比例,会导致泛光变形
下图就是 ViewportSize 的泛光结果
本来这个修复方法似乎在群里有所流传,而且也有人写过专栏,但好像关注度并不高
而且恰好在群聊的时候和香皂发现了 Toon 2 模式的 diffusion 也会产生光斑 BUG
所以写一篇更为详细的修复说明,希望能帮助到大家【顺便感谢一波皂皂子一同查出 BUG】
附 Ray1.5.2 下载地址
https://github.com/ray-cast/ray-mmd/releases/tag/1.5.2