似乎MTKTexureLoader newTextureWithContentsOfURL...
会自动翻转图片。这会导致包含常规UV坐标的所有模型和网格显示不正确。我没有在选项中看到任何内容来指定是否发生这种情况。有没有办法使用MTKTextureLoader并保持图像的方向?
答案 0 :(得分:3)
我没有看到让MTKTextureLoader
翻转你的图像,但你可以简单地翻转你的纹理坐标:
{ u, v } -> { u, 1-v }
答案 1 :(得分:1)
从iOS 10开始,您可以将option传递给MTKTextureLoader
初始值设定项。例如,从CGImage加载纹理:
let textureOut = try textureLoader.newTexture(with: cgImage,
options: [MTKTextureLoaderOptionOrigin: MTKTextureLoaderOriginTopLeft as NSObject])
将翻转最初位于左下角的图像。
如果你必须处理iOS< 9,你可以强迫你的用户更新在答案中使用Rythmic Fistman或Denn Nevera的两种方法。
答案 2 :(得分:0)
我认为MTK PreLoader根据MTL坐标系统从图像创建正确的纹理:...The origin of the window coordinates is in the upper-left corner...。
我认为您有三个简单的选项来处理正常方向的图像: