如何将Unity中来自Cubemap的照片(有6张面孔)保存到应用程序数据

时间:2018-12-12 11:19:11

标签: unity3d textures arkit

我在ARKit 2.0中使用UnityARKitPlugin。有一个环境纹理的示例-UnityAREnvironmentTexture。内部有一个名为ReflectionProbeGameObject.cs的类。该闩锁纹理来自UpdateEnvironmentProbe方法中的environmentProbeAnchor.Cubemap。我将此代码添加到Update()中,以将latchedTexture作为6 png图像保存到手机应用程序数据中,但是保存的全部是6幅黑色图像。

Texture2D tex = new Texture2D (latchedTexture.width, latchedTexture.height, TextureFormat.RGB24, false);
CubemapFace[] faces = new CubemapFace[] {
    CubemapFace.PositiveX, CubemapFace.NegativeX,
    CubemapFace.PositiveY, CubemapFace.NegativeY,
    CubemapFace.PositiveZ, CubemapFace.NegativeZ
};

foreach (CubemapFace face in faces) {
    tex.SetPixels (latchedTexture.GetPixels (face));
    tex.Apply ();
    byte[] data = tex.EncodeToPNG ();
    if (data != null) {
        File.WriteAllBytes (Application.persistentDataPath + "/" + latchedTexture.name + face.ToString () + ".png", data);
    }
}

是否甚至可以将这样的立方体贴图保存到6张照片中?是否有人尝试查看ARKit的ML算法返回的立方图是什么?

0 个答案:

没有答案