HLSL 中的比较操作

Comparison operations in HLSL

我正在阅读 CSM 阴影映射的 HLSL 实现,遇到了一行我不太理解的代码

float3 pos;
float3 CascadeDistances;
...
float3 weights = ( pos.z < CascadeDistances );

谁能告诉我这里发生了什么,这个任务的结果是什么。

我认为它可能会扩展到类似

float3 weights;
weights.x = ( pos.z < CascadeDistances.x ) ? 1 : 0;
weights.y = ( pos.z < CascadeDistances.y ) ? 1 : 0;
weights.z = ( pos.z < CascadeDistances.z ) ? 1 : 0;

有人可以确认这是否正确吗,如果我跑题了。

如有任何帮助,我们将不胜感激。

我联系了这个着色器的作者,过了一段时间他回复并确认这就是这个特定表达式的计算方式