Graphics GameMaker:Studio中的scale2x

Graphics GameMaker:Studio中的scale2x,graphics,shader,scale,game-maker,glsles,Graphics,Shader,Scale,Game Maker,Glsles,我正在使用GameMaker:Studio创建一个格斗游戏。我想使用GLSL ES(默认)着色器实现scale2x算法。我是着色器新手,在网上找不到任何解决方案。基本上,我想要一个如下所示的着色器: 为此: 你能教我怎么做这样一个着色器吗?任何帮助都将不胜感激。 这里是scale2x网站:我无法教您如何在stackoverflow上创建着色器,但我会告诉您,您正在寻找的操作称为仿射变换。“仿射”只是指直线保持直线。大多数编程环境(包括opengl的所有变体)都使用矩阵变换来执行您所讨论的操作

我正在使用GameMaker:Studio创建一个格斗游戏。我想使用GLSL ES(默认)着色器实现scale2x算法。我是着色器新手,在网上找不到任何解决方案。基本上,我想要一个如下所示的着色器:

为此:

你能教我怎么做这样一个着色器吗?任何帮助都将不胜感激。
这里是scale2x网站:

我无法教您如何在stackoverflow上创建着色器,但我会告诉您,您正在寻找的操作称为仿射变换。“仿射”只是指直线保持直线。大多数编程环境(包括opengl的所有变体)都使用矩阵变换来执行您所讨论的操作类型。因为有很多方法可以使用矩阵来变换某些东西,所以只需从最简单的情况开始。为了在2D中放大某个对象,如您所要求的,使用如下所示的缩放矩阵:

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

// where scale is a percentage.
// 100% = 1.0
如果您可以创建这样一个矩阵并使用代码,那么您必须使用该矩阵执行“仿射变换”,这应该可以做到

请记住,这将放大图像中的每个点/像素。它不一定会向图片中添加信息。所以,如果你有一个低分辨率的图像,当你放大它时,它看起来会很糟糕

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