Unity 6.3
0 онлайн 34 гостей 3 в системе
Вход

TerrainData.CopyActiveRenderTextureToTexture

Declaration

public void CopyActiveRenderTextureToTexture(string textureName, int textureIndex, RectInt sourceRect, Vector2Int dest, bool allowDelayedCPUSync);

Параметры

Параметр Описание
textureName Имя текстуры местности, в которую будет копироваться текстура.
textureIndex Индекс текстуры местности, в которую будет копироваться.
sourceRect Часть активной текстуры отображения, которую нужно скопировать.
рука Координаты X и Y текстуры местности, в которую будет копироваться текстура.
allowDelayedCPUSync Указывает, разрешать ли задержку CPU синхронизации текстуры.

Описание

Копирует указанную часть активной текстуры RenderTexture в текстуру Территория.

Если allowDelayedCPUSync параметр установлен на true, и платформа поддерживает копирование между RenderTexture и a Texture2D, Unity выполняет GPU копия из активного RenderTexture для текстуры Terrain. Этого достаточно для рендеринга Terrain, но вам нужно будет вызвать SyncTexture затем для синхронизации CPU часть текстуры.

Если allowDelayedCPUSync параметр установлен на false, или платформа не поддерживает копирование текстур, Unity немедленно считывает содержимое активного RenderTexture, и обновляет как CPU и GPU части текстуры Территория.

Unity рекомендует создать исходную текстуру для копирования в формате, который Terrain.heightmapRenderTextureFormat указывает, и вызывает HLSL функция PackHeightmap перед записью текстуры рендеринга в исходный файл. PackHeightmap, убедитесь, что у вас есть директива включения #include "UnityCG.cginc" в вашей тени.

Дополнительные ресурсы: DirtyTextureRegion, SyncTexture.