OtisFX
OtisFX copied to clipboard
Wrong distance calculating in MagicBorder.fx?
// The closer to the corner, the stronger the depth set for that corner has to be taken into account, so the weight is 1-distance_to_corner
float distanceToCorner = 1-distance(float2(0, 0), coord);
float2 average = float2((LeftTopCornerDepth/1000.0) * distanceToCorner, distanceToCorner);
distanceToCorner = 1-distance(float2(1, 0), coord);
average.x += ((RightTopCornerDepth/1000.0) * distanceToCorner);
average.y += distanceToCorner;
distanceToCorner = 1-distance(float2(1, 1), coord);
average.x += ((RightBottomCornerDepth/1000.0) * distanceToCorner);
average.y += distanceToCorner;
distanceToCorner = 1-distance(float2(0, 1), coord);
average.x += ((LeftBottomCornerDepth/1000.0) * distanceToCorner);
average.y += distanceToCorner;
If I understand correctly, the distance(corner, coord) function will give out a value between 0 and sqrt(2). Then distanceToCorner can be negative sometimes. I'm not sure if it's designed to be this, but I think 1 - distance(corner, coord)/sqrt(2) looks more resonable in the image.