Объявление
public static RenderTexture GetTemporary(RenderTextureDescriptor desc);public static RenderTexture GetTemporary(int width, int height, int depthBuffer = 0, RenderTextureFormat format = RenderTextureFormat.Default, RenderTextureReadWrite readWrite = RenderTextureReadWrite.Default, int antiAliasing = 1, RenderTextureMemoryless memorylessMode = RenderTextureMemoryless.None, VRTextureUsage vrUsage = VRTextureUsage.None, bool useDynamicScale = false);
Параметры
width | Ширина в пикселях. |
height | Высота в пикселях. |
depthBuffer | Биты буфера глубины (0, 16 или 24). Обратите внимание, что только 24-битная глубина имеет трафаретный буфер.. |
format | Формат текстуры рендеринга. |
readWrite | Режим преобразования цветового пространства. |
antiAliasing | Количество сэмплов сглаживания для хранения в текстуре. Допустимые значения: 1, 2, 4 и 8. Выдает исключение, если передано любое другое значение. |
memorylessMode | Режим рендеринга текстуры без памяти. |
desc | Используйте этот RenderTextureDesc для настроек при создании временной RenderTexture. |
Описание
Разместите временную текстуру рендеринга.
Эта функция оптимизирована для тех случаев, когда вам нужна быстрая RenderTexture для выполнения временных расчетов. Освободите его с помощью ReleaseTemporary, как только вы закончите с ним, чтобы при необходимости его можно было повторно использовать в другом вызове.
Внутри Unity хранится пул временных текстур рендеринга, поэтому вызов GetTemporary чаще всего просто возвращает уже созданную (если размер и формат совпадают). Эти временные текстуры рендеринга фактически уничтожаются, если они не используются в течение нескольких кадров.
Если вы выполняете серию "блитов" постобработки, для повышения производительности лучше получать и выпускать временную текстуру рендеринга для каждого блита, а не получать одну или две текстуры рендеринга заранее и использовать их повторно. Это в основном полезно для мобильных (на основе тайлов) и систем с несколькими графическими процессорами: GetTemporary внутренне выполнит вызов DiscardContents, что поможет избежать дорогостоящих операций восстановления предыдущей текстуры рендеринга. содержимое.
Вы не можете зависеть от какого-либо конкретного содержимого RenderTexture, которое вы получаете из функции GetTemporary. Это может быть мусор, или он может быть очищен до определенного цвета, в зависимости от платформы.
Смотрите так же: ReleaseTemporary.