Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用 HLSL 代码作为实验的基础,但我不明白 uv.zw 代表什么?表明:
float4 uv0 : TEXCOORD0 ... uv0.zw;
紫外线不是只有2吗?我知道 uvw 支持 3 但第四个组件是什么?Α?
在网上的例子中,我只能找到TEXCOORD0used for float2values,而不是float4.
TEXCOORD0
float2
float4
纹理可以是 3D 的,因此纹理坐标可以有第三维,z。
如果您熟悉齐次坐标,您就会知道在 3D 坐标上表示各种变换的一种方法是通过齐次坐标进行 4D,它添加了一个“w”坐标。
GPU中的所有值实际上都是float4的幕后——声明float或float2等只是限制了使用的通道数。
如果 float2 值访问 .zw 通道,它在技术上是未定义的,但编译器可能会接受它。所以要小心。
在 HLSL 中,名称“uv”没有内在定义——您可以使用该名称声明任何类型的变量。