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

Parameters

texThe texture to convert.
flagsFlags used to control compression and the output format.

Description

Encodes this texture into the EXR format.

This function returns a byte array which is the EXR file data. Write this data to disk to get the data in the EXR file format.

It is best to use this function for HDR texture formats (either 16-bit or 32-bit floats). The default output format is 16-bit float EXR. For the texture pass in, you must enable the Read/Write enabled flag set in the Texture Import Settings.

The encoded EXR data will always contain an alpha channel.

See Also: 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); } } }