【MME】细说 Ray 渲泛光光斑 Bug 修复方法

本文由 简悦 SimpRead 转码, 原文地址 www.bilibili.com

作者:ARonisc

点击进入查看全文 & gt;

现在使用 ray-mmd 渲染器的大家都基本用上了泛光 Bloom 功能

即 ray_controller.pmx 左下角的 Bloom 部分各个控制泛光选项

Bloom 是一种画面后处理效果

但很多伙伴开启泛光后都会碰到这个光斑 BUG,使得泛光并不好看

受害者 MME:空気尘埃

接下来介绍如何修复这个 BUG,以及相关进一步产生该 BUG 的原因和一种错误的修复方法

为了节省大家阅读时间,这里直接放出修复方法

  1. 打开记事本或 Notepad++ 打开 ray-mmd-1.5.2\Shader\PostProcessBloom.fxsub 文件

  1. 修改第 7 行代码中的 512 数值为 2048 或者 4096,随后保存

  1. 用记事本或 Notepad++ 打开 ray-mmd-1.5.2\ray.conf 文件

  1. 找到 Toon_Enable 选项,若是选择了 2 模式,请改为 1,即去除 diffusion 柔化效果

  1. 处理完成后,重置 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

评论