float4 color = tex2D(inputSampler, TexCoord);
//compute distance from center
float distance = color.a>0.3f?length(TexCoord - 0.5f):1.0f;
什么是color.a>
,为什么第二行中间有;
?
答案 0 :(得分:3)
对原始问题的回复:“有人可以告诉我这段HLSL代码的含义是什么吗?
float4 color = tex2D(inputSampler, TexCoord);
//compute distance from center
float distance = color.a>0.3f?length(TexCoord - 0.5f):1.0f;
什么是color.a& gt,为什么会有;在第二行的中间?“
它的html转义序列搞砸了。 >
应为>
(“大于”符号)。
所以它应该是:
float4 color = tex2D(inputSampler, TexCoord);
//compute distance from center
float distance = color.a > 0.3f?length(TexCoord - 0.5f):1.0f;
同样,如果您遇到<
,则可能是<
(“小于”符号)。其他常见的是:
"
- &gt; '"
'&
- &gt; '&
'
- &gt; ''(空间)像素着色器实际上在做的是,此时采样纹理的alpha大于0.3
,distance
是从采样的texcoord(U,V)位置到({ 0.5,0.5)即从中采样的纹理的中心。如果字母为0.3
或更低,则distance
设置为1.0f
。
稍后在着色器中使用距离值来应用某些像素效果。