public static byte[] EncodeToEXR (Texture2D tex, Texture2D.EXRFlags flags= Texture2D.EXRFlags.None);

参数

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

描述

将该纹理编码为 EXR 格式。

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

最好将该函数用于 HDR 纹理格式(16 位或 32 位浮点数)。默认输出格式为 16 位浮点 EXR,传递的纹理必须在导入设置中设置了 Is Readable 标志。

编码的 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); } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961