Directx 赋予绿色一个值会以某种方式清除红色

Directx 赋予绿色一个值会以某种方式清除红色,directx,hlsl,pixel-shader,Directx,Hlsl,Pixel Shader,我有一个像素着色器,其中有以下部分 imgcolor.b = 0; imgcolor.r = 1 - dist1 / 5; imgcolor.g = 0; 如果我做出以下改变 imgcolor.b = 0; imgcolor.r = 1 - dist1 / 5; imgcolor.g = 1 - min(1,max(0,dist2)); 如果dist1和dist2都是浮动的,则红色值在不应为0的部分变为0。 为什么会发生这种情况?我如何预防它 第一种情况: 第二种情况:链接到着色器的源代码并

我有一个像素着色器,其中有以下部分

imgcolor.b = 0;
imgcolor.r = 1 - dist1 / 5;
imgcolor.g = 0;
如果我做出以下改变

imgcolor.b = 0;
imgcolor.r = 1 - dist1 / 5;
imgcolor.g = 1 - min(1,max(0,dist2));
如果dist1和dist2都是浮动的,则红色值在不应为0的部分变为0。 为什么会发生这种情况?我如何预防它

第一种情况:


第二种情况:

链接到着色器的源代码并提供注释:您可以发布无损截图吗?jpeg压缩伪影使您很难看到实际情况。如果您右键单击图片并选择“查看原始”,您将看到无损版本。此处暗中插入:尝试初始化dist2,如果有那么简单的话:。不,初始化没有什么区别。