Outerra forum

Outerra Engine => Technology => Topic started by: Stef86 on September 16, 2010, 09:40:52 am

Title: Seamless Tiling
Post by: Stef86 on September 16, 2010, 09:40:52 am
Hello,

First of all, congratulations for your great engine.
I work on similar subjects, although the final objective is not the same. I think to know the effort required to achieve this type of software.

And justly. I have a quick question Regarding a special topic that I find difficult to solve perfectly.

As I understood, from a particular level of detail of quadtree, for each tile you generate on the fly the heightmag and also the normalmap; To do this, you use something like wavelets noise in order to add details.

How do you solve the problems of texels on the edges of textures to avoid the problem of seam.

The resampling algorithms such as bicubic implies to know the neighbor texels. Management by tiles do not help to resolve the problem (my problem)

Do You Use The toroidal mapping?. Do you update a wide texture with different texture tiles you need (problem of filtering resolved)  ?
or do you used a different technique?

Thank you very much
Best regards
Title: Seamless Tiling
Post by: cameni on September 16, 2010, 11:56:15 am
I guess you mean something like resampling the textures from the parent tile + adding noise, yes? We aren't doing it that way, the textures for each tile are generated from terrain data and attributes.

But since the terrain data refinement algorithm needs to look at the neighbors anyway, we had a similar problem. It was solved by keeping the borders as well, so that the children tiles could be computed from it seamlessly.
 This of course means that the children tiles have to keep the borders too, which may not be reasonably achievable with all refinement schemes though.
Title: Seamless Tiling
Post by: Stef86 on September 16, 2010, 12:31:19 pm
Yes, you understood my question! (Sorry for my "French" English)

My solution is used on embedded equipments (gles2.0). For performance reasons, I kept the edges (the first and last row + column) from neighbors
This is sufficient for our needs ... but limited for complex refinements (I tried)
Thank you for your reply