我正在使用Unity的计算着色器来写入一个渲染纹理,稍后将使用它。我想输入到渲染纹理中的值是0和1,因此为了避免使用大量无用的内存,我正在寻找可以用于计算着色器中渲染纹理的较小类型。我看到他在CPU上创建的渲染纹理格式可以设置为RenderTextureFormat.R8,我尝试使用它,但我不知道在计算着色器中声明渲染纹理时使用哪种类型(它不适用于_int8)。此外,我发现当我在计算着色器中声明渲染纹理时,可以使用bool类型,但我不知道该用哪种渲染纹理格式...
RenderTextureFormat.R8
_int8
bool
j1dl9f461#
正如Shingo所说,较小的类型是一个8位整数,它在渲染纹理创建中由RenderTextureFormat.R8定义,然后在计算着色器中的渲染纹理声明中由unorm float定义。Unity手册中有一个table总结了不同的RenderTextureFormat,在计算着色器中有等价的HLSL。
unorm float
RenderTextureFormat
HLSL
1条答案
按热度按时间j1dl9f461#
正如Shingo所说,较小的类型是一个8位整数,它在渲染纹理创建中由
RenderTextureFormat.R8
定义,然后在计算着色器中的渲染纹理声明中由unorm float
定义。Unity手册中有一个table总结了不同的RenderTextureFormat
,在计算着色器中有等价的HLSL
。