SMAABlendingWeightCalculationVS
void SMAABlendingWeightCalculationVS(float2 texcoord,out float2 pixcoord,out float4 offset[3]) {
- 计算当前纹理左边对应的纹理像素值位置。
pixcoord = texcoord * SMAA_RT_METRICS.zw;
- 计算偏移值其中的 0.125, 0.25, 1.25 等偏移值用于双线性采样。
offset[0] = mad(SMAA_RT_METRICS.xyxy, float4(-0.25, -0.125, 1.25, -0.125), texcoord.xyxy);
offset[1] = mad(SMAA_RT_METRICS.xyxy, float4(-0.125, -0.25, -0.125, 1.25), texcoord.xyxy);
偏移值图示
-
- 计算搜索终点由于使用了纹理双线性采样,所以搜索长度 = 搜索步数 * 2
offset[2] = mad(SMAA_RT_METRICS.xxyy,float4(-2.0, 2.0, -2.0, 2.0) * float(SMAA_MAX_SEARCH_STEPS),float4(offset[0].xz, offset[1].yw));