ComputeShader.SetTextureFromGlobal
Declaration
public void SetTextureFromGlobal(int kernelIndex, string name, string globalTextureName);public void SetTextureFromGlobal(int kernelIndex, int nameID, int globalTextureNameID);Параметры
| Параметр | Описание |
|---|---|
| kernelIndex | Для какого ядра устанавливается текстура. См. FindKernel. |
| nameID | Имя свойства ID, используйте Shader.PropertyToID, чтобы получить его. |
| имя | Имя переменной буфера в коде шейдера. |
| globalTextureName | Глобальное свойство текстуры для назначения шейдеру. |
| globalTextureNameID | Имя свойства ID, используйте Shader.PropertyToID, чтобы получить его. |
Описание
Устанавливает параметр текстуры из глобального свойства текстуры.
Эта функция может либо установить обычную текстуру, которая читается в вычислительном шейдере, либо текстуру выхода, в которую пишет шейдер. Для текстуры выхода, она должна быть RenderTexture с включенным флагом случайной записи, см. RenderTexture.enableRandomWrite.
Буферы и текстуры устанавливаются для каждого ядра. Используйте FindKernel для поиска индекса ядра по имени функции.
Дополнительные ресурсы: FindKernel, SetBuffer, SetTexture, Shader.SetGlobalTexture.
// Assign the CameraMotionVectorsTexture global texture to a compute texture using System; using UnityEngine;
public class SampleBehaviour : MonoBehaviour { public int renderTargetWidth; public int renderTargetHeight; ComputeShader myComputeShader;
void ComputeUsingMotionVector() { int kKernelIndex = 0;
myComputeShader.SetTextureFromGlobal(kKernelIndex, "computeTexture", "_CameraMotionVectorsTexture"); myComputeShader.Dispatch(kKernelIndex, renderTargetWidth, renderTargetHeight, 1); } }