meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
expgame [2023/04/03 18:37] steph.jorgensenexpgame [2023/11/07 09:31] (current) steph.jorgensen
Line 1: Line 1:
-======Exporting to game formats======+======Games export options======
  
-In game versions of the SpeedTree Modeler, you can export to a selection of game editor formats. These exports differ from [[expstaticmesh|static mesh exports]] in that the geometry is batched and optimized for real-time rendering, texture atlases are created to allow fewer draw calls, and billboard impostors are rendered for use with LOD. To begin an export, go to **File** > **Export to game**.+You can export to a selection of game editor formats. With game exportsthe geometry is batched and optimized for real-time rendering, texture atlases are created to allow fewer draw calls, and billboard impostors are rendered for use with LOD. 
  
-{{exportgamedialog.png?400&nolink}}+To export a model for games, select **File** > **Export to mesh** then choose the Games export type.
  
-=====Formats=====+For command line export options, refer to [[export_from_the_command_line|Export from the command line]].
  
-Currently, the exporters for [[impue4|Unreal Engine 4]], [[impunity|Unity]], and [[imply|Lumberyard]] all use this dialog, as well as the SpeedTree SDK for custom game integrations. You can also export trees prepared in this style to a few static mesh formats, such as FBX, OBJ, USD, and raw XML.+=====Export type=====
  
-=====Game presets===== +^**Type**^**Description**^ 
-You can choose a game preset to simplify the export process and make sure the export settings are correct for the format. You can also make your own presets by saving the dialog settings into the <app>/export_to_game_presets/ directory.+|**Games**|Export a model with options optimized for games.| 
 +|**VFX**|Export a model with options optimized for VFX. Refer to [[expstaticmesh|VFX export options]].| 
 + 
 +=====Preset===== 
 +You can choose a game preset to simplify the export process and make sure the export settings are correct for the format. 
  
 ^**Preset**^**Description** ^ ^**Preset**^**Description** ^
-| **Standard** | Optimizes the export for the SpeedTree SDK or static mesh formats. | 
-| **UE4** | Optimizes the export for Unreal Engine 4. | 
-| **UE4 (one draw call)** | Optimizes the export for Unreal Engine 4 and limits it to one draw call.  | 
 | **Unity** | Optimizes the export for Unity. | | **Unity** | Optimizes the export for Unity. |
 | **Unity (one draw call)** | Optimizes the export for Unity and limits it to one draw call. | | **Unity (one draw call)** | Optimizes the export for Unity and limits it to one draw call. |
 +| **UnrealEngine (ST)** | Optimizes the export for Unreal Engine and exports the .st file type. |
 +| **UnrealEngine (ST9)** | Optimizes the export for Unreal Engine and limits it to one draw call. Exports the .st9 file type.  |
 +| **SpeedTree SDK** | Optimizes the export for the SpeedTree SDK or static mesh formats. |
 +|**Generic FBX**| Export a generic FBX for use in any game engine or DCC application.|
 +
 +====Preset options====
 +
 +^**Control**^**Description**^
 +|**Save new preset**|Save the current export settings as a new preset.|
 +|**Edit preset name**|Edit the name of the current preset.|
 +|**Delete preset**|Delete the current preset.|
 +|**Load options**|Load previously saved export options from an .ini file.|
 +|**Save options**|Save the current export options to an .ini file.|
 +
 +=====Show atlas=====
 +
 +At export time, if you are not happy with the automatically-generated atlas layout, you can edit it by clicking the button in the top right of the export dialog. If multiple atlases are being exported, you can choose which one is being displayed.
 +
 +{{edit_atlas.png?nolink&300}}
 +
 +The tools for editing are translate, rotate, scale uniformly, and scale non-uniformly. Once a tool is selected, simply click on a texture in the atlas and drag the mouse to perform the action.
 +
 +>**Note**: With manual editing, it is possible to cause overlapping textures in the map, which will not work correctly in the exported file.
 +
 +=====Options=====
 +
 +====File type====
 +
 +You can choose a file type compatible with [[impue4|Unreal Engine 4]], [[impunity|Unity]], and [[imply|Lumberyard]], as well as the SpeedTree SDK for custom game integrations. You can also export trees prepared in this style to a few static mesh formats, such as FBX, OBJ, USD, and raw XML.
 +
 +>**Note**: Some of the export options change depending on the file type you choose.
  
 =====Combine===== =====Combine=====
Line 24: Line 56:
  
 ^**Property**^**Description**^^ ^**Property**^**Description**^^
