Параметры
tex | Текстура для преобразования. |
flags | Флаги, используемые для управления сжатием и выходным форматом. |
Описание
Кодирует эту текстуру в формат EXR.
Эта функция возвращает массив байтов, который представляет собой данные файла EXR. Запишите эти данные на диск, чтобы получить данные в формате файла EXR.
Эту функцию лучше всего использовать для форматов текстур HDR (16-битных или 32-битных с плавающей запятой). Выходной формат по умолчанию — 16-битный EXR с плавающей запятой. Для передачи текстуры Texture.isReadable должно быть true
..
Закодированные данные EXR всегда будут содержать альфа-канал.
Для одноканальных красных текстур ( R8
, R16
, RFloat
и RHalf
), закодированные данные будут в оттенках серого.
// 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);
}
}
}
Смотрите так же: EncodeArrayToEXR, EncodeNativeArrayToEXR, EncodeToPNG, EncodeToJPG, EncodeToTGA.