Difference between revisions of "Foliage"
EricChadwick (Talk | contribs) (more images) |
EricChadwick (Talk | contribs) (GuerillaGames_HorizonZeroDawn) |
||
(16 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:// | + | [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:// | + | [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:// | + | [http://polycount.com/discussion/72325 Tree making fast technique?] Tree modeling techniques discussed. |
[[image:RexMcnish_latestfirs.jpg|120px]] | [[image:RexMcnish_latestfirs.jpg|120px]] | ||
− | [http:// | + | [http://polycount.com/discussion/72008 My Work - New Forest Asset update] |
[[image:Steppenwolf_eDgLo.jpg|120px]] | [[image:Steppenwolf_eDgLo.jpg|120px]] | ||
− | [http:// | + | [http://polycount.com/discussion/86606 Modeling a tree crown with ease]. Foliage modeling for easy LODs. |
[[image:AllodsOnline_Clumping_29.jpg|120px]] | [[image:AllodsOnline_Clumping_29.jpg|120px]] | ||
− | [http:// | + | [http://polycount.com/discussion/98976 any tutorials on grouping and spreading out vegetation realistically]. |
[[image:JamesStout_foliage.jpg|120px]] | [[image:JamesStout_foliage.jpg|120px]] | ||
− | [http:// | + | [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]] | [[image:TreeTutorialbyJeramyCooke-image005.jpg|120px]] | ||
− | [http:// | + | [http://polycount.com/discussion/comment/1021264/#Comment_1021264 3D Trees Tutorials]. Multiple methods. |
Line 45: | 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:// | + | * [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:// | + | * [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 52: | 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:// | + | * [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 5=== |
− | * [http://www. | + | * [http://docs.cryengine.com/display/CEMANUAL/Tutorial+-+Vegetation+Asset+Creation Vegetation Asset Creation for CRYENGINE 5.] |
− | * [ | + | * [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=== |
− | * [ | + | * [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:// | + | * [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 68: | Line 110: | ||
===Stand Alone=== | ===Stand Alone=== | ||
− | * [http://www.frecle.net/index.php?show=treed.about frecle tree[d]] (exports formats .B3D | + | * [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:// | + | * [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 80: | Line 123: | ||
* [http://www.youtube.com/watch?v=bG79EosNiBQ SpeedTree in UDK] ($) | * [http://www.youtube.com/watch?v=bG79EosNiBQ SpeedTree in UDK] ($) | ||
− | == | + | ===UNREAL ENGINE 4=== |
− | * [ | + | * [https://www.youtube.com/watch?v=M0RrdZmYoNM SpeedTree in UDK] ($) |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Foliage Examples == | == Foliage Examples == | ||
Line 94: | 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 [ | + | |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 102: | 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:// | + | |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:// | + | * [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 11:17, 16 May 2020
Topics about foliage and vegetation in games.
Contents
Foliage Tutorials
The Vegetation of Horizon Zero Dawn (PDF) Gilbert Sanders, Principal Artist, Guerrilla Games. Maya, Speedtree, Photoshop.
Forest Lighting study. Maya and Unreal 4.
Creating Grass and Vegetation For Video Games. 3ds Max and CryEngine.
A Game Art Trick: Airborn – Trees. Modeling and texturing for stylized bushes.
Hedges and Topiary a quick tutorial. Modeling and texturing for stylized bushes.
Tree making fast technique? Tree modeling techniques discussed.
My Work - New Forest Asset update
Modeling a tree crown with ease. Foliage modeling for easy LODs.
any tutorials on grouping and spreading out vegetation realistically.
"BC" - some simple, game-friendly ivy. How to create game-friendly ivy meshes & textures.
3D Trees Tutorials. Multiple methods.
3ds Max
- Climbing Rose Tutorial - by Mark 'Jenn0_Bing' Foreman. How to create custom and efficient ivy-style meshes in 3ds Max.
- Trees for Beginners in 3ds Max Tutorial - by "braveryd". Using the AEC Extended: Foliage tree generator in 3ds Max.
- Tree creation using particle generator - by Andy Zibits. Using a particle system in 3ds Max.
- Bending vertex normals and using vertex color - by Eric Chadwick. Using the Edit Normals modifier in 3ds Max to bend the vertex normals of low-poly foliage planes.
- Bending the vertex normals with Normal Thief - by Eric Chadwick. Using the Normal Thief script in 3ds Max to bend the vertex normals of low-poly foliage planes.
- Tree Modeling Techniques and Principles (PDF) - by Matthew D'Onofrio. Modeling efficient low-poly branches in 3ds Max using Extrude Along Spline.
Maya
- Sprite-Based Particle Trees - by Steven J. Tubbrit. Using a particle system in Maya.
- Ultra-efficient tree texturing and modeling - by Andy Zibits. Using Paint Effects in Maya to create the foliage texture and branches.
- Low-poly Tree Using Maya PaintFX - by Jeramy Cooke. Using Paint Effects in Maya to create the foliage texture, then hand-modeling the tree.
CRYENGINE 5
- Vegetation Asset Creation for CRYENGINE 5.
- Creating foliage in 3ds Max for CryEngine 3. Crytek forum post
- Vegetation Procedural Animation and Shading in Crysis - by Tiago Sousa. A detailed overview of Crytek's process for vegetation shading.
- Forest Tutorial - Quixel Megascans in CRYENGINE 5 - by Joe Garth ($)
UNITY
- Tree Creator Tutorial - by larsbertram. Using Unity to create trees.
- Tree Tutorial - by Unity. First Unity tree.
UDK
- Creating Foliage for UDK ($) - 3dmotive tutorial by Damian 'teaandcigarettes' Lazarski. Using 3ds Max 2012, Photoshop, and UDK to create grass and tree branches. See also the Polycount forum thread.
UNREAL ENGINE 4
- Procedural Foliage Tool Quick Start for UE4 ($).
- 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 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.
Foliage shading is improved by bending the vertex normals. The File:TreeMakerScript plus NormalThiefScript Max2010.zip (textures copyright SpeedTree). Image by Eric Chadwick. |
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. |
Foliage shading examples compared, with and without Vertex color. Image by Eric Chadwick. |
- Vertex Normal tutorial by 'gutekfiutek'. This is a blog post in Polish that explains in pictures how vertex normals can be used for better foliage shading (translation by Google here). He used this technique to great effect in his Polished Landscapes Mod for Mount & Blade.
Foliage Tools
These tools are useful for creating game-resolution models.
Stand Alone
- Tree It (exports formats .dbo .fbx .obj .x)
- frecle tree[d] (exports formats .B3D .OBJ .X) (alternate download via web.archive.org)
- ShoeBox: Mask Image by Hendrik-Jan "renderhjs" Schoenmaker - converts tree photos into transparent textures.
- ngPlant
3ds Max
UDK
- SpeedTree in UDK ($)
UNREAL ENGINE 4
- SpeedTree in UDK ($)
Foliage Examples
Images from Airborn - Piño's Journey by Airborn Studios. Also see A Game Art Trick: Airborn – Trees. |
Trees from DISHONORED by Adrien "Crêpator" Thierry, from the Polycount Forum thread DISHONORED assets. |
- A Game Art Trick: Airborn – Trees
- Battlefield 4 Vegetation - Art dump Polycount Forum thread.
- Foliage growth in CryEngine 3 Crydev forum post. Probably using a gradient in the alpha to grow the leaves. Another video here showing both grass and leaf growth.
More Information
- Foliage Vertex Color
- GrassTechnique
- HairTechnique
- Normal map
- Sorting Problems
- TransparencyMap
- Vertex color
- VertexNormal