I want to take a moment to talk about a problem I see with the Minecraft like structures that are scattered throughout the world of @Halo Infinite, and why they look the way they do. Before I start though, a foreword. I actually LOVE the idea of these... 1/19
...I just feel they have been implemented poorly for my own personal tastes. As usual, I'll dumb this down somewhat so that people can understand what is going on, versus what could be done better. Strap in for a geometry lesson kids. 2/19
As you can see, these structures are comprised of dozens of hexagonal pillars, all with different heights. These are designed to mimic both the look of natural forming rocks in the real world, coupled with the techno look of Halo. 3/19
(You can find out more on these real life structures and how they form naturally by searching for the Giants Causeway in Northern Island, its a fascinating read when you have the time). 4/19
So what's the deal? Why do these rocks look so poor in Halo? Well from what I can see these structures are constructed from a simple 6 sided cylinder. Very simple on the polygon budget of the scene as each cylinder (including top and bottom) would only use 20 tris(polygons). 5/19
The problem however, isn't from their geometric simplicity. From what I can tell, they are creating each side as its own smoothing group, which would then create a hard seam along the edge, like this: 6/19
So when you view them from any distance, they appear overly sharp and lacking in detail. This is done, to save on texture memory. If you use a simple mesh with hard seams, and then tile a texture over its surface, you can limit your texture usage. 7/19
In other words, you could use a simple 1024x1024 tile set (that will likely already be in memory) and tile it over each of these pillars. Very simple, very low cost on budget. However, not the best looking, as you can see. (You can spot the tiling easy) 8/19
Once you reach a distance, the pillars become very low quality as their texture mips into mush and looks almost like a single colour. So now you have a single colour hard edged shape which just looks... Bad... 9/19
How can this be resolved? Quite simple. We create a simple chamfered sculpt with a reusable normal map which would soften the lighting on the objects edges. We can actually use a single normal map for this process, even. 10/19
By using a single normal map blended into the main texture stages, we can essentially blend between two normal maps (one for the soft edges, and another for the actual surface texture detail). 11/19
The actual chamfer size however, is another key area that needs to be experimented with. this is very much a goldilocks situation, in which you need to test for the best solution. Too tight a chamfer results in no visible difference from before: 12/19
However too loose a chamfer can result in the objects looking blobby, and their detail is lost when viewed in full. This object no longer looks like a hexagonal shape, but more so a badly made cylinder: 13/19
But keep your chamfers close, not too tight but not too loose, and we can get this just right: 14/19
These chamfers in the normal map stage create much nicer lighting on the edges. Coupled with a better made texture that shows more detail, you would get a MUCH nicer result with only a few minutes work. 15/19
And so, lets have a quick look at how this looks in action, one compared to the other. The left has correct chamfer and normals, the right is how its current set up in the game: 16/19
Can you see the subtle difference here, and how much this impacts the visuals? This is actually only adding a small footprint (An additional 512x512 texture for the ENTIRE scene in the world). 17/19
You could take this much further and create individual sculpts for each hexagon, which is what I would have thought would be done in the first place. But just the small change above is a low cost fix for a big problem that changes things massively. 18/19
Final note: My example actually use 8 sides, not 6 like in Halo Infinite. This was my bad, but same rules apply! Any questions as always, let me know, I'm always happy to talk. 19/19