Trees in Red Dead Redemption?

Ether_Snake

Newcomer
Hi,

I loved Red Dead Redemption and I was trying to figure out how they did the transition for the LODs of the trees?

When you are far away, I'm guessing it is a 2D texture on a plane or some such, but as I move closer to it the transition to a 3D mesh is barely noticeable at all. What I don't understand is how they can do that regardless of the angle you take to approach the tree? If it is a 2D texture on a plane, it wouldn't work nicely at certain angles, unless they somehow had multiple textures for different angles at which the tree can be seen.

Anyone has any idea?
 
But how do they get the billboard tree to fade with the 3D tree? At some point the billboard wouldn't match the rotation of the 3D tree and it would be very noticeable during the transition.

I noticed they do some parallax effect on the 2D trees to give it a sense of volume, but I'm not sure how they do the transition from the fake tree to the real one.
 
What if they turn the real trees to match the billboard? Then everytime you come in from a different angle the 3d trees would be rotated :)
 
Yes but then the tree doesn't rotate when you are close to it, so it would not match the billboard that would appear when moving away from it.
 
Billboard would be a render of the tree at a specific angle, let's say seen from the front.

When you get close to the tree, looking at it from its right side, and then walking away, there would be a discordance between the 3D tree and the billboard since the billboard is a texture of the tree seen from the front. It wouldn't match.

Unless they made more than one render per tree, such as one seen from the front, and one from the side, but it looks more complex than that.

You can see that if you stay still and rotate the camera, the tree changes shape, and the more centered it is to the screen as you get closer to it, the better the transition will be. If the tree is on the side of the screen as you get close, the transition is not as good and you can see some branches disappear or appear suddenly.
 
You would not see the tree rotate from what I was saying, but I don't know if they are set up to do that or not. The weird part would be if you came at it from the north, then left and came from the south it would be the same. Hey all the trees in the forest flipped around!
 
What if they turn the real trees to match the billboard? Then everytime you come in from a different angle the 3d trees would be rotated :)

This is what Crysis 1 does.

Also, they do a "dissolve" trick via a screen-space noise texture to make the 3D mesh fade.
 
Many years ago when did a jungle renderer whilst at Eclipse, we did

a) Lod meshes
b) At certain distance render Last lod to texture then billboard that
c) If that billboard comes close again, one off rotate the mesh to match the billboard orientation
d) if went off screen, mark billboard as as a far tree billboard (randomly selected if a tree come into view but far away).
e) Manage a cache which keep enough space in the billboard cache for some room for new ones, etc.

Effect was trees wouldn't 'follow' you, so you didn't notice the rotate but in fact were when you weren't looking.

Deano
 
Sounds like maybe this is what they do, although if you run around in circle in Red Dead you can see there is at least more than one billboard.

Sounds good anyway:) Thanks!
 
Thanks for that pdf zed!

If I understand this right, the trees would be rendered to a buffer and applied on the billboards? And I'm guessing we could render it let's say from the front, and then only render it again from a different angle if you have moved a certain amount around the tree? This makes a lot of sense. I'm guessing that means the more tree variety you have, the more memory you need to dedicate to this.

It's certainly an interesting concept and solves various issues I mentioned before.

I'll look into this, thanks!:)
 
Thanks for that pdf zed!

If I understand this right, the trees would be rendered to a buffer and applied on the billboards? And I'm guessing we could render it let's say from the front, and then only render it again from a different angle if you have moved a certain amount around the tree? This makes a lot of sense. I'm guessing that means the more tree variety you have, the more memory you need to dedicate to this.

It's certainly an interesting concept and solves various issues I mentioned before.

I'll look into this, thanks!:)
One might also group trees when they are far away and render them into the same buffer, for big forests this would help in terms of memory and fillrate.
 
Back
Top