[HN Gopher] Practical Real-Time Hex Tiling
___________________________________________________________________
Practical Real-Time Hex Tiling
Author : adamrezich
Score : 130 points
Date : 2022-07-18 15:53 UTC (7 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| jayd16 wrote:
| Anyone have an elevator pitch of the dithering technique? Is it
| consistent across mip levels and camera angles? Does it take
| samples or is it just math?
| max_ wrote:
| Also, a relevant project Wave Function Collapse[0] [0]:
| https://github.com/mxgmn/WaveFunctionCollapse
| l0b0 wrote:
| Are there any popular game mods implementing hex tiling in
| originally square-tiled games? A lot of classics, like Skyrim,
| should look a lot better when viewing tiled surfaces at a
| distance.
| billconan wrote:
| > Using hex-tiling allows us to hide the repetition but requires
| a solution to hide the seams between adjacent hex tiles.
|
| I don't understand this part. If I use square tiles and hide the
| seams between adjacent tiles, will it look OK? What's the benefit
| of using hex tiles?
| pugworthy wrote:
| You don't get the typical visual repetition of features along
| X/Y lines
| jayd16 wrote:
| You could use world position (or just some non-uniform
| sampling) to offset the UVs and get a similar effect, no? Is
| hex significant or is it just one of any number of ways to
| break up the uniformity?
| carbadtraingood wrote:
| In practice, yes, it's very common to use a shader to
| sample the texture with some rotation and noise. Most games
| have a shader level implementation to address this, and
| we've done that for a decade at least.
|
| See: https://iquilezles.org/articles/texture repetition/
| for a good breakdown on some techniques.
| adamrezich wrote:
| the URL should have been
| https://iquilezles.org/articles/texturerepetition but
| this is indeed a great resource
| rootlocus wrote:
| > If I use square tiles and hide the seams between adjacent
| tiles, will it look OK?
|
| Square tiling is very obvious, as you can see from the first
| example [0]. Hex tiling shifts tiles to a less obvious pattern.
| Also, as I can see from the video, tiles can be rotated while
| hiding the seams perfectly, which eliminates repetition
| altogether.
|
| 0.
| https://github.com/mmikk/mmikk.github.io/blob/master/picture...
| BeeOnRope wrote:
| Is that first example comparing squaring filing with the same
| _fixed_ rotation for each tile versus hex-tiling with random
| or otherwise varying rotation?
| ajuc wrote:
| Nice, but the example is unfair, you can make rect tiling look
| just as good.
| capableweb wrote:
| With a single texture and without wasting a bunch of
| performance modifying/filtering it on the fly? How exactly?
| Would make a great addition to this discussion :)
| agweber wrote:
| I wonder if having a single texture and randomly rotation it
| with blending the edges on a square grid would look just as
| good or not. The texture would just have to be larger than
| the tile it covers
| hypertele-Xii wrote:
| In another comment this was linked:
| https://iquilezles.org/articles/texturerepetition/
|
| It _does_ waste performance, that 's unavoidable.
| kibwen wrote:
| Hex grids are the dual of triangle grids, right? Does the
| approach here also apply to triangle grids?
| adamrezich wrote:
| I think the "gradient around the edges" of the tiles might work
| better with hexagons than triangles
| teej wrote:
| You may also enjoy this post originally from The Witness game dev
| blog: The Nebraska Problem. It's about how to arrange a series of
| sprites to avoid visible seam patterns in between them.
|
| https://news.ycombinator.com/item?id=7692332
| jstanley wrote:
| Wow, this looks incredibly good considering that the solution for
| hiding the seams is just to blend things together with a noisy
| gradient. (EDIT: Or I've misunderstood how it works!)
|
| I assume it works a lot less well on more isotropic textures
| (e.g. what does wood grain look like?) than on the examples
| presented here.
|
| What do pathological cases look like?
| lattalayta wrote:
| Here are some of the original papers for the technique.
| Although I believe there have been some updates and
| improvements since.
|
| https://hal.inria.fr/hal-01824773/file/HPN2018.pdf
| https://www.jcgt.org/published/0008/04/02/paper.pdf
| Pxtl wrote:
| I'm also curious how this would work with a regular grid
| instead of hex-tiled. That is, if you blended the seams and
| randomly rotated each square as they do with hex-tiling, would
| it still look good?
|
| And are they splatting a random hexagonal sample from a
| repeating tiled plane, or are they splatting the exact same
| image, but arbitrarily rotated? That is, are they using the
| fact that the image tiles cleanly or does this technique
| completely obviate the need to use a tiled image?
___________________________________________________________________
(page generated 2022-07-18 23:00 UTC)