-|**Combine all open models into the same atlas**|Export all open files in the Modeler and combine them into the same atlas. ||+|**Combine all open trees**|Export all open files in the Modeler and combine them into the same atlas. ||
 |**Atlas name**|Assign a root name to the exported atlases.|| |**Atlas name**|Assign a root name to the exported atlases.||
 |**Tree filenames**|Set a naming convention for the exported model files.|| |**Tree filenames**|Set a naming convention for the exported model files.||
Line 30: Line 62:
 | :::              |**Tree name**| All model files have the same name as their original .spm file. | | :::              |**Tree name**| All model files have the same name as their original .spm file. |
  
-=====LOD=====+=====Grouping=====
  
 These options set which type of geometry from the tree to include: the fully 3d geometry LODs, the billboard LOD, or all of it.  These options set which type of geometry from the tree to include: the fully 3d geometry LODs, the billboard LOD, or all of it. 
Line 39: Line 71:
  
 {{billboard_maps.png?nolink}} {{billboard_maps.png?nolink}}
- 
  
 =====Include===== =====Include=====
  
-This section of the dialog features options for extra things that may be included during export. +This section of the dialog features options for extra things that may be included during export. These options vary by the chosen file type.
  
-==Variations== +====Lightmap UVs====
-[[toolmaterialsassetsbar|Variations]] may be set up in the material. This option enables the processing of variations on export. Instead of requiring the final game engine to have shader code that does the variation, the exporter will simply make new materials and textures with the variation information baked in. +
  
->**Note**: Variations should be used sparingly on real-time SpeedTree models to avoid too much extra texture space being usedIf atlassed, the variations of a material will take up multiple places in the atlas. If not, additional textures will be made.+Compute and include unique UVs for lightmapping. 
 + 
 +Available for all options but OBJ.
  
-==Vertex blends==+====Vertex blends====
 Vertex blending is used on small pieces of geometry that need to blend, such as  the intersection of a branch to its parent or stitches to a parent mesh. This is done using vertex alphas to fade it out. If the engine does not support per-vertex alphas, or if z-buffer problems are causing the seam blends to flicker, then you may disable this. Even without per-vertex alphas (and thus a hard line where the material changes), the blend pieces usually add to the realism of the tree by hiding the actual branch intersection. Vertex blending is used on small pieces of geometry that need to blend, such as  the intersection of a branch to its parent or stitches to a parent mesh. This is done using vertex alphas to fade it out. If the engine does not support per-vertex alphas, or if z-buffer problems are causing the seam blends to flicker, then you may disable this. Even without per-vertex alphas (and thus a hard line where the material changes), the blend pieces usually add to the realism of the tree by hiding the actual branch intersection.
  
 +Available for all options but OBJ.
  
-==Leaf references== +====Vertex color====
-Leaf References are null objects in the correct position and orientation for each leaf. These can be used to populate the leaves with higher quality meshes at runtime, or perhaps for use with mesh instancing.+
  
-==Bones/Skeleton== +Override the model’s vertex colorsincluding the alpha (transparency) value.
-Some formatssuch as FBX, allow you to include bone weighting for further deformation.+
  
 +Available for all options but OBJ.
  
-=====Atlas=====+====Bones/Skeleton==== 
 +Some formats, such as FBX, allow you to include bone weighting for further deformation.
  
-Atlassing is the most important aspect of preparing a tree for real-time rendering. Putting multiple materials into the atlas allows the geometry that uses them to be merged, resulting in fewer draw calls. With aggressive merging, you can make an entire tree that renders in one draw call.+Available for FBX and XML.
  
-|None|This option does not make an atlas. Each material will export its textures separately| +=====Transform=====
-|Non-Wrapping|This option looks at the geometry using each material. If the UVs on the geometry fit within 0-1, then its material will be put into the atlas. Geometry that uses wrapping UVs or otherwise has UVs outside of 0-1, such as branches, will be exported as separate textures| +
-|Everything|This option puts every material in the entire tree into the atlas. Any geometry that has UVs outside 0-1 will be unwrapped before going into the atlas. Without being cognizant of this, you could end up with a suboptimal atlas layout. Enabling V-wrapping (see below) helps branches to not take up so much of the atlas when their UVs are outside 0-1.| +
-  +
-==Allow separate atlases==+
  
-If you have set materials to go into different atlases on the [[toolmaterialsassetsbar|material asset bar]]this option can let you enable or disable that functionality+These options modify the output size and geometry of your model. You can keep the current scene unit, convert to different unit, change the scale, or flip and rotate the model for a particular coordinate system.
  
-==Allow V wrapping==+=====Textures=====
  
