MTKTexureLoader newTextureWithContentsOfURL...
似乎会自动翻转图像。这会导致所有包含常规UV坐标的模型和网格显示不正确。我在选项中没有看到任何东西来指定是否会发生这种情况。有没有一些方法可以使用MTKTextureLoader
并保持图像的方向?
MTKTexureLoader newTextureWithContentsOfURL...
似乎会自动翻转图像。这会导致所有包含常规UV坐标的模型和网格显示不正确。我在选项中没有看到任何东西来指定是否会发生这种情况。有没有一些方法可以使用MTKTextureLoader
并保持图像的方向?
3条答案
按热度按时间lndjwyie1#
我不知道如何让
MTKTextureLoader
翻转你的图像,但你可以简单地翻转你的纹理坐标:ecbunoof2#
从iOS 10开始,您可以将option传递给
MTKTextureLoader
初始化器。例如,从CGImage加载纹理:将翻转最初在左下角具有其原点的图像。
如果你必须处理iOS〈9,你可以强迫你的用户使用Rythmic Fistman或Denn Nevera的两种方法来更新答案。
li9yvcax3#
我假设MTK PreLoader根据MTL坐标系从图像创建正确的纹理:...The origin of the window coordinates is in the upper-left corner...。
我认为你有三个简单的选择来处理正常方向的图像:
1.准备已翻转的图像
1.在应用程序中的MSL图形或内核函数中翻转图像(如之前第一个答案transformation matrix中所提供的那样)
1.如果您需要仅在应用程序视图中显示图像,请使用视图。layer.transfrom属性,例如:... transfrom=CATransform3DMakeRotation(CGFloat(M_PI),1.0,0.0,0.0