Project1

标题: 【RGD】如何在精灵zoom上应用二次插值法缩放 [打印本页]

作者: 零教授    时间: 2019-3-31 15:22
标题: 【RGD】如何在精灵zoom上应用二次插值法缩放
本帖最后由 零教授 于 2019-3-31 15:24 编辑




我这边用的是RGD框架,
做的是Galgame,
Sprite类的一些比较基础的功能(基于RGSS的)我已经自行完成了,
但是改变zoom值让图片放大缩小(尤其是缩小)依然用的最近邻法,
放大稍微糊一点这边还在接受范围,但是Nearest缩小出现的锯齿无法忍受……这对卖画面的Galgame是致命的,
之前有请C++程序员写过图形缩放dll,改了bitmap对象的像素后存一个临时文件然后读取进游戏,
但是这样以来动态缩放(根据帧改变zoom)就极为吃资源了,
而且极不方便,
既然RGD是基于DX的,应该有办法让Sprite的zoom改变为二次立方插值法的缩放吧@⑨姐姐   @fux2  
请求援助……
可接受付费定制脚本,
可接受Sprite类的重置
作者: ⑨姐姐    时间: 2019-3-31 15:22
首先线性插值和二次插值粗看效果应该是差别不大的(还是说你要的其实是双线性插值Bilinear?),可以用Graphics.filter = 1来让游戏里的所有缩放使用线性插值。

如果要实现二次插值,我记得HLSL的sampler里没有默认选项,只能在shader里自己实现了,思路大概就是用tex2D取最近的三个像素点(需要从0到1的坐标乘以图片宽度和高度,得到像素点坐标)的颜色,然后用二次函数插值。
作者: 零教授    时间: 2019-3-31 15:42
⑨姐姐 发表于 2019-3-31 15:28
首先线性插值和二次插值粗看效果应该是差别不大的(还是说你要的其实是双线性插值Bilinear?),可以用Grap ...



这是线性插值后的,感觉和默认没区别?
PS和图片预览软件里我不太清楚是Bilinear还是Bicubic,
感觉Bicubic会好一点?(不懂图形学)
作者: ⑨姐姐    时间: 2019-3-31 15:44
零教授 发表于 2019-3-31 15:42
这是线性插值后的,感觉和默认没区别?
PS和图片预览软件里我不太清楚是Bilinear还是Bicubic,
感觉Bic ...

bicubic确实会好一些(理论上,但是实际看上去应该影响不大吧)。
PS的插值可以在首选项里调的。

如果不确定效果的话可以试试做个对比图?在PS缩放以后看看具体效果什么的?
作者: 零教授    时间: 2019-3-31 16:28
本帖最后由 零教授 于 2019-3-31 17:07 编辑
⑨姐姐 发表于 2019-3-31 15:44
bicubic确实会好一些(理论上,但是实际看上去应该影响不大吧)。
PS的插值可以在首选项里调的。



最邻近


二次线性


二次立方

二次立方肯定是最好的,二次线性如果仔细观察还是可以发现锯齿,但是这里可以接受吧,
然后就是在shader里实现二次线性的问题了





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