Version: 2020.1
public static byte[] EncodeToEXR (Texture2D tex, Texture2D.EXRFlags flags);

参数

tex 要转换的纹理。
flags 用于控制压缩和输出格式的标志。

描述

将该纹理编码为 EXR 格式。

该函数返回一个字节数组,该数组为 EXR 文件数据。将该数据写入磁盘以获取 EXR 文件格式的数据。

最好将该函数用于 HDR 纹理格式(16 位或 32 位浮点数)。默认输出格式为 16 位浮点 EXR。对于传入的纹理,必须启用 Texture Import Settings 中设置的 Read/Write enabled 标志。

编码的 EXR 数据将始终包含 Alpha 通道。

另请参阅:EXRFlagsEncodeToJPGEncodeToPNG

// 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); } } }