我正在创建绘图应用程序。在这里,触摸点从0、1、2、3、4开始依次排列。我在点[0,1,2],[0,2,3] [0,3,4]之间绘制了三角形。
此处在[0,3,4]之间绘制三角形时,存在重叠区域。我需要避免重叠区域。如果存在重叠,则需要使用“片段着色器”(Color Shader)将其着色为其他颜色。
当前,我在屏幕外纹理中渲染此点。然后将纹理传递给片段着色器,以检查当前片段是否已经有颜色。如果找到“颜色”,我将在“片段着色器”中返回不同的颜色。但这不起作用。
任何解决方案..解决....
fragment float4 fillBrushFragment(VertexOutFillBrush params[[stage_in]],
texture2d<float , access::sample>texture [[texture(0)]])
{
constexpr sampler defaultSampler;
float4 color = float4(texture.sample(defaultSampler, float2(params.currentTextureCoordinates))) ;
if(color.w > 0.02){
return float4(0.0,0.0,0.0,0.0);
}
return float4(1.0,1.0,0.0,0.5);
}