版本:Unity 6 (6000.0)
语言English
  • C#

ComputeShader.SetTextureFromGlobal

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交内容,但我们确实会阅读用户提出的每一条修改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void SetTextureFromGlobal(int kernelIndex, string name, string globalTextureName);

声明

public void SetTextureFromGlobal(int kernelIndex, int nameID, int globalTextureNameID);

参数

kernelIndex 为哪个内核设置纹理。请参阅 FindKernel
nameID 属性名称 ID,使用 Shader.PropertyToID 获取它。
name 着色器代码中缓冲区变量的名称。
globalTextureName 要分配给着色器的全局纹理属性。
globalTextureNameID 属性名称 ID,使用 Shader.PropertyToID 获取它。

描述

从全局纹理属性设置纹理参数。

此函数可以设置在计算着色器中读取的常规纹理,也可以设置由着色器写入的输出纹理。对于输出纹理,它必须是启用了随机写入标志的 RenderTexture,请参阅 RenderTexture.enableRandomWrite

缓冲区和纹理是按内核设置的。使用 FindKernel 通过函数名称查找内核索引。

其他资源:FindKernelSetBufferSetTextureShader.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); } }