【教程】解决星见雅色差问题:跨IB渲染技术(更新艾莲)
前言

这两天帮人改了几个雅的mod,正好最近做雅的人蛮多,抓紧写了个教程分享一下方法。

目前看到的雅mod的跨IB渲染有两种改法(ref so0和copy vb0),这里就只介绍copy vb0的方法,改起来更简单。

星见雅修改

首先第一步,找到雅的身体IB部分

因为雅的身体部分原模型没有肤色,所以mod的肤色会渲染异常,就需要把肤色部分的渲染移动到四肢的IB部分去绘制。

目前1.4版本,雅的身体IB的hash值为981c1a1e

在此IB的标题[TextureOverrideXXX]上方和下方分别添加一行代码:

[ResourceBodyVB]

ResourceBodyVB = copy vb0

这里添加的第二行代码我选择添加在了match_first_index行的下方,经测试只要添加在此IB的标题下都可以。

然后第二步,来到雅的四肢IB部分

目前1.4版本,雅的四肢IB的hash值为d8003df3

在此部分的末尾添加下面几行代码:

在添加之前,我先解释一下这几行代码来自哪里。ib行来自身体部分的ib行,vb0行来自我们第一步中添加的代码,vb1行来自身体部分的Texcoord,最后的drawindex也是来自身体IB部分。

因为这几行代码来自原有代码,所以不提供模板,请根据上面的说明找到对应的几行代码后复制粘贴到指定位置。

最后,回到雅的身体IB部分,在drawindex行前添加 英文分号 注释掉此行:

drawindex问题

最后再说明一下关于drawindex的问题:

如果你的身体部分做了拆分,有很多个drawindex,那么只改包含素体(皮肤)部分的drawindex就可以,一般就是身体IB部分的第一个drawindex。


艾莲修改

艾莲的跨IB渲染修改方法和星见雅相似,只是需要增加一个cb1来修复HairIB的模型偏移问题。

第一步,来到艾莲的Hair部分

添加下面几行代码:

[ResourceEllenHairVB]

[ResourceCaputreCB1]

ResourceEllenHairVB = copy vb0

ResourceCaputreCB1 = copy vs-cb1 unless_null

和星见雅相比,多了两行cb1相关的代码。

第二步,来到艾莲的Body部分

添加下面红框圈出的代码:

和星见雅相比,也是多出几行cb1相关的代码。

最后同样回到Hair部分,注释掉drawindex即可:

最后说一下vs-cb的问题,一旦使用了cb资源,会导致使用了跨IB渲染技术的IB部分的模型影子的渲染出现1帧的延迟问题,目前没找到办法解决。

贴图问题

如果修改后你的模型贴图出现问题,可能是因为你的ini使用的是ps-t槽位指定的方法修改的贴图。

可以在第二步向指定IB添加代码时,把槽位的几行代码也移动过去。

比如下图,把图一的ps-t3456移动到图二对应位置即可。

by 哈米猫特HammyCatte 更新于 2025-02-09
若有附件,打赏后可直接下载 赠人玫瑰 手留余香
1个大佬推荐该主题
默认
最新


1