MonoBehaviour.OnRenderImage(RenderTexture,RenderTexture)
Параметры
| Параметр | Описание |
|---|---|
| источник | RenderTexture, содержащий исходное изображение. |
| место назначения | RenderTexture для обновления с измененным образом. |
Описание
Функция события, которую Unity вызывает после того, как Camera закончил рендеринг, которая позволяет изменить окончательное изображение Camera.
В течение Built-in Render Pipeline, Unity звонки OnRenderImage на MonoBehaviours которые прикреплены к одному и тому же GameObject в качестве инвалида Camera компонент, после Camera Вы можете воспользоваться OnRenderImage Эти эффекты работают путем чтения пикселей из исходного изображения, с помощью специального программного обеспечения, которое Unity для изменения внешнего вида пикселей, а затем отображение результата в конечном изображении. Вы обычно используете Graphics.Blit для выполнения этих шагов.
Если несколько скриптов на одном Camera осуществление OnRenderImage, Unity называет их в том порядке, в каком они фигурируют в Camera Inspector окна, начиная с верхней части. destination одной операции source следующего; внутренне, Unity создает одну или несколько временных RenderTextures для хранения этих промежуточных результатов.
Он Android, чтобы избежать полосы или использовать альфа в полноэкранных эффектов, установить PlayerSettings.use32BitDisplayBuffer до true.OnRenderImage не поддерживается в Scriptable Render Pipeline. Чтобы создать пользовательские эффекты полноэкранного режима в Universal Render Pipeline (URP), используйте ScriptableRenderPass API. Чтобы создать настраиваемые полноэкранные эффекты в High Definition Render Pipeline (HDRP), используйте a Полноэкранный пользовательский пропуск.
Информация об использовании Unity's предварительно построенные последующие эффекты обработки, см. Последующая обработка.
using UnityEngine;
public class ExampleClass : MonoBehaviour { // A Material with the Unity shader you want to process the image with public Material mat;
void OnRenderImage(RenderTexture src, RenderTexture dest) { // Read pixels from the source RenderTexture, apply the material, copy the updated results to the destination RenderTexture Graphics.Blit(src, dest, mat); } }