GameMaker中的scale2x:Studio

时间:2016-06-19 18:20:33

标签: graphics shader scale game-maker glsles

我正在使用GameMaker:Studio制作格斗游戏。我想使用GLSL ES(默认)着色器实现scale2x算法。我是着色器的新手,我无法在线找到任何解决方案。基本上我想要一个这样的着色器:

Original sprite

对此:

Sprite enhanced using scale2x algorithm

你可以教我如何制作这样的着色器吗?任何帮助将不胜感激。 这是scale2x网站:http://www.scale2x.it/

1 个答案:

答案 0 :(得分:1)

我无法教你如何在stackoverflow上制作着色器,但我会告诉你你正在寻找的操作称为仿射变换。 “仿射”只意味着直线保持笔直。大多数编程环境(包括opengl的所有变体)都使用矩阵变换来执行您正在讨论的操作类型。由于有很多方法可以使用矩阵来转换某些东西,所以从最简单的情况开始。为了在2D中扩展某些内容,就像你要求的那样,使用一个如下所示的比例矩阵:

[   xScale    0      0    ]
[     0     yScale   0    ]
[     0       0      1    ]

// where scale is a percentage.
// 100% = 1.0

如果您可以创建这样的矩阵并使用您必须使用该矩阵执行“仿射变换”的代码,那么就应该这样做。

请注意,这会扩大图像中的每个点/像素。它不一定会为图片添加信息。因此,如果你有一个低分辨率的图像,当你扩展它时看起来会非常糟糕。

在图像空间中创建信息的问题是插值和外推。 通常它被称为“重新取样”,它也与“卷积”有关。