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

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); } }