
起因:Intel GPA挂不上MMD 926却能挂上MMM(主要是我想康康MMD的渲染流程但是又挂不上,但是MMM却能挂上,只好用MMM辽)
当然,直接使用原版ray-cast是不可哒,你需要的是セルゆかり大大修改过的ray-cast(指路:https://bowlroll.net/file/182016)

セルゆかり大大为MMM修改的ray-cast的文件目录,咋一看挺像原版哒
解压开来咋一看非常像ray-cast,你可能觉得跟MMD里面一样拖ray.x进去就好了,可惜并不是,在MMM里面加载还有有一点点区别的,这里我会在下面简单介绍怎么在MMM里面启用ray-cast
注意!以下除非特殊声明,否则ray-cast全部指为セルゆかり大大修改过的ray-cast
注注意!本文使用的MMM版本为1.2.8.5!不保证其他版本的MMM可以按此操作(更新叭!少年!)
1. 加载ray.fx
点击File面板下的"Import Effect"按钮

File-Import Effect
选择主目录下的ray.fx然后点击打开即可

当然,要记得关掉Screen面板下AntiAlias鸭(这里还是跟MMD里的原版一样的流程)

Voila! 如果你的MMM的Viewport变黑了,恭喜你加载成功!
2. 加载Skybox
只有shader的渲染器是索然无味哒,我们这就给它加上一个漂亮的Skybox,这里以ray-cast内置的”Helipad GoldenHour“为例
首先还是加载.pmx,如同MMD。点击”Load model“

并定位到".\Skybox\Helipad GoldenHour\"目录下

选择"Sky with box.pmx"并点击打开即可

看!我们的背景变成白色的辽!这就说明我们成功加载了Skybox。当然,我们还需要一些设置使得我们的Skybox能正常运作
3. 设置Skybox
我们在MMM里加载Skybox之后为什么不像MMD里面会直接显示出来呢?那是因为MMM并不支持自动加载shader。我们需要手动给我们的Skybox指定shader
跟我们一开始加载ray.fx一样,首先我们还是回到File面板,点击"Import Effect"加载以下几个shader
".\Materials\"文件夹下的material_skybox.fx

".\Skybox\Helipad GoldenHour"下的"Sky with box.fx"

以及同一个目录下的"Sky with lighting.fx"(有兴趣的dalao们也可试试其他lighting后缀的fx,同MMD的原版ray-cast一样)

完成了加载,我们接下来就是给我们的Skybox指定shader
首先,点击File面板下的"Assign Effect"按钮

把里面的skybox的Effect从(Default)改为"Sky with box"即可

Voila! 效果立竿见影,我们的Skybox显示出来辣!

不过还没完,我们现在的Skybox的Material和ray-cast的EnvLightMap还没有分配,现在的Skybox只是一个背景而已,我们需要修正这一问题
点击主面板左下角的Effect标签页(星星按钮),点击Offscreen标签页并再右边选中ray

熟悉的身影出来了!接下来我们就是分别点击MaterialMap和EnvLightMap修改Skybox的属性辽
首先我们修改EnvLightMap属性,把skybox的属性从(No Rendering)改为"Sky with lighting.fx",点击OK即可(如果你上面使用了不同的lighting后缀的shader,则选择对应的项即可)

接下来我们来修改MaterialMap,把skybox的属性从material_2.0.fx改为material_skybox.fx,点击OK即可

现在,我们的Skybox就可以正常运作辣!接下来我们加载人物模型叭!
当然,你使用其他你喜欢的Skybox也可,只需要按"2. 加载Skybox"和"3. 设置Skybox"类似操作即可
4. 加载模型
这里我们以作品《凹凸世界》最新释出的角色MMD模型里面的金为例(不要问,问就是我很喜欢这个IP)当然读者可以使用自己喜欢的角色的MMD模型*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
点击Load model,找到角色的.pmx文件,打开即可

但是打开之后却用的还是MMM默认的shader?!这是怎么回事?!

不要着急,我们确实已经加载了ray-cast,不过我们还需要再为模型加载一个fx并指定给它
点击File面板下的"Import Effect",定位到".\Main\"文件夹下,选择并打开main.fx文件即可

然后,我们点击File面板下的"Assign Effect"按钮,打开"Effect Assign"界面,把我们加载的金的模型的Effect属性从(Default)改为main并点击OK即可

Voila! 我们的金已经使用上ray-cast shader了!

我们只需要再加载场景和动作数据以及镜头,就可以开始渲染辣!
当然,加载场景你还是需要参考此步"4. 加载其他模型"给它分配Effect,不然你的场景和人物会不在同一个画风上。这样不会感觉很违和嘛?(╯‵□′)╯︵┻━┻
最后最后,切记打开File面板下的Enable Effect鸭!不然你怎么操作都只会使用默认的shader渲染的

一定一定要把它点成蓝色,向我发誓!
FA♂Q
Q: 如何给Material分配不同的shader?比如说我想给角色的衣服加上布纹?
A: 于设置Skybox的MaterialMap属性一致,在Effect标签页-Offscreen标签页并选中ray下的MaterialMap里设置

点击Name旁边的小三角可以展开模型下的所有Material,这样你就可以针对单独的Material分配不同的shader辽,这里以给金的帽子加上cloth shader为例(布纹shader)

效果拔群!

布纹帽子
不过,你需要提前加载对应Material的shader文件,这里以Cloth为例(在".\Materials\Cloth\"目录下)

如果是对原版ray-cast熟悉的读者应该会对这套流程有点熟悉,只是我们多了一步加载对应Material的shader而已(也许也是一样的?请原谅我一个Unity/blender选手的记忆力叭)
其他Material的shader也是如此操作即可
Q: 你这个奇怪的框框是什么?!为什么我的MMM没有?会不会影响?

奇怪的框框
A: 啊,这个是Intel GPA(一款图形调试器)的GUI,不要在意,不会改变本文的任何结果
但是呢!本文正是因为我想用这个来康MMD的渲染管线却挂不上去,只有MMM能挂上去才写的(码农的丑恶嘴脸ε=ε=ε=┏(゜ロ゜;)┛)
Q: 有推荐的Rendering Order(渲染顺序)吗?
A: emmmmmmmm我个人用的Rendering Order长这样

其实这一排shader的顺序貌似并不重要(根据我玩耍的这段经验来说),你只要保证Skybox一定是在所有其他模型的最上面即可(参考MMD的ray-cast渲染顺序设置即可)
后记
呼~终于写完了,MMM的日语文档和ray-cast MMM修改版的日语readme看的我头皮发麻,果然我还是更习惯英语文档ε=ε=ε=┏(゜ロ゜;)┛(这也是为什么我喜欢用Unity/blender的原因,英语文档又全又详细,有什么奇怪的问题也好解决)
DX9真的很老啊你们怎么不来试试Unity/blender EEVEE渲染啊而且它调试起来好麻烦啊我感觉ray-cast本来应该能做到更好的啊但是因为这个legacy API才导致它又卡又不如HDRP一般好对我就是Unity厨SRP赛高那么你们为什么不试试神奇的Unity呢当然我是不会出教程的辣你们自己去Unity Learn上学叭hhhhhhhhhh还有UE4是假开源不要被它骗了总之就是Unity大法好叭hhhhhh开玩笑的每个引擎适用面不一样啦只是个人感觉Unity适用更广而已最后大家一定要好好学英语啊真的很重要的比日语好用多了当然也可能是因为我日语太菜了还没体验到日语的好处
以上仅个人观点,不代表实际情况,请自行体验
还有,你都看到这里了,点个赞呗(✿◡‿◡)
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。