Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用矩阵缩放时的纹理渲染问题_C#_.net_Xna_Rendering_Monogame - Fatal编程技术网

C# 使用矩阵缩放时的纹理渲染问题

C# 使用矩阵缩放时的纹理渲染问题,c#,.net,xna,rendering,monogame,C#,.net,Xna,Rendering,Monogame,我正在制作一个游戏(在XNA/MonoGame中),在这个游戏中,我有一个由许多不同纹理的瓷砖组成的大世界。我将我的世界存储为2D数组,为了渲染它,我只需在每个瓷砖中循环并在正确的位置绘制它 最近,我在我的相机上实现了变焦功能。我的游戏相机是用“普通”的XNA方式制作的,你可以根据位置和比例创建一个矩阵,并将其传递到你的SpriteBatch.Begin()调用中。我的变换矩阵计算如下: Transform=Matrix.Identity* 矩阵.CreateTranslation(-(int)

我正在制作一个游戏(在XNA/MonoGame中),在这个游戏中,我有一个由许多不同纹理的瓷砖组成的大世界。我将我的世界存储为2D数组,为了渲染它,我只需在每个瓷砖中循环并在正确的位置绘制它

最近,我在我的相机上实现了变焦功能。我的游戏相机是用“普通”的XNA方式制作的,你可以根据位置和比例创建一个矩阵,并将其传递到你的SpriteBatch.Begin()调用中。我的变换矩阵计算如下:

Transform=Matrix.Identity*
矩阵.CreateTranslation(-(int)位置.X,-(int)位置.Y,0)*
矩阵.CreateTranslation(Origin.X,Origin.Y,0)*
矩阵。CreateScale(比例)

我现在面临的问题是,当我放大(通过更改相机的比例变量)时,某些瓷砖纹理在某些缩放级别上看起来很奇怪。这里有一些图片显示了我的意思:

这是一张非常精细的地图:

这是同一张地图的缩小(和裁剪)视图,请注意沙子纹理是如何巧妙地“放大”的:


我没有太多的图形编程经验,也不知道这是什么原因造成的,但这会使地图看起来非常简陋。

您是否将摄影机矩阵应用到文件对象矩阵?嗯,这几乎就像您放大了沙子纹理。。。你能提供你用来画瓷砖的代码吗?