Hello guys,
While cruising in gran turismo 7, I got fascinated by how nature is reproduced in the game. The vast majority of trees are in fact simple billboards (rotating towards camera), but it’s difficult to notice it at first sight. It becomes clear only if, while driving, you move camera to the sides of the car and watch the environment scroll.
I would like to shed some light on how some effects are achieved in these trees. For example:
-even if trees are billboards, it seems like light isn’t simply computed against the billboard normals. Thus they don’t get darker/brighter as the billboard rotates. I know there’s a normal map in here too, but is it enough to make the trick?
-self shadowing. Being these quads always pointing at the camera, I’d expect shadows casted on them to look flat and unrealistic (and also moving as the tree rotates). Instead they fake some sort of 3d shadows really well.
Is there some paper or does anyone know how can I get started to achieve such advanced and realistic lighting in billboard trees?
At the following link you can see an example.
https://youtu.be/FNyBAOM0cwQ
This feature of turning distant 3d models into 2d representations is called “Impostors”. There’s a popular Impostor asset that does this, it may provide you with more details by watching the videos and reading the docs.
Hello CodeSmile and thank you for your answer. I’m aware of impostors and billboards. With this thread, my aim is to try to shed some light on the advanced lighting (no pun intended) Gran Turismo 7 billboards trees seem to have… and whether there are in literature papers or material that show how to achieve similar results.
Do you have a screenshot or video that showcases the lighting?
I bet the 3d shadow casting is a simple, invisible shadowcaster mesh with just a few triangles that blocks light. You can do that with any MeshRenderer by enabling the “cast only shadows” checkbox or dropdown (can’t recall). You’ll see the shadow but not the mesh. Since shadows only need an approximate other hull to be believable, a very simplified mesh is typically used as a shadow caster.
Yep, I attached a youtube link in the first post =)
Up close it looks like a clever shader adding fake shadowing effects on top (maybe no global shadowing), the actual billboard texture underneath looks to remain the same but something applies light & shadow to simulate a more complex tree. Faked with wide-angle lighting and a scrolling normal map effect perhaps.
However as you zoom out it totally changes, perhaps to a plain pre-shaded billboard - bit questionable LOD?
You may never know the truth but I imagine playing with a moving layer over the base in shader graph will get something similar.
Thanks for your contribution.
I see translucency here is playing an important role too, but the shader is also somewhat “aware” of whether there are occluders that prevent sun light to shine through a tree (at 00:07 it is possible to notice that the tree closer to the camera won’t show any translucency because the larger three behind it kind of casts shadows on it).
I didn’t notice any LOD transitioning btw, at which second did you spot it?
Actually tree detail just starts obscuring the base billboard which is odd, not sure if transitioning the image between LODs or for angle change, there is a lighting switch later on which suggest a lower LOD around 21
Don’t know if it’s the same thing I see, but around 21 there’s a smaller pine which intersect with a bigger tree, and as billboards rotates and intersecate each other, they create the illusion of a lod transitioning. But it’s just geometry overlapping. But again, not sure if we’re watching the same thing
While surfing the internet I came across this post from the allmighty @bgolus :
It feels like it may be a good starting point! I will keep you posted if I can get a woking prototype =)