cesium-native
cesium-native copied to clipboard
Allow non-linear screen space error
This issue is triggered by this forum post
Right now, the computation of the screen space error from the geometric error and the distance is linear, as in sse = geometricError / distance
(with some more or less constant factors sprinkled in).
It could be a reasonable demand to use higher detail for things that are closer, taking the distance into account non-linearly. For example, sse = geometricError / pow(distance, someExponent)
, with someExponent
being 1.0 by default, or 0.9 to give a higher detail to elements that are closer to the viewer.
This could be implemented trivially ("Just add someExponent
to TilesetOptions
and pass it along..."), but of course, if something like this is implemented, it should be offered in a more generic form. As such, this issue is only one special instance of all the thoughts and scenarios that I compressed into https://github.com/CesiumGS/cesium-native/issues/126 , but to have an overview of what could be possible with a few abstractions for the key concepts like "culling", "load priorization" etc., I'll mention it dedicatedly here.
CC https://github.com/CesiumGS/cesium-unreal/issues/323 I'm skeptical this would give good results, but it's simple enough to try so might as well give it a shot.
We did something like this in CesiumJS awhile back for fog:
In Cesium, the fog is a blend of the atmosphere color and the terrain on the horizon. Terrain tiles that would be partially in fog will have their screen-space error increased, allowing lower-resolution terrain to be rendered. Terrain tiles that are completely in the fog will be culled completely or not even requested.
https://cesium.com/blog/2015/11/12/fog/
Just FYI, not for or against it.
这个问题是由这个论坛帖子触发的
现在,根据几何误差和距离计算屏幕空间误差是线性的,如
sse = geometricError / distance
(撒有一些或多或少的常数因子)。考虑到_非线性距离,对__较近的事物使用__更高的_细节可能是合理的要求。例如,默认值为 1.0,或 0.9 为更靠近查看者的元素提供更高的细节。____
sse = geometricError / pow(distance, someExponent)``someExponent
这可以简单地实现(“只需添加
someExponent
并TilesetOptions
传递它......”),但是当然,如果实现了这样的东西,它应该以更通用的形式提供。因此,这个问题只是我压缩到#126中的所有想法和场景的一个特殊实例,但为了概述通过对“剔除”、“加载优先级”等关键概念进行一些抽象可能实现的功能等等,这里专门提一下。
cesium for unreal c ++ who change?