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中