Vegetation Generation in Ghost Recon Wildlands
Events
Subscribe:  iCal  |  Google Calendar
Moscow RU   16, Oct — 18, Oct
Helsinki FI   17, Oct — 25, Oct
Minsk BY   17, Oct — 19, Oct
London GB   22, Oct — 23, Oct
Singapore SG   23, Oct — 25, Oct
Latest comments
by mavin
7 hours ago

have you this 3ds max making video

by Taylor
21 hours ago

bad management, its your job for stuff like that not to happen, dont put that extra weight on artist because management didn't do your job

by Robert Gardner
21 hours ago

It really is the best game of 2018, Thank you.

Vegetation Generation in Ghost Recon Wildlands
27 April, 2017
Interview
Technical artist Maximilien Cleda showed how the team at Ubisoft approached the procedural vegetation in Ghost Recon Wildlands. You can find the previous articles about landscape and city generation on 80.lv. Please share if you found this post useful.

Introduction

I’m Maximilien Cleda, I have been technical artist on Ghost Recon Wildlands since the beginning of the project, 5 years ago. I first started at Ubisoft 8 years ago. It was my first job after my graduate studies. I’ve worked on several games such as Assassin’s Creed multiplayer, Red Steel 2 and Ghost Recon Future Soldier.

On this production I was in charge of the vegetation in the game, from the asset production to the world building and performances on all platforms.

In parallel to that, I’ve worked on other natural parts of the game such as farm fields, lakes, rivers, terraforming and helped the world building team on camps and villages.

Vegetation

We have 2 systems working together. The grass system that spawns different patterns depending of the terrain splatting and a Houdini tool that gives us a lot of possibilities to spread bushes and trees on top of it.

It’s a pretty simple concept to spread trees and bushes. It’s basically a “cascade” of vegetation: big trees (red) spawn medium trees (green), which spawn small trees and bushes (blue).

To add complexity, we first tweak density, scale, slope, space between assets etc. Then we add another layer to the rules with sun direction, which species on which material splatting, material inclusion/exclusion such as flow maps, river beds, cliffs etc. And finally we can combine several rules with a delete threshold between them. Roads, railway, water area and footpath are removed automatically.

We worked closely with the terrain/rock artists to match material repartition rules and vegetation rules. This created another layer of complexity. This way, the amount of “vegetation friendly” material, rocks and flow maps directly affected the way a forest would look at the end.

On the asset side we tried to have different “steps” of the same species, and avoid having too many different species per rule. It was more natural and memory friendly. The more species you use, the more difficult it becomes to have something realistic and natural.

On the performance side, density was an issue. The solution we came with was: instead of having a fixed LOD distance per asset, we decided to be more organic and modulate those values depending of vegetation density.

So the same asset may have different LOD values depending of its position in the world. More density means more aggressive values and a quicker switch to the last LOD, which is the Imposter.

Imposters are the last important part to build such big forests, visible from long distances. It’s a dynamic billboard system that allows different side views of a tree depending of the camera angle.

It’s generated inside the engine so we don’t have any mismatch between the 3D model and the imposter. And it contains different channels to allow complex shading, such as keeping light direction, fake shadowing and translucency.


Looking for an inspiring team, challenges & new perspectives? 

careers.parisstudio@ubisoft.com

Maximilien Cleda, a Technical Artist

Interview conducted by Kirill Tokarev

Follow 80.lv on Facebook, Twitter and Instagram

 

Comments

Leave a Reply

3 Comments on "Vegetation Generation in Ghost Recon Wildlands"

avatar
John
Guest
John
Hello Max, Thanks for the answer, it gives very incredibly useful details, and in my opinion it adds a lot to the article! The article’s density based LOD/Imposter choosing along with the answer, gave me some ideas that I’ll implement in some vegetation system I am currently working on. However on the rendering side I would still have a question, if it is not asking for too deep details of course. Are the grass instances generated on the CPU drawn on the GPU with the standard instancing (like dx11 SV_InstanceID) or maybe you are using SRV’s with vertex instancing? Basically… Read more »
Max
Member
Max
Hi John, The grass is a 100% real time procedural system with an in-house Slicing/Caching system on the CPU. Every calculations is done on the CPU. There’s a lot of constraints to be simple and cheap (CPU and GPU). No matrices are stored, we only choose Type/density/scale etc… and each preset is used to generate the grass in real time.  Imposters are also used on grass with really aggressive distances (High rez LOD only around the player, few meters), so at the end, 90% of the grass models are imposters. (GPU friendly, only quads).  On the rendering side, no shadows… Read more »
John
Guest
John

Hello! Reiterating the question from the ‘city generation’ at: https://80.lv/articles/procedural-world-building-in-ghost-recon-wildlands/

I couldn’t find the answer in the article (or am I missing it? If I do, don’t hesitate to point it out).

How did you managed to render all the grass vegetation? I am talking about the grass and small ground clutter and not the trees witch which you use the quite standard imposter technique.

Standard SV_InstanceID instancing? Soft instancing (merge instancing) like: http://www.gdcvault.com/play/1020624/Advanced-Visual-Effects-with-DirectX ? Old-school DX9 per-vertex instancing data? Any other technique for the small grasses / ground clutter?

Thanks a lot, for the article, and looking forward for your response!

wpDiscuz