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

PaintContext

класс в UnityEngine.TerrainTools

Выполнено в:UnityEngine.TerrainModule

Описание

Контекст для операции рисования, которая может охватывать несколько связанных плиток Terrain.

Этот класс служит для применения операции редактирования к области ландшафта, которая может охватывать несколько фрагментов Terrain. PaintContext позволяет менять данные карты высот или карты слоёв, а также собирать данные нормалей в режиме только для чтения (записывать нормали нельзя, поскольку они выводятся из карты высот).

PaintContext вычислит соответствующие области на каждом Территории и соберет исходные данные в один sourceRenderTarget. Ваша операция редактирования может затем читать из sourcerenderTarget и записывать измененные данные в destinationRenderTarget. После того, как вы применили операцию редактирования, PaintContext может также записывать измененные данные в destinationRenderTarget обратно в каждую Территорию, обеспечивая отсутствие швов между ними.

Самый простой способ использования PaintContext — через вспомогательные функции в TerrainPaintUtility:
TerrainPaintUtility.BeginPaintHeightmap, TerrainPaintUtility.EndPaintHeightmap, TerrainPaintUtility.BeginPaintTexture, TerrainPaintUtility.EndPaintTexture, TerrainPaintUtility.CollectNormals и TerrainPaintUtility.ReleaseContextResources.

Вы также можете использовать PaintContext более непосредственно через его членские функции. В общем, они используются в следующем порядке:
1) изготовитель, PaintContext.CreateFromBounds - Построить PaintContext с целевым рельефом и регионом для редактирования
2) PaintContext.CreateRenderTargets - Создать источник и назначение RenderTargets
3) PaintContext.GatherHeightmap, PaintContext.GatherAlphamap, PaintContext.GatherNormals - Чтение из плитки местности в sourceRenderTarget
4) Применить операции редактирования, чтение из sourceRenderTarget, и запись в destinationRenderTarget
5) PaintContext.ScatterHeightmap, PaintContext.ScatterAlphamap - Запись из destinationRenderTarget в плитки Территория (необязательно)
6) PaintContext.Cleanup - Уничтожить ресурсы RenderTarget (требуется, если вы вызываете CreateRenderTargets)
7) PaintContext.ApplyDelayedActions - Применять любые отсроченные действия, которые выполняют дорогостоящие обновления


Дополнительные ресурсы: TerrainPaintTool<T0>

Статические свойства

Свойство Описание
kNormalizedHeightScaleUnity использует это значение внутренне для преобразования [0, 1] значения высоты в значение текселя, которое хранится в TerrainData.heightmapTexture.

Свойства

Свойство Описание
destinationRenderTexture(Только для чтения) RenderTexture, который операция редактирования записывает для изменения данных.
heightWorldSpaceMinМинимальная высота всех плиток Территории, которые PaintContext касается в мировом пространстве.
heightWorldSpaceSizeДиапазон высот (от Min до Max) всех плиток Территория, которые эта PaintContext касается в мире.
oldRenderTexture(Только для чтения) Значение RenderTexture.active в момент вызова CreateRenderTargets.
originTerrain(Только для чтения) Территория, использованная для постройки PaintContext.
pixelRect(Только для чтения) Прямоугольник пикселей, который представляет PaintContext.
pixelSize(Только для чтения) Размер PaintContext пикселя в единицах местности (как определено originTerrain.)
sourceRenderTexture(Только для чтения) Цель рендеринга, в которой хранятся исходные данные из плиток Terrain.
targetTextureHeight(Только для чтения) Высота текстуры целевой местности. Это разрешение для одной местности.
targetTextureWidth(Только для чтения) Ширина текстуры целевой местности. Это разрешение для одной местности.
terrainCount(Только для чтения) Количество плиток Территория в этом PaintContext.

Конструкторы

Конструктор Описание
PaintContextСоздает новый PaintContext, для редактирования текстуры на поверхности, в области, определенной pixelRect.

Открытые методы

Метод Описание
CleanupОсвободит выделенные ресурсы этого PaintContext.
CreateRenderTargetsСоздает sourceRenderTexture и destinationRenderTexture.
GatherСобирает заданные пользователем данные Текстуры в sourceRenderTexture.
GatherAlphamapСобирает информацию альфа-карты в sourceRenderTexture.
GatherHeightmapСобирает информацию heightmap в sourceRenderTexture.
GatherHolesСобирает информацию об отверстиях в sourceRenderTexture.
GatherNormalsСобирает обычную информацию в sourceRenderTexture.
GetClippedPixelRectInRenderTexturePixelsПолучает отрезанный пиксель прямоугольника для Terrain, относительно PaintContext текстур рендеринга.
GetClippedPixelRectInTerrainPixelsПолучает обрезанный прямоугольник пикселей для Terrain.
GetTerrainПолучает Территорию из PaintContext.
ScatterПрименяет отредактированный PaintContext путем копирования изменений обратно в заданные пользователем RenderTextures для исходных плиток Terrain.
ScatterAlphamapПрименяет отредактированную альфа-карту PaintContext путем копирования изменений обратно в исходные плитки Территория.
ScatterHeightmapПрименяет отредактированную карту высот PaintContext путем копирования изменений обратно в исходные плитки Территория.
ScatterHolesПрименяет отредактированные отверстия рельефа PaintContext путем копирования изменений обратно в исходные плитки рельефа.

Статические методы

Метод Описание
ApplyDelayedActionsСброс отсроченных действий, созданных модификациями PaintContext heightmap и alphamap.
CreateFromBoundsСоздает PaintContext, который можно использовать для редактирования текстуры на Территории, в области, определенной boundsInTerrainSpace и extraBorderPixels.