Error metrics in terrain programming

Started by
1 comment, last by Zipster 16 years, 11 months ago
Hi everyone, I want you to know whether you agree with the following. For a certain triangulation (LOD), its maximum object-space (absolute) error would be e1 = max ( |Zi - INTi| )          &nbspi where: "i": any vertex from the full-detailed mesh (the heightfield) "Zi": the vertical coordinate of the vertex "i" in the full-detailed mesh "INTi": the vertical coordinate of the imaginary vertex "i" in the approximated mesh (LOD) -i.e. an interpolation I have realized that some terrain algorithms propagate the error of the longest edge bisection upwards the nodes (triangles) of a binary tree: e2 = max ( Esub, |Z - INT| ) where: "Z": is the vertical position of the current vertex (the one located in the mid-point of the longest edge of the current triangle) "INT": the same as INTi but for the current vertex "Esub": the maximum error of the two children However, according to the previous this is not correct, since in certain situations a less-detailed LOD would generate an error which is greater than e2: Let's suppose the following situation : Notice that the red arrow, which is the longest error with respect to the full-detailed mesh, is never computed in the second error metric. Please, give me your opinion
Advertisement
I agree with what you're presenting.

Can you use pre-computed "roughness" values to replace the vertex error metrics?
If depends what the goal of your metric is. If you're trying to measure a sort of "global error" for any given LOD, then yes that metric wouldn't be suitable. You'd either want max displacement taken across the entire height-field, or the sum of the squared displacements, etc.

But I believe it's generally accepted that lower LODs are going to have greater global error anyway, so it makes more sense to try to minimize how how error you introduce at each new level, in which case the second metric seems fine.

This topic is closed to new replies.

Advertisement