-When geometry has UVs outside 0-1, they need to be unwrapped in order to be placed in the atlas. If they aren't, these UVs may start referencing the textures surrounding its material in the atlas. However, some things may wrap UVs a lot, such as branches. If these were unwrapped and placed in the atlas, they would be so much bigger than everything else, it would result in a suboptimal atlas layout. Also, since you have a maximum billboard atlas size, you may lose a lot of texture resolution as the whole UV space is squeezed into the atlas.+These options deal with the creation and writing of all the textures needed for the tree during export.
  
-This is where the V-Wrapping option can help. When enabled, anything that wraps in the V direction will get placed in the atlas such that its top and bottom edge touch the top and bottom of the atlas. Thus, V-wrapping UVs will work just fine and you keep much more of the texture resolution. You still need to be cognizant of U-wrapping, but since branches wrap a lot in V and not so much in U, this is a great feature when putting branches into an atlas. +====Packing====
  
-See the picture below for an example of a one-draw-call tree where everything has been placed into the atlasutilizing V-Wrapping so as not to lose texture resolution on the branches.+Game exporting uses the concept of texture packing, where the material maps used in the Modeler are mergedcompressed, or otherwise prepared for use in the final game engine. Every engine requires a different texture setup, and we include a number of them with the Modeler. You are able to switch between them easily, even to [[texturepacking|custom ones you write yourself]].
  
-{{tree_atlas.png?nolink&200}}+====Format====
  
-==Separate materials==+This option sets the format of the exported textures. For some game engines, this format defaults to the commonly-used format (usually PNG or TGA).
  
-When placing materials into an atlas, these materials get merged together. While they use the same textures, sometimes you may want to split the materials based on a number of factors. For example, a common situation is that leaves need to be two-sided but branches should cull backfaces. Enabling "Separate Materials" will split up the materials based on the things that do not get written into the textures. For now, this is just the two-sided flag.+====Size====
  
-==Ignore smooth LOD==+With the size options, you can set the size of the atlas, the size of the billboard atlas, and the max size of any other texture written.
  
-When exporting to formats that split the geometry up for different vertex shaders (such as .ST for UnrealEngine4), smooth LOD may impact your total draw calls because leaves LOD differently from branchesIf you are not using SpeedTree-style LOD with vertex morphing, you can choose to ignore smooth LOD requirements for different types of geometry and get the fewest number of draw calls.+====Include variations==== 
 +[[toolmaterialsassetsbar|Variations]] may be set up in the materialThis option enables the processing of variations on exportInstead of requiring the final game engine to have shader code that does the variation, the exporter will simply make new materials and textures with the variation information baked in
  
 +>**Note**: Variations should be used sparingly on real-time SpeedTree models to avoid too much extra texture space being used. If atlassed, the variations of a material will take up multiple places in the atlas. If not, additional textures will be made.
  
-=====Geometry=====+=====Atlas=====
  
-These options modify the output geometry, such as flipping and rotating it for a particular coordinate systemIn most of the game-specific exportersthese are either disabled or pre-filled with the most common values for that particular engine.+Atlassing is the most important aspect of preparing a tree for real-time renderingPutting multiple materials into the atlas allows the geometry that uses them to be mergedresulting in fewer draw calls. With aggressive merging, you can make an entire tree that renders in one draw call.
  
