Opengl 着色器中2个几何体的绝对差之和(单位)

Opengl 着色器中2个几何体的绝对差之和(单位),opengl,unity3d,glsl,shader,hlsl2glsl,Opengl,Unity3d,Glsl,Shader,Hlsl2glsl,我试图在我的着色器中做一个绝对差之和,并将单个结果写回统一的均匀浮点。 在着色器中,我有两个具有相同数量顶点的几何体,它们一对一地映射 // substract vertices float norm = 10; float error=infereCrater.vertex.y-v.vertex.y; error = error*error*norm; o.debugColo

我试图在我的着色器中做一个绝对差之和,并将单个结果写回统一的均匀浮点。 在着色器中,我有两个具有相同数量顶点的几何体,它们一对一地映射

            // substract vertices
            float norm = 10;
            float error=infereCrater.vertex.y-v.vertex.y;
            error = error*error*norm;
            o.debugColor = float3(error,1-error ,0.0f);
            //////
            o.posWorld =mul(_Object2World,v.vertex);
            o.normalWorld = normalize(mul(float4(v.normal,0.0),_World2Object).xyz);
            o.tangentWorld = normalize(mul(float4(v.tangent,0.0),_World2Object).xyz);
            o.binormalWorld = cross(o.normalWorld,o.tangentWorld);
            o.tex = v.texcoord;
            o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
            TRANSFER_VERTEX_TO_FRAGMENT(o);
            return o;
        }
我可以计算每个顶点的误差,并根据差异更改曲面的颜色。 我遇到了一个障碍,我不知道如何同步所有线程并开始添加值

在第一个顶点着色器完成后,是否有方法调用另一个顶点着色器

顶点着色器如何读取与其相邻顶点的值?(不要认为这是可能的,因为在线程的本地内存中)

或者可能有一个全局数组来存储差异值,将其复制到CPU(因为延迟,我不希望这样),然后将它们添加到CPU中

我不想使用计算着色器,因为我不在Windows中