Directx HLSL中的比较运算

Directx HLSL中的比较运算,directx,shader,hlsl,pixel-shader,Directx,Shader,Hlsl,Pixel Shader,我正在阅读CSM阴影映射的HLSL实现,遇到了一行我不太了解的代码 float3 pos; float3 CascadeDistances; ... float3 weights = ( pos.z < CascadeDistances ); float3位; 浮动距离; ... 浮动3重量=(位置z

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

float3 pos;
float3 CascadeDistances;
...
float3 weights = ( pos.z < CascadeDistances );
float3位;
浮动距离;
...
浮动3重量=(位置z<距离);
有人能告诉我这里发生了什么,这次任务的结果是什么吗

我想它可能会扩展到像

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;
float3权重;
权重x=(位置z<0.x)?1 : 0;
权重y=(位置z<0.y)?1 : 0;
权重z=(位置z<0.z)?1 : 0;
有人能确认一下这是否正确,或者我是否偏离了方向


任何帮助都将不胜感激

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