Here’s the GDC 2017 presentation about the terrain technology of Ghost Recon Wildlands done by Benoit Martinez and me.
Graphics Programmer
Here’s the GDC 2017 presentation about the terrain technology of Ghost Recon Wildlands done by Benoit Martinez and me.
Super sympa !!! est visuellement impressionnant ^^, j’espère que la scène démo ne sera pas abandonnée au profit du jeu vidéo, quoique un équivalent Français d’un Crysis 3 en plus joli pourquoi pas 😉
J’aimeJ’aime
La scène démo est toujours d’actualité 🙂
On prépare une démo pour la REVISION la semaine prochaine : https://2017.revision-party.net/
++
J’aimeJ’aime
Excellente nouvelle ça, j’ai hâte de découvrir votre prochaine prod !! ça fera chauffer ma nouvelle GTX 1080 :o)
En tout cas bravo de continuer la scène démo et de représenter la France.
J’aimeJ’aime
How many graphics programmers worked on this project to implement the procedural workflow?
J’aimeJ’aime
1 for the vegetation
2 for the terrain
J’aimeJ’aime
Could you please explain how exactly triplanar mapping works on the slopes in GR: W? Are you using virtual texturing for those patches as well? If you have a baked VT tile, I don’t think you could use it for triplanar mapping directly, can you?
J’aimeJ’aime
Hi Peter,
Virtual texturing is only used on ‘flat’ areas. Every steep triangles is using standard triplanar mapping and blends the result with the baked VT.
I hope it helps 🙂
J’aimeJ’aime
Hey Guillaume,
Thanks for a super-fast response! Could you please elaborate a bit? Which part of the material comes from VT and which is triplanar-mapped on the fly in the terrain pixel shader?
J’aimeJ’aime
A complete material (albedo, normal, roughness…) comes from the VT and 2 other complete materials (one for each axis) are fetched using triplanar mapping from standard textures. The result of the VT and the two axis are then blended together depending on the normal direction.
This is VERY expensive and is only done for the triangles that are between the « flat » and the « vertical » slope angle threshold. The rest of the patch either use only the VT or the 2 axis triplanar blending.
J’aimeJ’aime
Thank you once again!
How do you handle decals in case of triplanar mapping? If I understand correctly, they are being baked into VT, so if you are doing triplanar, you’d either need to ignore them for other projections?
« 2-axis triplanar blending » is used for vertical slopes – do I understand this correctly?
J’aimeJ’aime
Yes, your understanding is perfectly correct and there’s no decals when the the triplanar mapping is used.
In our case, since the decals where mostly used for tire marks and road signs it wasn’t a big deal if they were missing on the vertical slopes.
J’aimeJ’aime
Thank you very much for your prompt and thorough answers!
J’aimeAimé par 1 personne
How do you solve the float point precision problem in such a big world? In our game, many things become unstable when you get far away from the origin point, both in graphics and physics, such as flickering shadows.
J’aimeJ’aime
You need to store all object positions as integer tile index (x, y, z if your game has a big variation in height) and a floating point offset within this tile. You convert it to floating point before doing view transform by subtracting the camera position (which is also stored as integer tile index + floating point offset).
We did it for Skyforge MMORPG over 6 years ago.
J’aimeJ’aime
Même après ces quelques années, je reviens toujours sur votre talk de la GDC car il reste toujours une référence, avec celui de Étienne Carrier pour FarCry 5.
Aussi je me demandais si depuis Wildlands, Houdini Engine fait parti intégrante des moteurs Anvil/Dunia ?
Avec les nombreux employés d’Ubisoft je me demandais comment sont gérées les permissions pour cook des hda dans l’engine et éviter des problèmes de licence ? J’imagine que le nombre de gens habilités a pouvoir le faire est restreint ? Merci !
J’aimeJ’aime
Houdini est maintenant utilisé sur la plus part des prod et H-Engine est intégré (plus ou moins en profondeur) dans (quasi) tous les moteurs/editeurs d’UBI. Lorsqu’il s’agit de gérer les permissions il faut considérer que le HDA est finalement un asset comme un autre, un meta asset pourrait ton dire. Ainsi entre modifier un HDA ou un objet dans un niveau il n’y a finalement pas de différence et tout passe par un process classique de lock, modification, soumission. Apres chacun ayant sa spécialité tout le monde n’est pas en permanence en train de tout cooker. Chacun son domaine et donc ses HDA specifiques. La règle en prod ça reste : si tu ne sais pas ce que ça fait n’y touche pas; et tant que tout le monde s’y tient tout va bien 🙂
Sinon pour les licences on a largement ce qu’il faut pour que ce ne soit pas bloquant.
J’aimeJ’aime