Project1

标题: 关于ULDS,混合模式及图像渲染 [打印本页]

作者: Trickstar    时间: 2019-4-24 13:05
标题: 关于ULDS,混合模式及图像渲染
事情的起因是我将PSD的地图导出进游戏之后,发现光效图层炸了:


经过一阵研究,发现是画师并没有使用传统的半透明图层覆盖,而是选择用图层滤色和正片叠底来制作光效。
MV是带有正片叠底和滤色这两种混合模式的,所以我最开始以为是ULDS的渲染模式设置有问题。
但调整了半天一点变化都没有……最后看到通过系统自带的显示图片渲染出来的画面仍然有问题才反应过来RM本身的渲染就有问题。
之后去请教了一下Drill大佬和梦涅的小伙伴,得到的回答是WebGL渲染器只支持正常叠加浅色和实色混合,其他的渲染模式都会被当成正常模式来渲染。
虽然半透明图层覆盖也能达到接近的效果,但总体效果还是有一定差异。因此最后靠国外论坛上Iavra提出通过修改渲染类型来解锁Pixi其余的混合模式解决了问题。
原帖地址:https://forums.rpgmakerweb.com/i ... -mode-plugin.53857/
具体实现的代码是:
SceneManager.preferableRendererType = function() {
          return 'canvas';
};

将以上内容放进插件之后,就可以通过设置BlendMode参数来直接调整图层的混合模式了。除了从PS导出时候更加方便以外,个人觉得比起传统的图层覆盖效果要艳丽一些,因此在这里推荐一下www

顺带一提……MV版本ULDS的全参数要去哪里找啊_(:з)∠)_Taroxd大佬说去看F1中的Sprite但我恕我眼拙把帮助找了个遍都没看到相关内容。如果有谁知道麻烦告诉我一下……感激不尽!

以上
作者: 梦想家大魔王    时间: 2019-4-24 18:21
理论上讲,强制canvas模式会失去硬件加速功能,对游戏的帧率会有重大影响。
作者: garfeng    时间: 2019-4-24 19:09
是我的理解有误吗?


自带的正片叠底。
作者: Nil2018    时间: 2019-4-24 22:11
光层的合成方式是加法吗?
rm里的加法合成方式     ≈     ps里的线性减淡(添加)

作者: Trickstar    时间: 2019-4-25 02:14
本帖最后由 Trickstar 于 2019-4-25 03:46 编辑
梦想家大魔王 发表于 2019-4-24 18:21
理论上讲,强制canvas模式会失去硬件加速功能,对游戏的帧率会有重大影响。 ...


看了一些文章,确实canvas会比webgl慢上不少……不过请问具体影响会有多大呢?
作者: Trickstar    时间: 2019-4-25 02:22
garfeng 发表于 2019-4-24 19:09
是我的理解有误吗?


(从钻头大佬那里听来的)WebGl 支持 Normal Add Multiply Screen 四种混合模式,
因此正片叠底(Multiply)可以正常使用,但滤色(Color Dodge)一类的其他混合模式就不支持了。
我上面那张截图里,窗户和电视的蓝光是用Color Dodge来实现的,因此用WebGL就会变成右边那样,
需要更换渲染模式或者重新画透明图层才能做成同样的效果。
作者: 梦想家大魔王    时间: 2019-4-25 22:41
Trickstar 发表于 2019-4-25 02:14
看了一些文章,确实canvas会比webgl慢上不少……不过请问具体影响会有多大呢? ...

这个似乎没有一个统一的说法。就我的测试经验来看,在我手头最新的超薄本(8代赛扬+16GB+双显卡)上基本没影响,在比较老的thinkpad(3代i5+8GB+核显)上会降低10帧左右,在单位更老旧的台式机(1代i3+2GB+核显)上会降低20帧左右。我猜测这跟CPU的运算速度有关,CPU越快则差距越小。
作者: sweetcrazy    时间: 2019-4-26 11:51
我天。。这么薄一层蓝光又不是金属爆的那种光芒不要用Color Dodge啦,这里明显是美术修改方式快。程序端太费事。又容易耗资源。。。美术重画画5分钟不到。。。
作者: KnotOvO    时间: 2019-4-27 16:34
我是一个刚刚解除ULDS的萌系OvO,想问一下,再MV里如何调整ULDS图层的渲染模式?我的MV里的光效与您提到的RM中的差不多呐QAQ……
作者: Trickstar    时间: 2019-4-28 03:10
KnotOvO 发表于 2019-4-27 16:34
我是一个刚刚解除ULDS的萌系OvO,想问一下,再MV里如何调整ULDS图层的渲染模式?我的MV里的光效与您提到的R ...

<ulds> {
"name": "patient_room_1_light2",
"visible": "$gameSwitches.value(15)",
"x": "this.rx(0)",
"y": "this.ry(0)",
"z": 13,
"blendMode":7,
"opacity": "255",
"loop":false
} </ulds>
作者: Trickstar    时间: 2019-4-28 03:12
sweetcrazy 发表于 2019-4-26 11:51
我天。。这么薄一层蓝光又不是金属爆的那种光芒不要用Color Dodge啦,这里明显是美术修改方式快。程序端太 ...

原来这么容易么。。。?我属于求人不如求己那种……感觉会麻烦画师所以就自己做了_(:з)∠)_之后跟画师商量下
作者: KnotOvO    时间: 2019-4-29 13:26
Trickstar 发表于 2019-4-28 03:10
{
"name": "patient_room_1_light2",
"visible": "$gameSwitches.value(15)",

嗯嗯,谢谢OvO.
作者: Zaluba    时间: 2019-6-23 16:15
想问下,有没有办法只修改一下他的混合模式啊,没用这个插件,但它的叠加真的跟滤色似的
作者: whitedewxiao    时间: 2019-7-18 12:35
尝试一下反相然后rm里面用减去?
我之前画黄昏导入rm也是亮的过分,抓狂了,然后是这么解决的。
虽然我用的是va,但ulds用法应该共通吧?
作者: asd65198805    时间: 2019-8-16 19:28
使用这个插件之后不知道为什么唯独“相减”这个混合模式有问题。偏偏所有阴影层用的都是相减……
作者: 一只阿闲    时间: 2020-5-29 11:52
你好,我想问一下添加混合模式图层是直接把代码粘贴到is文件就可以生效吗?我尝试了之后使用blendmode调整参数,但似乎没有效果。
作者: chenlisha    时间: 2023-2-6 18:21
我i也被这个问题困扰好久了!但是我不太知道代码该怎么加qwqq
作者: 左羊tgbt    时间: 2023-5-20 17:55
一只阿闲 发表于 2020-5-29 11:52
你好,我想问一下添加混合模式图层是直接把代码粘贴到is文件就可以生效吗?我尝试了之后使用blendmode调整 ...

请问你解决了吗,我这边也是没有效果




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1