TheGameCreators / GameGuruRepo

The GameGuru Repository For Community Collaboration
http://www.game-guru.com
137 stars 56 forks source link

MAX - An idea on how to (vastly) improve the look of grass. #1719

Open fearlesswee opened 2 years ago

fearlesswee commented 2 years ago

As it stands right now in MAX, the grass looks frankly pretty bad, but until today I couldn't really pinpoint why.

Since grass is represented by a 2D plane with an image plastered on it, it obviously tends to look very flat and awkward, and doesn't blend naturally whatsoever with the terrain it's sitting upon. It instead has a clear cutoff point where the plane sits which is very noticeable and strange looking. This flatness also means that the grass is not properly lit like a real, 3D tuft of grass would be, so depending on what angle you are facing the grass changes color as it goes from "entirely in shadow" to "not in any shadow whatsoever".

image image image

This looks quite awful and would be laughed at in a game from 2012, let alone 2022 onward.

My recent game addiction has been Halo: Infinite. When I was inspecting some set dressing I noticed the grass, and I thought "Huh, why does this grass look great while MAX's looks awful? What specifically about it makes it look so much nicer?" Looking closer I had realized why; each tuft of grass, clump of clovers, or bundle of flowers are actually a low-poly 3D model, with full PBR textures! This means the grass is lit in a believable way no matter the angle it's viewed from since it has actual 3-dimentional depth, it blends more naturally with the terrain since there's no noticeable "cutoff", it properly reflects and glistens in the light as you'd expect due to the PBR textures, and it seems to also have some subsurface scattering that lets the light diffuse through it giving it even more depth.

(I did my best to get images that give a good look at the grass.)

image image image

I think MAX's grass should follow this proven approach, rather than stick to the ugly outdated 2D sprite grass from Classic. There's no reason not to, as the tree system is essentially already a "3D vegetation system" that proves this approach is doable for MAX!

UltraVox001 commented 2 years ago

It is true that the current vegetation, represented by 2D sprites, is really bad compared to what is done today in good video games. I know that TGC intends to improve the grass and to throw on the map (between the tufts of grass) small stones to make things more natural (believable) and at the same time, try to hide (hide misery) flaws inherent in 2D sprites. No doubt the use of 2D sprites is to limit the use of high graphics resources and memory for small machines. However, I completely agree with you on the quality of the grass. It is up to the game developer to determine what resources will be allocated in his game. We can take the best 3D engine in the world, it would be easy to push it to the maximum and ensure that no machine knows how to run it. ! For his part, Max must give us the opportunity to do something beautiful and natural, even if it requires additional resources. It is up to the game developer to ensure that his final application is compatible with as many machines as possible, if he wishes. Also, the current faults of the herbs are very visible as soon as you approach them, and if you take a little height and look at things from a higher perspective. We can clearly see the 2D sprite and its completely destroying the immersive aspect of the game. I hope that TGC will get to the end of things, because Max deserves a real vegetation system.

Retrogamebloke commented 2 years ago

I agree grass at the moment is way too sparse and flat. Resulting in it looking awful up close and not responding well to light conditions.

https://user-images.githubusercontent.com/44620846/148638005-cf7b02a1-ba52-4504-899f-bf9de200437c.mp4

We need LOD for grass, making up close stuff actual models and the far off stuff lowering to planes. image This is off a 5 or 6 year old game now. Still makes Max grass look like cardboard cut outs. Sure making the ground texture underneath match better would help, but it's just one part of the puzzle, and will not help with up close and personal flora.

fearlesswee commented 2 years ago

A big part is certainly the uneven lighting. When grass is facing towards the sun, it looks "okay-ish". But if the sun is behind the grass from the perspective of the camera, it looks very dark and awful, since it's being shadowed as a flat plane. In the examples you've posted you can see how the grass is uniformly lit regardless of the angle, with slight shadowing near the base of the grass tuft. This looks infinitely better than MAX while still having the "flat plane" approach.

Retrogamebloke commented 2 years ago

Totally agree, same goes for trees in the distance as well.

fearlesswee commented 2 years ago

In the latest build it seems the grass was updated to make it uniformly lit regardless if the sun is infront of or behind the camera. This looks MUCH better, but there's still plenty of room for improvement. Where the plane of grass stops and terrain begins is still too obvious, especially with a low density of grass (currently the density slider seems broken, but if you increase grass render distance this seems to also lower density massively, possible bug?), or if you look at the grass from above (such as from a rooftop or the window of a multi-story building.)

Would be possible to make it so the bottom of the tuft of grass fades into transparency to create more of a seamless blend with terrain? Or would it even be possible to make it so some of the terrain texture beneath it "blends" onto the plane?

I also think the grass textures could maybe use some normal mapping to help with their flatness.