Объявление
public Color[] GetPixels(CubemapFace face, int arrayElement, int miplevel);public Color[] GetPixels(CubemapFace face, int arrayElement);
Параметры
face | Грань кубической карты, из которой считываются пиксельные данные. |
arrayElement | Элемент массива («срез»), из которого считываются пиксельные данные.. |
miplevel | MIP-уровень, с которого считываются пиксельные данные. По умолчанию используется 0 . |
Возвращает
Color[] Массив, содержащий копию запрошенных цветов пикселей, представленных структурами Color.
Описание
Получает копию данных о цвете пикселя для заданного уровня MIP данной грани данного фрагмента. Цвета представлены структурами Color.
Один вызов этой функции обычно быстрее, чем несколько вызовов GetPixel, особенно для больших текстур. Если приемлемо представление с более низкой точностью, GetPixels32 работает быстрее и использует меньше памяти, поскольку не выполняет преобразование целых чисел в числа с плавающей запятой. Для прямого просмотра данных пикселей используйте GetPixelData.
Для успешного выполнения этой функции Texture.isReadable должно быть true
, а данные не должны быть сжаты Crunch. GetPixels32 поддерживает текстуры, сжатые Crunch.
Возвращенный массив представляет собой сглаженный двумерный массив, в котором данные отображаются построчно: пиксели располагаются слева направо и снизу вверх. Размеры массива составляют width * height
мип-уровня. Если эта функция не работает, Unity выдает исключение.
Примечание. Предполагается, что шесть сторон каждой кубической карты видны снаружи. Это означает, что пиксели располагаются слева направо и сверху вниз (т. е. ряд за рядом). Если кубическая карта окружает мир, пиксели отображаются справа налево.
using UnityEngine;
public class CubemapArrayExample : MonoBehaviour
{
public CubemapArray source;
public CubemapArray destination;
void Start()
{
// Get a copy of the color data from the source CubemapArray, in high-precision float format.
// Each element in the array represents the color data for an individual pixel.
CubemapFace sourceFace = CubemapFace.PositiveX;
int sourceSlice = 0;
int sourceMipLevel = 0;
Color[] pixels = source.GetPixels(sourceFace, sourceSlice, sourceMipLevel);
// If required, manipulate the pixels before applying them to the destination texture.
// This example code reverses the array, which rotates the image 180 degrees.
System.Array.Reverse(pixels, 0, pixels.Length);
// Set the pixels of the destination CubemapArray.
CubemapFace destinationFace = CubemapFace.PositiveX;
int destinationSlice = 0;
int destinationMipLevel = 0;
destination.SetPixels(pixels, destinationFace, destinationSlice, destinationMipLevel);
// Apply changes to the destination CubemapArray, which uploads its data to the GPU.
destination.Apply();
}
}
Смотрите так же: SetPixels, GetPixelData, mipmapCount.