tex | 要转换的纹理。 |
flags | 用于控制压缩和输出格式的标志。 |
将该纹理编码为 EXR 格式。
该函数返回一个字节数组,该数组为 EXR 文件数据。将该数据写入磁盘以获取 EXR 文件格式的数据。
最好将该函数用于 HDR 纹理格式(16 位或 32 位浮点数)。默认输出格式为 16 位浮点 EXR。对于传入的纹理,必须启用 Texture Import Settings 中设置的 Read/Write enabled 标志。
编码的 EXR 数据将始终包含 Alpha 通道。
另请参阅:EXRFlags、EncodeToJPG、EncodeToPNG。
// Saves HDR RenderTexture as an EXR file. using UnityEngine; using System.Collections; using System.IO;
public class SaveRenderTextureToEXR : MonoBehaviour { RenderTexture m_InputTexture;
void SaveRenderTexture() { if (m_InputTexture != null) { int width = m_InputTexture.width; int height = m_InputTexture.height;
Texture2D tex = new Texture2D(width, height, TextureFormat.RGBAFloat, false);
// Read screen contents into the texture Graphics.SetRenderTarget(m_InputTexture); tex.ReadPixels(new Rect(0, 0, width, height), 0, 0); tex.Apply();
// Encode texture into the EXR byte[] bytes = tex.EncodeToEXR(Texture2D.EXRFlags.CompressZIP); File.WriteAllBytes(Application.dataPath + "/../SavedRenderTexture.exr", bytes);
Object.DestroyImmediate(tex); } } }