kernelIndex | 为哪个内核设置纹理。请参阅 FindKernel。 |
nameID | 属性名称 ID,使用 Shader.PropertyToID 获取它。 |
name | 着色器代码中缓冲区变量的名称。 |
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); } }