Difference between revisions of "Foliage"

From polycount
Jump to: navigation, search
(adding thumbnail images)
(GuerillaGames_HorizonZeroDawn)
 
(17 intermediate revisions by 3 users not shown)
Line 4: Line 4:
  
 
== Foliage Tutorials ==
 
== Foliage Tutorials ==
 +
 +
[[image:GuerillaGames_HorizonZeroDawn.jpg|120px]][https://twvideo01.ubm-us.net/o1/vault/gdc2018/presentations/gilbert_sanders_between_tech_and.pdf The Vegetation of Horizon Zero Dawn] (PDF) Gilbert Sanders, Principal Artist, Guerrilla Games. Maya, Speedtree, Photoshop.
  
 
[[image:AlexDracott_ForestLightingStudy.jpg|120px]]
 
[[image:AlexDracott_ForestLightingStudy.jpg|120px]]
[http://www.polycount.com/forum/showthread.php?t=149632 Forest Lighting study]. Maya and Unreal 4.
+
[http://polycount.com/discussion/149632 Forest Lighting study]. Maya and Unreal 4.
 +
 
 +
 
 +
[[image:FuturePoly_Grass.jpg|120px]]
 +
[https://www.youtube.com/watch?v=B4j5tzAIflU Creating Grass and Vegetation For Video Games]. 3ds Max and CryEngine.
  
  
Line 14: Line 20:
  
 
[[image:MarkDygert_Hedges.jpg|120px]]
 
[[image:MarkDygert_Hedges.jpg|120px]]
[http://www.polycount.com/forum/showthread.php?t=67620 Hedges and Topiary a quick tutorial]. Modeling and texturing for stylized bushes.
+
[http://polycount.com/discussion/67620 Hedges and Topiary a quick tutorial]. Modeling and texturing for stylized bushes.
  
  
 
[[image:EricChadwick_NormalThief.jpg|120px]]
 
[[image:EricChadwick_NormalThief.jpg|120px]]
[http://www.polycount.com/forum/showthread.php?t=72325 Tree making fast technique?] Tree modeling techniques discussed.
+
[http://polycount.com/discussion/72325 Tree making fast technique?] Tree modeling techniques discussed.
  
  
 
[[image:RexMcnish_latestfirs.jpg|120px]]
 
[[image:RexMcnish_latestfirs.jpg|120px]]
[http://www.polycount.com/forum/showthread.php?t=72008 My Work - New Forest Asset update]  
+
[http://polycount.com/discussion/72008 My Work - New Forest Asset update]  
  
  
 
[[image:Steppenwolf_eDgLo.jpg|120px]]
 
[[image:Steppenwolf_eDgLo.jpg|120px]]
[http://www.polycount.com/forum/showthread.php?p=1384931 Modeling a tree crown with ease]. Foliage modeling for easy LODs.
+
[http://polycount.com/discussion/86606 Modeling a tree crown with ease]. Foliage modeling for easy LODs.
  
  
* [http://www.polycount.com/forum/showthread.php?t=98976 any tutorials on grouping and spreading out vegetation realistically].
+
[[image:AllodsOnline_Clumping_29.jpg|120px]]
* [http://www.polycount.com/forum/showthread.php?p=1312273#post1312273 "BC" - some simple, game-friendly ivy]. How to create game-friendly ivy meshes & textures.
+
[http://polycount.com/discussion/98976 any tutorials on grouping and spreading out vegetation realistically].
* [http://boards.polycount.net/showthread.php?p=1021264 3D Trees Tutorials]. Multiple methods.
+
 
 +
 
 +
[[image:JamesStout_foliage.jpg|120px]]
 +
[http://polycount.com/discussion/comment/1312273/#Comment_1312273 "BC" - some simple, game-friendly ivy]. How to create game-friendly ivy meshes & textures.
 +
 
 +
 
 +
[[image:TreeTutorialbyJeramyCooke-image005.jpg|120px]]
 +
[http://polycount.com/discussion/comment/1021264/#Comment_1021264 3D Trees Tutorials]. Multiple methods.
 +
 
  
 
===3ds Max===
 
===3ds Max===
Line 37: Line 51:
 
* [http://www.game-artist.net/forums/support-tech-discussion/11251-trees-beginners-3ds-max-tutorial.html Trees for Beginners in 3ds Max Tutorial] - by ''"braveryd"''.  Using the AEC Extended: Foliage tree generator in 3ds Max.
 
* [http://www.game-artist.net/forums/support-tech-discussion/11251-trees-beginners-3ds-max-tutorial.html Trees for Beginners in 3ds Max Tutorial] - by ''"braveryd"''.  Using the AEC Extended: Foliage tree generator in 3ds Max.
 
* [http://www.andyzibits.com/tut_particle_tree_generation.html Tree creation using particle generator] - by ''[http://www.andyzibits.com Andy Zibits]''.  Using a particle system in 3ds Max.
 
* [http://www.andyzibits.com/tut_particle_tree_generation.html Tree creation using particle generator] - by ''[http://www.andyzibits.com Andy Zibits]''.  Using a particle system in 3ds Max.
* [http://www.polycount.com/forum/showthread.php?p=1152529#post1152529 Bending vertex normals and using vertex color] - by ''[http://ericchadwick.com Eric Chadwick]''.  Using the Edit Normals modifier in 3ds Max to bend the vertex normals of low-poly foliage planes.
+
* [http://polycount.com/discussion/comment/1152529/#Comment_1152529 Bending vertex normals and using vertex color] - by ''[http://ericchadwick.com Eric Chadwick]''.  Using the Edit Normals modifier in 3ds Max to bend the vertex normals of low-poly foliage planes.
* [http://www.polycount.com/forum/showthread.php?p=1149155#post1149155 Bending the vertex normals with Normal Thief] - by ''[http://ericchadwick.com Eric Chadwick]''.  Using the [http://www.scriptspot.com/3ds-max/scripts/normal-thief Normal Thief] script in 3ds Max to bend the vertex normals of low-poly foliage planes.
+
* [http://polycount.com/discussion/comment/1149155/#Comment_1149155 Bending the vertex normals with Normal Thief] - by ''[http://ericchadwick.com Eric Chadwick]''.  Using the [http://www.scriptspot.com/3ds-max/scripts/normal-thief Normal Thief] script in 3ds Max to bend the vertex normals of low-poly foliage planes.
 
* [http://3dfolio.com/files/tree_tut.pdf Tree Modeling Techniques and Principles] (PDF) - by ''[http://www.3dfolio.com/ Matthew D'Onofrio]''.  Modeling efficient low-poly branches in 3ds Max using ''Extrude Along Spline''.
 
* [http://3dfolio.com/files/tree_tut.pdf Tree Modeling Techniques and Principles] (PDF) - by ''[http://www.3dfolio.com/ Matthew D'Onofrio]''.  Modeling efficient low-poly branches in 3ds Max using ''Extrude Along Spline''.
  
Line 44: Line 58:
 
* [http://learnfobia.com/category-Maya-129/tutorial-Sprite-Based-Particle-Trees-2259.html Sprite-Based Particle Trees] - by ''[http://stores.lulu.com/sunchirp Steven J. Tubbrit]''.  Using a particle system in Maya.
 
* [http://learnfobia.com/category-Maya-129/tutorial-Sprite-Based-Particle-Trees-2259.html Sprite-Based Particle Trees] - by ''[http://stores.lulu.com/sunchirp Steven J. Tubbrit]''.  Using a particle system in Maya.
 
* [http://www.andyzibits.com/tut_maya_low_poly.html Ultra-efficient tree texturing and modeling] - by ''[http://www.andyzibits.com Andy Zibits]''.  Using ''Paint Effects'' in Maya to create the foliage texture and branches.
 
* [http://www.andyzibits.com/tut_maya_low_poly.html Ultra-efficient tree texturing and modeling] - by ''[http://www.andyzibits.com Andy Zibits]''.  Using ''Paint Effects'' in Maya to create the foliage texture and branches.
* [http://boards.polycount.net/showthread.php?p=1020341#post1020341 Low-poly Tree Using Maya PaintFX] - by ''[http://www.mobygames.com/developer/sheet/view/developerId,107125/ Jeramy Cooke]''.  Using ''Paint Effects'' in Maya to create the foliage texture, then hand-modeling the tree.
+
* [http://polycount.com/discussion/comment/1020341/#Comment_1020341 Low-poly Tree Using Maya PaintFX] - by ''[http://www.mobygames.com/developer/sheet/view/developerId,107125/ Jeramy Cooke]''.  Using ''Paint Effects'' in Maya to create the foliage texture, then hand-modeling the tree.
  
===CryEngine===
+
===CRYENGINE 5===
* [http://www.crydev.net/viewtopic.php?p=985051#p985051 Creating foliage in 3ds Max for CryEngine 3] Crydev forum post.
+
* [http://docs.cryengine.com/display/CEMANUAL/Tutorial+-+Vegetation+Asset+Creation Vegetation Asset Creation for CRYENGINE 5.]
* [http://http.developer.nvidia.com/GPUGems3/gpugems3_ch16.html Vegetation Procedural Animation and Shading in Crysis] - by ''[https://www.cmpevents.com/GD08/a.asp?option=G&V=3&id=563008 Tiago Sousa]''.  A detailed overview of Crytek's process for vegetation shading.
+
* [https://www.cryengine.com/community_archive/viewtopic.php?p=985051#p985051 Creating foliage in 3ds Max for CryEngine 3.] Crytek forum post
 +
* [https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch16.html Vegetation Procedural Animation and Shading in Crysis] - by ''[https://www.cmpevents.com/GD08/a.asp?option=G&V=3&id=563008 Tiago Sousa]''.  A detailed overview of Crytek's process for vegetation shading.
 +
* [https://www.youtube.com/watch?v=9P3Fr2TL9mo Forest Tutorial - Quixel Megascans in CRYENGINE 5 - by Joe Garth] ($)
  
===Unity===
+
===UNITY===
* [http://www.unifycommunity.com/wiki/index.php?title=TreeCreator_Tutorial Tree Creator Tutorial] - by larsbertram. Using Unity to create trees.
+
* [https://forum.unity.com/threads/tree-creator-tutorial-published.103078/ Tree Creator Tutorial] - by larsbertram. Using Unity to create trees.
 +
* [https://docs.unity3d.com/Manual/tree-FirstTree.html Tree Tutorial] - by Unity. First Unity tree.
  
 
===UDK===
 
===UDK===
* [https://www.3dmotive.com/f102101/ Creating Foliage for UDK] ($) - 3dmotive tutorial by ''[http://www.damianlazarski.com/ Damian 'teaandcigarettes' Lazarski]''. Using 3ds Max 2012, Photoshop, and UDK to create grass and tree branches. See also the [http://www.polycount.com/forum/showthread.php?t=92432 Polycount forum thread].
+
* [https://www.3dmotive.com/f102101/ Creating Foliage for UDK] ($) - 3dmotive tutorial by ''[http://www.damianlazarski.com/ Damian 'teaandcigarettes' Lazarski]''. Using 3ds Max 2012, Photoshop, and UDK to create grass and tree branches. See also the [http://polycount.com/discussion/92432 Polycount forum thread].
 +
 
 +
===UNREAL ENGINE 4===
 +
* [https://docs.unrealengine.com/latest/INT/Engine/OpenWorldTools/ProceduralFoliage/QuickStart/ Procedural Foliage Tool Quick Start for UE4] ($).
 +
* [https://www.youtube.com/watch?v=FzoY062kY1s Create a Forest in UE4] - By Quixel.
 +
 
 +
 
 +
== Vertex Normals ==
 +
Foliage meshes in game are usually made using flat planes with a [[Transparency map]] containing a bunch of leaves (or grass blades). These textures are used instead of modeling each leaf or blade of grass discretely, because they would slow the framerate too much. Also the increased vertex count uses much more memory.
 +
 
 +
However the flat planes do not shade very well when lit. To counteract this, the [[VertexNormal|vertex normals]] can be bent to influence the shading, helping to hide the flatness of the geometry.
 +
 
 +
If you want to use edited vertex normals on 2-sided models, you must explicitly create those backfaces yourself. If you let a game engine create backfaces automatically, the engine has to generate new polygons so it has to figure out where the new normals will point, resetting them all in the process.
 +
 
 +
{| border="1"
 +
|[[image:TreeMakerScript_plus_NormalThiefScript.gif]]
 +
|-
 +
|Foliage shading is improved by bending the vertex normals.<br/> The [[file:TreeMakerScript_plus_NormalThiefScript_Max2010.zip|model in Max 2010 format]] (textures copyright SpeedTree).<br/>Image by [http://ericchadwick.com Eric Chadwick].
 +
|}
 +
 
 +
{| border="1"
 +
|[[image:Tree_Normals.gif]]
 +
|-
 +
|A comparison of different flat geometry types, with and without bent normals.<br/>Top row uses "crossing planes", bottom row uses "tri planes".<br/>Left to right: wireframe, default normals, "global" normals using [[VertexNormal#Normal_Thief_MAXScript|Normal Thief]], and clump-based normals.<br/>Image by [http://ericchadwick.com Eric Chadwick].
 +
|}
 +
 
 +
{| border="1"
 +
|[[image:tree_shading_examples.jpg]]
 +
|-
 +
|Foliage shading examples compared, with and without [[Vertex color]].<br/>Image by [http://ericchadwick.com Eric Chadwick].
 +
|}
 +
 
 +
 
 +
* [http://wypierpapier.blogspot.com/2010/02/vertex-normal-tutorial.html Vertex Normal tutorial] by [http://wypierpapier.blogspot.com/ 'gutekfiutek']. This is a blog post in Polish that explains in pictures how vertex normals can be used for better foliage shading ([http://translate.googleusercontent.com/translate_c?hl=en&ie=UTF-8&sl=pl&tl=en&u=http://wypierpapier.blogspot.com/2010/02/vertex-normal-tutorial.html&prev=_t&rurl=translate.google.com&twu=1&usg=ALkJrhiAwMTQRdRZ8uQcN3n4w1XypaFsVQ translation by Google here]). He used this technique to great effect in his [http://wypierpapier.blogspot.com/2010/03/polished-landscapes-m-mod.html Polished Landscapes Mod] for Mount & Blade.
  
 
== Foliage Tools ==
 
== Foliage Tools ==
Line 60: Line 110:
  
 
===Stand Alone===
 
===Stand Alone===
* [http://www.frecle.net/index.php?show=treed.about frecle tree[d]] (exports formats .B3D, .OBJ, .X) ([https://web.archive.org/web/20130715071506/http://www.frecle.net/index.php?show=treed.about alternate download] via web.archive.org)
+
* [http://www.evolved-software.com/treeit/treeit Tree It] (exports formats .dbo .fbx .obj .x)
 +
* [http://www.frecle.net/index.php?show=treed.about frecle tree[d]] (exports formats .B3D .OBJ .X) ([https://web.archive.org/web/20130715071506/http://www.frecle.net/index.php?show=treed.about alternate download] via web.archive.org)
 
* [http://renderhjs.net/shoebox/ ShoeBox: Mask Image] by [http://renderhjs.net Hendrik-Jan "renderhjs" Schoenmaker] - converts tree photos into transparent textures.
 
* [http://renderhjs.net/shoebox/ ShoeBox: Mask Image] by [http://renderhjs.net Hendrik-Jan "renderhjs" Schoenmaker] - converts tree photos into transparent textures.
 
* [http://ngplant.sourceforge.net/ ngPlant]
 
* [http://ngplant.sourceforge.net/ ngPlant]
  
 
===3ds Max===
 
===3ds Max===
* [http://www.polycount.com/forum/showthread.php?t=93240 TreeGen script for 3ds Max]
+
* [http://polycount.com/discussion/93240 TreeGen script for 3ds Max]
 
* [http://www.scriptspot.com/3ds-max/scripts/tree-maker TreeMaker script for 3ds Max]
 
* [http://www.scriptspot.com/3ds-max/scripts/tree-maker TreeMaker script for 3ds Max]
 
* [http://www.scriptspot.com/3ds-max/scripts/avizstudio-tools-atree3d ATree3D script for 3ds Max]
 
* [http://www.scriptspot.com/3ds-max/scripts/avizstudio-tools-atree3d ATree3D script for 3ds Max]
Line 72: Line 123:
 
* [http://www.youtube.com/watch?v=bG79EosNiBQ SpeedTree in UDK] ($)
 
* [http://www.youtube.com/watch?v=bG79EosNiBQ SpeedTree in UDK] ($)
  
== Foliage Rendering ==
+
===UNREAL ENGINE 4===
* [[TransparencyMap#Alpha_Blend|Alpha Blend]]
+
* [https://www.youtube.com/watch?v=M0RrdZmYoNM SpeedTree in UDK] ($)
* [[TransparencyMap#Sorting_Problems|Sorting Problems]]
+
* [[VertexNormal#Foliage_Shading|Foliage Shading]]
+
* [[EmissiveMap|Emissive]]
+
* [[NormalMap|NormalMap]]
+
  
 
== Foliage Examples ==
 
== Foliage Examples ==
Line 86: Line 133:
 
|[[image:SlideNormalThief.jpg|300px|left]]
 
|[[image:SlideNormalThief.jpg|300px|left]]
 
|-
 
|-
|colspan="2"|Images from [https://www.facebook.com/airborngame Airborn - Piño's Journey] by [http://slidelondon.com/ Slide London].
+
|colspan="2"|Images from [https://www.facebook.com/airborngame Airborn - Piño's Journey] by [https://www.facebook.com/airborngame/info?tab=page_info Airborn Studios]. Also see [http://simonschreibt.de/gat/airborn-trees/ A Game Art Trick: Airborn – Trees].
 
|}
 
|}
  
Line 94: Line 141:
 
|[[image:AdrienThierry_tree_01.jpg|500px|left]]  
 
|[[image:AdrienThierry_tree_01.jpg|500px|left]]  
 
|-
 
|-
|colspan="2"|Trees from DISHONORED by [http://adrienthierry.free.fr Adrien "Crêpator" Thierry], from the Polycount Forum thread [http://www.polycount.com/forum/showthread.php?t=141486 DISHONORED assets].
+
|colspan="2"|Trees from DISHONORED by [http://adrienthierry.free.fr Adrien "Crêpator" Thierry], from the Polycount Forum thread [http://polycount.com/discussion/141486 DISHONORED assets].
 
|}
 
|}
  
  
 
* [http://simonschreibt.de/gat/airborn-trees/ A Game Art Trick: Airborn – Trees]  
 
* [http://simonschreibt.de/gat/airborn-trees/ A Game Art Trick: Airborn – Trees]  
* [http://www.polycount.com/forum/showthread.php?t=128021 Battlefield 4 Vegetation - Art dump] Polycount Forum thread.
+
* [http://polycount.com/discussion/128021 Battlefield 4 Vegetation - Art dump] Polycount Forum thread.
 
* [http://www.crydev.net/viewtopic.php?p=981387#p981387 Foliage growth in CryEngine 3] Crydev forum post. Probably using a gradient in the alpha to grow the leaves. Another video [http://www.crydev.net/viewtopic.php?p=1000239#p1000239 here] showing both grass and leaf growth.
 
* [http://www.crydev.net/viewtopic.php?p=981387#p981387 Foliage growth in CryEngine 3] Crydev forum post. Probably using a gradient in the alpha to grow the leaves. Another video [http://www.crydev.net/viewtopic.php?p=1000239#p1000239 here] showing both grass and leaf growth.
  
 +
== More Information ==
 +
* [[Foliage Vertex Color]]
 +
* [[GrassTechnique]]
 +
* [[HairTechnique]]
 +
* [[Normal map]]
 +
* [[TransparencyMap#Sorting_Problems|Sorting Problems]]
 +
* [[TransparencyMap]]
 +
* [[Vertex color]]
 +
* [[VertexNormal]]
  
  
 
----
 
----
 
[[Category:Environment]] [[Category:EnvironmentFoliage]] [[Category:EnvironmentModeling]] [[Category:EnvironmentTexturing]]
 
[[Category:Environment]] [[Category:EnvironmentFoliage]] [[Category:EnvironmentModeling]] [[Category:EnvironmentTexturing]]

Latest revision as of 12:17, 16 May 2020

Topics about foliage and vegetation in games.

Foliage Tutorials

GuerillaGames HorizonZeroDawn.jpgThe Vegetation of Horizon Zero Dawn (PDF) Gilbert Sanders, Principal Artist, Guerrilla Games. Maya, Speedtree, Photoshop.

AlexDracott ForestLightingStudy.jpg Forest Lighting study. Maya and Unreal 4.


FuturePoly Grass.jpg Creating Grass and Vegetation For Video Games. 3ds Max and CryEngine.


Airborn Trees.jpg A Game Art Trick: Airborn – Trees. Modeling and texturing for stylized bushes.


MarkDygert Hedges.jpg Hedges and Topiary a quick tutorial. Modeling and texturing for stylized bushes.


EricChadwick NormalThief.jpg Tree making fast technique? Tree modeling techniques discussed.


RexMcnish latestfirs.jpg My Work - New Forest Asset update


Steppenwolf eDgLo.jpg Modeling a tree crown with ease. Foliage modeling for easy LODs.


AllodsOnline Clumping 29.jpg any tutorials on grouping and spreading out vegetation realistically.


JamesStout foliage.jpg "BC" - some simple, game-friendly ivy. How to create game-friendly ivy meshes & textures.


TreeTutorialbyJeramyCooke-image005.jpg 3D Trees Tutorials. Multiple methods.


3ds Max

Maya

CRYENGINE 5

UNITY

UDK

UNREAL ENGINE 4


Vertex Normals

Foliage meshes in game are usually made using flat planes with a Transparency map containing a bunch of leaves (or grass blades). These textures are used instead of modeling each leaf or blade of grass discretely, because they would slow the framerate too much. Also the increased vertex count uses much more memory.

However the flat planes do not shade very well when lit. To counteract this, the vertex normals can be bent to influence the shading, helping to hide the flatness of the geometry.

If you want to use edited vertex normals on 2-sided models, you must explicitly create those backfaces yourself. If you let a game engine create backfaces automatically, the engine has to generate new polygons so it has to figure out where the new normals will point, resetting them all in the process.

TreeMakerScript plus NormalThiefScript.gif
Foliage shading is improved by bending the vertex normals.
The File:TreeMakerScript plus NormalThiefScript Max2010.zip (textures copyright SpeedTree).
Image by Eric Chadwick.
Tree Normals.gif
A comparison of different flat geometry types, with and without bent normals.
Top row uses "crossing planes", bottom row uses "tri planes".
Left to right: wireframe, default normals, "global" normals using Normal Thief, and clump-based normals.
Image by Eric Chadwick.
Tree shading examples.jpg
Foliage shading examples compared, with and without Vertex color.
Image by Eric Chadwick.


Foliage Tools

These tools are useful for creating game-resolution models.

Stand Alone

3ds Max

UDK

UNREAL ENGINE 4

Foliage Examples

Airborn_Trees.jpg
Airborn Trees2.jpg
SlideNormalThief.jpg
Images from Airborn - Piño's Journey by Airborn Studios. Also see A Game Art Trick: Airborn – Trees.


AdrienThierry tree 02.jpg
AdrienThierry tree 01.jpg
Trees from DISHONORED by Adrien "Crêpator" Thierry, from the Polycount Forum thread DISHONORED assets.


More Information



Personal tools
Namespaces

Variants
Actions
Navigation
Tools