Xcode 如何从金属着色器中的上一个片段传递中获取最大X(红色)值?

Xcode 如何从金属着色器中的上一个片段传递中获取最大X(红色)值?,xcode,shader,arkit,meta,metalkit,Xcode,Shader,Arkit,Meta,Metalkit,我有两张通行证: 节点\u查找\u最大\u通行证 节点通过 如何从节点\u查找\u max\u通过获取最大值颜色 如何“生成/设置”这个全局变量AXXFloatForeveryFrame变量,在节点上用color.x中的最大值更新它,然后在其节点片段中的下一个过程节点(pass中访问这个全局变量AXXFloatForeveryFrame fragment half4 node_find_max_fragment(NodeColorInOut vert [[stage_in]]) {

我有两张通行证:

  • 节点\u查找\u最大\u通行证

  • 节点通过

  • 如何从节点\u查找\u max\u通过获取最大值颜色

    如何“生成/设置”这个全局变量AXXFloatForeveryFrame变量,在节点上用color.x中的最大值更新它,然后在其节点片段中的下一个过程节点(pass中访问这个全局变量AXXFloatForeveryFrame

    fragment half4 node_find_max_fragment(NodeColorInOut vert [[stage_in]])
    {
        float4 color =  float4((vert.center.x + 1.0) * 0.5 , (vert.center.y + 1.0) * -0.5, 0.0, 0.0);
    
        //I wanted to do something like:
    
        if(globalVariableMaxXFloatForEveryFrame <= color.x)
           globalVariableMaxXFloatForEveryFrame = color.x; // update higher value
    
        return half4(color);
    }
    
    fragment half4 node_fragment(NodeColorInOut vert [[stage_in]])
    {
        float4 color =  float4((vert.center.x + 1.0) * 0.5 , (vert.center.y + 1.0) * -0.5, 0.0, 0.0);
    
        //Use calculated Max X from previous pass
        color.x = globalVariableMaxXFloatForEveryFrame;
    
        return half4(color);
    }