-For all file types except OBJ, there is an option to pack the vertex color how you wish itEach channel of the final color can be set to a variety of optionsto facilitate a mesh version of the tree going into your particular engineCommon setups include (R,G,B,Blend) and (R,G,B,AO).+^**Control**^**Description**^ 
 +|**None**|This option does not make an atlas. Each material will export its textures separately| 
 +|**Non-Wrapping**|This option looks at the geometry using each materialIf the UVs on the geometry fit within 0-1, then its material will be put into the atlas. Geometry that uses wrapping UVs or otherwise has UVs outside of 0-1such as branches, will be exported as separate textures| 
 +|**Everything**|This option puts every material in the entire tree into the atlas. Any geometry that has UVs outside 0-1 will be unwrapped before going into the atlasWithout being cognizant of thisyou could end up with a suboptimal atlas layout. Enabling V-wrapping (see belowhelps branches to not take up so much of the atlas when their UVs are outside 0-1.
 +  
 +====Allow separate atlases====
  
-{{packcolor.png?nolink&200}}+If you have set materials to go into different atlases on the [[toolmaterialsassetsbar|material asset bar]], this option can let you enable or disable that functionality
  
-In formats that support it, such as STSDK, this is also where you would supply the [[vertexpacker|vertex packer]] used on tree and billboard geometry.+====Allow V wrapping====
  
-=====Textures=====+When geometry has UVs outside 0-1, they need to be unwrapped in order to be placed in the atlas. If they aren't, these UVs may start referencing the textures surrounding its material in the atlas. However, some things may wrap UVs a lot, such as branches. If these were unwrapped and placed in the atlas, they would be so much bigger than everything else, it would result in a suboptimal atlas layout. Also, since you have a maximum billboard atlas size, you may lose a lot of texture resolution as the whole UV space is squeezed into the atlas.
  
-These options deal with the creation and writing of all the textures needed for the tree during export.+This is where the V-Wrapping option can help. When enabled, anything that wraps in the V direction will get placed in the atlas such that its top and bottom edge touch the top and bottom of the atlas. Thus, V-wrapping UVs will work just fine and you keep much more of the texture resolution. You still need to be cognizant of U-wrapping, but since branches wrap a lot in V and not so much in U, this is a great feature when putting branches into an atlas
  
 +See the picture below for an example of a one-draw-call tree where everything has been placed into the atlas, utilizing V-Wrapping so as not to lose texture resolution on the branches.
  
-==Format==+{{tree_atlas.png?nolink&200}}
  
-This option sets the format of the exported textures. For some game engine, this format is locked to the commonly-used format (usually PNG or TGA).+====Separate materials====
  
-==Size== +When placing materials into an atlas, these materials get merged together. While they use the same texturessometimes you may want to split the materials based on a number of factors. For examplea common situation is that leaves need to be two-sided but branches should cull backfaces. Enabling "Separate Materials" will split up the materials based on the things that do not get written into the textures. For nowthis is just the two-sided flag.
- +
-With the size options, you can set the size of the atlas, the size of the billboard atlasand the max size of any other texture written.+
  
-==Packing==+====Ignore smooth LOD====
  
-Game exporting uses the concept of texture packing, where the material maps used in the Modeler are merged, compressed, or otherwise prepared for use in the final game engine. Every engine requires a different texture setup, and we include a number of them with the ModelerYou are able to switch between them easilyeven to [[texturepacking|custom ones you write yourself]]. +When exporting to formats that split the geometry up for different vertex shaders (such as .ST for UnrealEngine4)smooth LOD may impact your total draw calls because leaves LOD differently from branchesIf you are not using SpeedTree-style LOD with vertex morphing, you can choose to ignore smooth LOD requirements for different types of geometry and get the fewest number of draw calls.
- +
- +
-=====Atlas editing===== +
- +
-At export time, if you are not happy with the automatically-generated atlas layout, you can edit it by clicking the button in the top right of the export dialog. If multiple atlases are being exported, you can choose which one is being displayed. +
- +
-{{edit_atlas.png?nolink&300}} +
- +
-The tools for editing are translate, rotate, scale uniformly, and scale non-uniformly. Once a tool is selected, simply click on a texture in the atlas and drag the mouse to perform the action. +
- +
->**Note**: With manual editing, it is possible to cause overlapping textures in the map, which will not work correctly in the exported file.+
  
 +=====Billboard=====
  
-=====Exporting from the command line=====+Determine how to treat billboards in the exported file. 
  
-Full SpeedTree Games also has the option to export tree from the command line, without ever opening the GUIThe command line options are shown below.+^**Control**^**Description**^^ 
 +|**Faces**|Set how many faces to render on billboard.|| 
 +|**Top down**|Include top-down faces in the billboard.|| 
 +|:::|**Top down height %**|Set where to put the top-down geometry in the billboard mesh (from bottom to top).|
  
-|  -h|Show help/options | +=====Format-specific=====
-|  -export_game <file>|Export the loaded spm file to the specified mesh file (fbx, obj, or abc) | +
-|  -export_options <file>|Set options for exporting using the indicated ini file | +
-|  <any other file>|The SPM filename to open |+
  
-The export options .ini file you can pass on the command line is the same one you can save using the button in the bottom left of the export mesh dialog. In this manner, you can use the Modeler to set up how you wish files to be exported at a later date.+When exporting an animation, different cache formats have options that will appear in this section.
  
->**Note**: On Windows, if you run the .exe directly, the command line will return immediately and may not receive output from the process until it finishes in the backgroundIf you wish to get feedback from the Modeler, use one of the following methods:+These options are available for USD and SpeedTree SDK exports.
  
-| cmd|start /WAIT <exe> <arguments>+=====Extra=====
-| PowerShell|Start-Process -Wait -FilePath <exe> -ArgumentList '<arguments>' |+
  
 +^**Control**^**Description**^
 +|**Show summary**|Shows a summary of the export settings when the export completes.|
 +|**Skip texture save**|Doesn't save the textures to disk.|