Friday, January 9, 2026

Fix Disappearing Shadows in UE5.X

 This is likely something you've come across, researched and found the solutions to without too much effort but thought I'd post my findings anyway. Thanks to William Faucher (as usual, he has the solutions to most things) and even Google's basic AI summary when searching for the solutions.

There are 2 parts to this problem. One regarding basic mesh objects and another regarding the same issue but with foliage/instances. I've run into both and they're solved (mostly) with a basic console command.

At it's core, the engine is trying to optimize things and shadows on meshes tend to vanish as the object approaches about 0.02% screen size (in my tests). I didn't want this as it effects my Cinematic scene. Note, I am using the Cinematic scalability settings. 

Using the console command: "r.RayTracing.Culling 0"  keeps the ray trace shadows from culling, regardless of distance.

For foliage, the console command is: "r.Raytracing.Geometry.InstancedStaticMeshes.Culling 0".


Another factor that may play a role in your disappearing shadows could be on the light source's "Dynamic Shadow Distance" setting  as shown above. You may need to increase this depending on the size of your scene and how far away your objects get. 

Obviously there are many other factors that could be affecting your scene if you have this problem, but these seems to be the basic and most common solutions and worked for me.

Good Luck!

Ray traced Shadows and 2 Sided Foliage Shader (follow up)

 I did a little testing (finally) regarding earlier issues I have posted about using Ray Traced Shadows and lighting in UE5.X with foliage and the 2 Sided Foliage shader. Having reported earlier that the issue was fixed I can now say that is indeed true based on my own tests. Granted, there are myriad issues and settings now when enabling ray tracing in your scenes that could effect this, but at it's most basic, sub-surface effects used by the 2 Sided Foliage shader do function when using raytracing in Unreal. 

Obviously, certain settings may affect this, but overall, choosing a base project at the start with Ray Tracing enabled will show sub-surface effects with the shader as shown below:





Project settings with Ray Tracing enabled. I have changed Ray Lighting Mode to HLR and left Lumen as the method for GI and Reflections


Enabling "Ray Traced Shadows" in the Hardware Ray Tracing section of the Project Settings does not affect this dramatically, though the look may be a little different (less intense). Sub Surface properties in the shader still work:






Tuesday, November 25, 2025

Fixing FBX Import Errors with Unreal Engine5+ (Tangent Bases and Normals)

 Recently ran into some fbx import errors with Unreal regarding degenerate tangent bases, and nearly zero binormals/normals. You can research the real meaning of these issues for a better understanding of the root causes but I'm just gonna post the solutions that worked for me after trying a bunch of the options listed on forums around the internets. My models were built in 3ds max and showed no problems. Well, not entirely true. My Occlusion mapping/Lighting passes were not coming out right. In the process of modeling I had attached some parts that had been mirrored. I think this was the main source of the issues I encountered later and was fixed (mostly) by re-importing the fbx model after export before anything below. 

There are many posts about this online offering different solutions, depending on your DCC package. With Max, I found the solution involved just a few things. Obviously, you need proper UVW Unwrapping. Assuming you have this, it's a good idea to "Reset Scale". Next check for degenrates et. al. using "Modifiers/Retopology Tools/Mesh Inspector." Run the inspector and fix all errors listed in the Modifier. Now Export FBX with Tangents and BiNormals in FBX exporter. I usually use Triangulate as well.
    On Import into UE: Uncheck remove degenerates (especially for small objects).
    Import Normals and Tangents. 

This should get rid pf the errors upon import into Unreal.

But...... there are always some other factors that could be afflicting your goemetry and for that, I wish you good luck with the other solution posted around online.

Content for Marty the Marmot short

 Some renderings from Unreal of some of the content I'll be using in in my project "Marty the Marmot". You can check out some of my other posts for more details on Marty himself.

I've been modeling away for a while, banging out these props. A few of these are revisions to downloaded, free content that doesn't require attribution.
 

 
















 

Tuesday, November 4, 2025

Updates to Unreal Engine Master Material "SparkoMat"

  I have updated my "SparkoMat" Master Material for Unreal Engine. This version will work in UE5.3 and later. I noticed in the old version that some of the pins were not connected when opened in UE5. Why???... who knows. It was a little hard to spot at first so my apologies for not correcting this earlier. This version corrects that and adds some new features. Included in the download project is a 2nd version of the Material that works with Opacity requirements. You can see the material graphs for both materials below. R-Click and Open Image in New Tab to see it at full resolution. All other original information about the Material(s) is still available at the blog on the DAS website:

https://www.digitalanimation.net/post/sparkomat-dave-s-universal-unreal-engine-master-material 

 

Download SparkoMat5 Unreal Project Folder (2.1 MB  .zip) 

Release Notes:

1. Added options for unique UV channel for Ambient Occlusion textures. It works just like the other options for choosing your UV channel but is unique for AO.

2. Added option to use Ambient Occlusion normally, connected to the pin in the Material Properties, or use AO as a multiplier on top of the Diffuse property. This is a checkbox within the AO group when you create a Material Instance.

3. Changed the default Normal property to a color of 0,0,1 instead of 0.5, 0.5, 1. I was getting abnormal (no pun intended) behavior with the old color value. If this doesn't match with your usage experience, you can always change it back inside the Master Material. I left the V3 color in the Normal texture comment group is you want to re-wire it back in.

4. The new UE5.3 scene is just the Materials and Material Functions. Nothing else in the project folder unlike the previous download project that contained some sample objects and Material Instances.

 

Below are some screen grabs of the Material graph: 


SparkoMat5   Master Material Graph 
(
R-Click and Open Image in New Tab to see it at full resolution)

                                                    


SparkoMat5_Opacity  Master Material Graph  
(R-Click and Open Image in New Tab to see it at full resolution)



I have not made any changes to the original Master Material for vegetation. That Material is unique to my Vegetation Content for sale on FAB but likely has the same missing pin connections as these others. I'll be looking into that soon.

I hope this ends up being of some to use to you in your endeavors. Thanks! 

 

 

 

 

 


Sunday, June 15, 2025

Resuming Blog Posts for Digital Animation Services

     Several years ago I migrated my website to Wix. Therefore my Blog migrated as well which explains the long lag in any posts here. Seemed like an OK idea at the time and the Wix platform has served me well to be sure. However, I'm finding their pricing a little hard to swallow as discount periods have ended and time goes on. I intend to migrate off of Wix in the next year when my contract expires and as such, my Blog there will need to migrate as well. Unfortunately, as many already know, Wix's web design platform and blog are proprietary (I knew this going in but for some reason didn't think much of it at the time) and therefore a migration to a new platform will be a bit time consuming. Good thing I have a year! I have therefore decided to resume posting here on Blogspot/Blogger for the forseeable future. Since I have a massive following of up to 3 or 4 people, I don't anticipate this being a problem for the internet.

If it was not clear, my website and blog were entirely rebuilt when I migrated and are always available at  their original home: www.digitalanimation.net

Thanks!


Dave 

3ds Max Skin Modifier Tips

 A couple quick tips for working with the Skin Modifier in 3ds Max:

I ran across a few issues I had trouble resolving without some help from others on the interwebs.

1. I wanted to select the vertices belonging to a particular bone as I worked through the skinning process on my mesh. Though it was posted in a few places online, I figured I'd add to that tiny list of places by posting it here. Credit to the original maxscript author whose name I did not find online at any of the places it was reposted.

Just run this snippet of maxscript code and it will select all the vertices associated with the selected bone in the Skin Modifer:

            s = modpanel.getCurrentObject()
            -- if the current modifier selected is a skin modifier, then select the vertices
            if iskindof s Skin do
            (
                skinOps.selectVerticesByBone s
             )

Though this capability is obviously included in the basic SkinOps properties in maxscript, I am not aware of any way to do this natively in the Max UI. 

-------------------------------------------------------------- 

2. I also wanted to attach one skinned mesh to another, effectively combining the 2 skinned meshes into one and therefore the 2 Skin Modifiers as well leaving a single mesh with a single Skin Modifier. This was to make my life a little easier when I imported the character into Unreal Engine. I wanted only one Skeletal Mesh to deal with in Unreal. Again, I found the solution in a few places online so thought I would repost here as well. Credit to user PolyHertz from the original forum post in 2015 which can be found here:

https://polycount.com/discussion/162400/attaching-separate-meshes-and-retain-skinning-data-help-3dsmax-but-open-to-other-software

 The process involves adding a Skin Wrap Modifier with the following steps:

    1. Duplicate the meshes in place (select them all then press ctrl+V).
    2. Combine them, and add a Skin Wrap modifier to the resulting mesh.
    3. In the Skin Wrap modifier add the already skinned meshes, and change settings as needed.
    4. Convert the Skin Wrap modifier to a regular Skin modifier.
    5. Delete old non-combined meshes.

Happy Skinning!
 

Friday, February 17, 2023

Export FBX w/LODs for Unreal Engine

 If you have multiple LOD groups prepared with Max’s Level of Detail utility, the best resource I've found for easy export is this excellent macroscript by Anders K. Nielsen:

“Mass Export FBX to UE4.mcr” http://www.mcgreed.dk/maxscripts.html



The process is simple and though the script has several important options, here are the basic steps:

1. Set a file path where the FBX exported content will go.

2. Select all the entities in your max scene that you want to export then press “Get fileset” on the script.

3. Make sure and uncheck the option to move parents to world zero unless you're exporting props or other entities that will be animated or placed within Unreal.

When you press “export” the standard FBX export dialog will appear for you to choose your settings and options. This will only happen once upon initial export. Of course you need to choose the “Animation” option for objects with LOD’s.

I have exported dozens of LOD groups out of a single Max scene with this script. A real time saver.

I have created a simple maxscript (.ms) version without the macro headers so you can run it directly without the macro setup in max. You'll find it over in the Tools section of the website as well as a link below.

AKN_Mass_Export_FBX_NonMacro.zip

Anders has several other maxscripts at his site worth exploring. Thanks!!

Sunday, January 1, 2023

Pre-Multiplied Alpha Channel in Adobe Premiere

 One of those annoying things I always forget how to setup. If you've rendered out an animation to frames with an alpha channel, like old Targa format, and used a pre-multiplied alpha channel you need to make a change when compositing in Adobe Premiere. Years ago, Premiere could not handle pre-multiplied alpha channels. I did my compositing back then in old school Combustion. Anyone remember that? Loved that program but I guess Autodesk decided they couldn't compete with After Effects after a few years. Anyway, I was putting together some old frame sequences and just couldn't remember how to get Premiere to recognize my pre-multiplied alpha. You know, you get that black halo around your composited sequence. In Premiere, select the clip, then go to the "Clip/Modify/Interpret Footage" option and under "Alpha Channel" choose "Conform" and check the box for Premultiplied Alpha as shown below:


During my search on the topic online I came across this nice post on the subject by Dennis Koeppl. Thanks.

Saturday, December 3, 2022

WSP Inc. USA, design visualization for the city of Paris

 Before I retired in 2019 I had the privilege of being part of the visualization team at WSP creating interactive versions of the area around the Eiffel Tower. Though many folks contributed to the project, the real-time work was done in Unreal Engine 4.15 -4.18 largely by myself and my brilliant colleague Tracey White. With the tight deadlines and frequently revised goals, we never did get the finished product we would have wished for but nonetheless, I'm proud of the work we completed and I wanted to share some of it.

At it's core, the project was to create a detailed, real-time version of the existing environment around the tower, approximately 2.4 km, large enough to encompass nearby Metro stops, landmarks and areas of concern. The city was hosting a competition for the remodel of this entire area. We would then be tasked with inserting each finalist's revisions into the existing plan. The original goals were quickly revised to include a VR ready version but in the end, due to time constraints and to highlight each finalist's design in an equal manor, a pre-rendered fly-through of each design was created.

Below are some links to read up further on the project, plus a link to download a version of 3D real-time model.

As I mentioned, the project was very collaborative, including all the design team members from the finalists in several different countries, but I must include special thanks to some other 3D specialists at WSP including Kevin Gilson, Mark Kauffman, Glen Loyd, Mathew Kaltman, Eric Martens, Josh Jones, Scarlet Burns and Randy Burton. Mark Kauffman was critical as the Autodesk Infraworks specialist creating much of the core terrain and plan the rest of us worked with.

A screen capture from UE4 showing the 
Paris Eiffel Tower scene created at WSP in Denver, Colorado


Announcement of the competition winner and general overview of the project at Informedinfrastructure.com with links to videos of the designs of the 4 finalists:

https://informedinfrastructure.com/48189/city-of-paris-names-winning-design-team-to-reimagine-the-eiffel-tower-landscape-using-bim-2/

More overview of the project from the Autodesk Blogs including a link to download WSP's core, real-time Paris model (VR and Desktop versions):

https://blogs.autodesk.com/infrastructure-reimagined/eiffel-tower-experience-site-3d/

A tour through the core model created by WSP:

https://vimeopro.com/projectviz/paris-interactive/video/311519755

Some other videos of the project including GPB’s winning bid:

https://vimeopro.com/projectviz/paris-interactive

Online UE Blueprints resource

I came across this wonderful place online where users looking for a way to solve a problem can share their solutions and blueprint code snippets to assist the rest of us. These bits of blueprint can even be downloaded directly from the website. A great resource!

Unreal Engine: Overcome the 16 Texture Sample limit.

I mentioned in my previous post very briefly about overcoming the 16 Texture Samples limit in your typical UE Material. This is frankly old news. There have been other posts around the internet forums about this. It's how I learned about the Sampler Source option. I just thought I'd chime in since it seemed like an important topic.

With your Texture Sample selected in your material graph, in the "Details" panel, set the "Material Expression" "Sampler Source" to "Shared: Wrap". See below.


Credit for the image to poster "Numbat" on the Unreal Engine Dev Community forums. The discussion can be found here



Sunday, November 27, 2022

Dave's Editor Utility Blueprints (Blutilities) for Unreal Engine

I've been creating these as I needed for some projects. Thought about uploading them for sale on UE Marketplace but decided I'd make them available here. They are included in a little sample scene for testing. Once in the project, you'll find them in the content folder called "Blueprints":

https://1drv.ms/u/s!AvcZU7fMMWrohEf-VCJMVO5FJNqO?e=fbDY88 (~70 MB .zip)

Note these won’t work in anything BEFORE 4.24. I have found them to be compatible with UE5. These are provided as is. Use at your own risk. I warrant nothing.

Bulk Texture Replacer
Bulk Asset Renamer
Bulk Material Instance Parameter adjustment (vector and scalar)
Bulk Material Assignment (Assets and Actors)

A help file is included (pdf) and you’ll need it for at least the Texture Replacer and the Renamer which have specific instructions. If you want to view the help documentation and see specifics about each utility you can check out the pdf here:

Dave's Blutilities, Help File (PDF)

If you need some basic help on using Editor Utility Blueprints, please consult the Unreal Engine documentation.

I know there are several other utilities out there from other artists that perform some similar functions and you might find those more to your liking. It's up to you of course. I hope these help you in your work. 

Thursday, December 31, 2020

Ray Tracing Shadows for Foliage in Unreal Engine 4.25 & 4.26

 I wanted to take some time and consolidate my findings on the problems related to Ray Tracing and Foliage painted instances. This is important to me since I have released several foliage Asset Packs on the Marketplace and I want to be clear for users on the limitations when using the nvidia RTX technologies with Foliage placed assets. There are numerous forum posts on the issues but it takes some time to sort through them and figure out what's really going on and what choices you have as a developer to get the best results. 

All the differences that really matter involve shadows and the Sub-Surface properties of the Two Sided Foliage shader. There are some key differences, not just when using Ray Tracing vs. Cascading Shadow Maps (CSM), but even between the Ray Tracing options in 4.26 vs, earlier releases.


To start with, at this time, the best shading results with large, foliage painted scenes where the Foliage Instances are using the Two-Sided Foliage Shader are with old school CSMs, .....depending on how picky you are. This involves disabling Ray Tracing Shadows altogether on your primary Directional Light source, globally for the whole scene. Obviously not the solution most of us want to hear. But until Unreal can create a solution for the limitations in Ray Tracing and the Two Sided Foliage Shader, this is the only option I have found.

For the purposes below, I am assuming a generic setup as you would get by starting a new level, creating a landscape and painting some foliage onto it. In addition, the primary Directional Light has been set to "Movable" as is the recommended workflow for a large environment. I am not dealing with a Static Light source, trying to bake foliage shadows into a large environment scene.


Sub Surface Issues:

Lets take a look at 2 renders, one using CSM and one using Ray Tracing Shadows. Note that the 2 are currently mutually exclusive. If you have Ray-Tracing Shadows enabled, adjusting CSM properties makes no difference. They are not being used. The material assigned to the low poly Aspen tree model is of course a Material Instance and the Master Material has "Cast Ray Traced Shadows" enabled and is using the Two Sided Foliage shading model.

Aspen Tree Render, Ray Tracing Shadows enabled

As you can see in the above rendering, the Sub Surface attributes of the Two Sided Foliage shader are not being computed when using Ray Traced Shadows.

Now the exact same shot, but with Ray Traced Shadows disabled:

with Ray Traced Shadows disabled, shadows are computed using Cascading Shadow Maps and now we see the Sub Surface properties of the Two Sided Foliage Shader. 

Obviously the look with Sub Surface properties rendered is more what we want and expect. Rendering Sub Surface properties with Ray Traced Shadows enabled is not currently possible up to version 4.26. I refer to this forum post for the explanation where Epic Staff member YuriyODonnell writes on 4/24/20 in version 4.25 at the time:


"In general, there are some limits to how ray tracing works with subsurface scattering. Shadow maps are currently required for certain effects (such as transmission) to work correctly. This is because ray traced shadows work by starting a ray at the receiving surface and tracing it toward the light. Shadow maps do the opposite: start from light and "trace" towards scene. Shadow maps therefore allow us to approximate object thickness.
My gut feeling is that a shadow map will be required to achieve the subsurface look you are after (i.e. shadow maps would still need to be rendered even when RT shadows are on, but only used for SSS). Perhaps a specialized path can be also implemented using ray tracing, but no work has been done on this specifically so far."


One possible solution that comes to mind is to disable the "Cast Ray Traced Shadows" option on the material itself. Then perhaps as we've seen with the the Scene light option, the foliage will now use CSMs for its shadows:

"Cast Ray Traced Shadows" disabled on the material

At first glance in this render that seems to work:

Ray Traced shadows disabled on the material but enabled for the scene light

Unfortunately this currently results in the foliage casting no shadows whatsoever:

Ray Traced Shadows disabled on the Material but enabled in the scene results in no shadows at all for objects with that material.

As in the above forum post response, perhaps a separate path could be used in the future such that objects with materials using SSS will be rendered using CSM while all others would still use Ray Tracing if enabled.

Of course if we disable Ray Traced Shadows again on the light source, we now default back to CSM calculation and we get the traditional shadows as we would have seen in versions prior to Ray Tracing:

Cascading Shadow Maps only for the scene light, no Ray Tracing.

As it stands, you will have to decide whether the benefits of Ray Tracing for your scene outweigh the benefits of Sub Surface rendering on your foliage. The foliage still renders OK with ray tracing, but granted, the look is not as realistic. Let's hope for a good solution in the future.




4.25 vs. 4.26, Culling and Console Commands

One major problem I had with my scenes when transitioning to Ray Tracing versions of Unreal Engine versus the earlier versions prior to RTX was somewhat common, but with one critical omission from any of the forum posts I could find. I'm guessing this problem is a little too new with 4.26 being a relatively recent release and developers having already solved their shadow problems based on the above issues.

My scene renders as expected in in 4.25 except that the shadows only go so far into my foliage before they disappear. This has been a known issue discussed on several forum posts. I will be referring to this post in particular regarding Ray Traced Shadows on Foliage actors in 4.24. But this issue is valid in 4.25 as well as 4.26 as I will discuss.

In release 4.25 below is a render from a scene built in 4.18 (no RTX) but opened in 4.25 with Ray Tracing enabled:

Ray Traced Shadows enabled but "Culled" by default

The simple solution to this problem is to invoke a CVAR that disables the Culling of the Ray Traced Shadows. Open a command console type-in field and enter this:

"r.RayTracing.InstancedStaticMeshes.Culling 0"

The results here:


There are indeed a series of commands related to controlling the ray traced shadows on Instanced Static Meshes, kindly documented in the above forum post by contributor Duongngochieu on 03-24-2020

Problem Solved Right?? Not so fast. Now let's try opening the scene in 4.26. Without any adjustments we get this:

Ray Traced Shadows on Foliage painted actors in UE 4.26 with default settings

What I get here is even more bizarre, with random actors casting shadows and in fact, as I navigate about the scene the shadows come and go with seemingly no rationale. Sometimes as I get closer the shadows vanish on a tree. Sometimes vanishing as I orbit or even just pan. The shadows come and go on seemingly random trees having nothing to do with culling distance.

So the Solution! Let's invoke the CVAR from above: "r.RayTracing.InstancedStaticMeshes.Culling 0"

UE 4.26 with CVAR: "r.RayTracing.InstancedStaticMeshes.Culling 0"

So the results are not what we expect. Actually, no change at all. This console command does not appear to be working to solve the problem. After a lot of research, trying other commands and fiddling with ray tracing settings for days I discovered that the console commands for Ray Tracing on Instanced Static Meshes have changed in 4.26. I have found no specific documentation on this but it works if you invoke the same console command constructed this way:
"r.RayTracing.Geometry.InstancedStaticMeshes.Culling 0"



In fact, all commands related to Ray tracing Instanced Static Meshes in 4.26 need this new declaration structure with the insertion of the word "Geometry" into the command.


Below are most of the related commands as they are implemented in 4.25, again, courtesy of forum contributor Duongngochieu from his above linked post:

Whether to include Instanced Static Meshes in BVH:
r.RayTracing.InstancedStaticMeshes [0|1]

Whether to enable culling of instance data:
r.RayTracing.InstancedStaticMeshes.Culling [0|1]

Scale factor on how large clusters are. Number represents a scale against the size of instances. 
5.0 means that clusters are 5x the size of the largest instance object:
r.RayTracing.InstancedStaticMeshes.CullClusterMaxRadiusMultiplier

Distance at which to cull a cluster: 
r.RayTracing.InstancedStaticMeshes.CullClusterRadius 

Threshold for when an object is considered small: 
r.RayTracing.InstancedStaticMeshes.LowScaleRadiusThreshold

Distance at which to cull small objects: 
r.RayTracing.InstancedStaticMeshes.LowScaleCullRadius

I'm assuming all these commands will work in 4.26 SO LONG AS you insert "Geometry" between "r.RayTracing." and ".InstancedStaticMeshes". It seems "InstancedStaticMeshes" are now parented by "Geometry" in the code.
I came upon this almost by accident in my research when watching this video by nvidia developer Richard Cowgill. It's well worth checking out. He is discussing new options for dealing with WPO offset animations in your foliage and lists the new commands which strongly resemble the formatting of the other rayTracing commands I had been working with. Near the end he mentions that simply removing the word "Geometry" from the new commands would make them work in UE 4.25. That would also make them follow the currently known formatting for the other commands related to RayTracing InstancedStaticMeshes in 4.25. Seemed a logical extension to try out the old CVAR's with this new formatting, inserting the word "Geometry" and sure enough, things start behaving in 4.26 as they do in 4.25.

I leave other settings related to Ray Traced Shadows up to you to evaluate and implement as you see fit for best results in your own scenes. I did however want to take the time to clearly (I hope) explain some of these most critical issues in a single post. And great thanks as always to the courageous forum posters putting themselves out there and allowing all of us to benefit from the wisdom and experience of others.

David Sparks

Monday, December 14, 2020

Realistic Foliage Pack 2 "Trees" for Unreal Engine

 

Realistic Foliage Pack2 “Trees” 

Available as of Christmas Day on the UE4 Marketplace. Below find some detailed support about the foliage pack. Watch the demo video here:


Also make sure and check out the  "Bushes" Foliage Pack!:

About:

This UE4 Asset Pack contains 20 individual meshes representing 5 common species of trees and 5 unique indoor plant pots. Each tree species includes 3 procedural variations allowing you to create forests or large groupings without obvious repetition.

These trees are meant to fill the gap between high poly “Cinematic” models and lower poly gaming/VR assets. All “Hero” LOD’s are less than 20K polys with most below 15K and several below 10K. These models are ideal for architectural visualization but also most game environments.

There are Demo levels for each tree and a “Library” Level containing just the core content. Note that the staging environments for the Demo Levels are for demonstration purposes only and contain a few additional assets from the UE4 Starter Content and Content Examples. Each Demo Level also contains the UE4 Mannequin for scale reference.


*A Note About Foliage Instancing with Ray Tracing: 

If you plan on using the foliage assets with a Ray Tracing version of the Unreal Engine, at this time I recommend disabling "Cast Ray Traced Shadows" on your light source if you are planning to use the trees with Foliage Instancing. This will result in the use of Cascading Shadow Maps. There have been numerous posts since the start of RTX regarding issues with Foliage Instances and it seems yet to be fully resolved.

For an in-depth explanation of the problems and solutions regarding Ray Tracing and Foliage Instanced Static Meshes, please refer to my more recent post here. It's a bit long-winded but I think it will make many things clear if you have questions.

 Be aware that the renderings below are all from ver. 4.18 (no ray tracing) in an attempt to show the "worst case scenario".
Also note that you can choose whether to set the skylight to 'Stationary" or "Moveable" and this has a dramatic effect on the appearance of the foliage. I prefer the look with the skylight set to Moveable/Dynamic but other factors may determine this for you. In many of my scenes the skylight is set to Stationary but I find this leads to shadows/shading that are too dark. You will no doubt be importing the foliage into your own scene and will set the lighting as needed there rather than inheriting the lighting scheme from any of my demo scenes.


Here are a few shots from the asset pack:

(Note: All pictures and videos in this blog can be clicked on for larger versions)









Meshes:



1.       Coconut Palm



2.       Aspen



3.       Honey Locust



4.       Schefflera (Indoor)



5.       Spruce (Including winter snow version via separate material)




6.       Pots: 5 individual models, can be used with or without a tree.



For the Spruce tree there is a separate winter Snow Material, and though the mesh is the same as the summer version this can be considered a separate tree.

LODs:

Each set of trees contains seamless LOD’s that reduce to 3D cross-hatched planes (Front, Side and Up facing) plus an ultra low poly trunk. The exception is the indoor Schefflera tree that does not reduce all the way down to the cross-hatched planes since it is not meant for foresting. All models contain 4 LOD’s except for the Spruce trees which have 5. The final LOD for the trees is typically close to 25 polys (except the Schefflera as noted).

Here is a sample video showing the typical LOD's for one of the Aspen trees in the collection:


Here is another sample video showing the LOD's on one of the pots in the collection:



 All mesh models have custom UVW channel 2 layouts for baked shadows. Here is a sample of the LOD0 layout for one of the Honey Locust trees:



Materials:

There are a total of 3 Master Materials and 26 Material Instances for the core content of the asset pack.

1 Master Material for all the trees, 1 Master Material for the final Cross-Hatched planar LOD’s and 1 generic Master Material for the plant pots.

Several other materials, notably Landscape materials, are used for each staging environment. The staging also includes slightly modified versions of materials from the Starter Content and Content Examples where needed. You are welcome to use these if you so desire but they are not integral to the trees and pots themselves.

The FoliageMaster2 Material is the master material for all the trees which then use their own Instance based on this. Except for the final, planar LOD, this is an Atlas Material. There are 2 materials for the final, planar LOD version each tree. The original Atlas Instance from the full 3D mesh version as it is used on the trunk and an Instance of a Cross-Hatch Master Material. Each Instance of the “X-Hatch” Material is unique to each mesh model to match the shape and appearance of that particular tree variation.

 

Special Material Parameters, "Sub-Color":

The FoliageMaster2 Material includes a set of sub-routines called “Sub Color”. This enables additional features for some of the trees which can benefit from some localized, per-Instance Color variations. For example, the Aspen tree colors can by randomized for Fall colors trending toward yellow and red hues. With the Palm and Spruce trees, “Sub-Color” can be set to a brown hue resulting in the appearance of dead or dying areas on some of the fronds. The areas of “Sub-Color” variation are declared using either the Mask included with the Roughness, Alpha and Mask texture (the Mask declares just the “Leaf” portions of every tree) or through the Blue Vertex Color channel which has been set in the mesh for localized regions on some of the fronds. The Sub-Color routines can also be used for controlled, per-Instance variations on any tree if desired. Though there is already a Material Function included in the MasterFoliage2 material for this, the specific color of the variation cannot be controlled by the user with that function.

When using Sub-Color on any of the trees, be aware that the final Cross-Hatch LOD does NOT have any Blue painted vertices and so localized sub-colors declared using the Blue Vertex Channel checkbox will not translate over. When use of the Blue Vertex Channel is disabled, the effect uses the Mask texture to apply the effect to all the “leaf” portions of the trees in both the full 3D LOD’s and the Cross-hatched LOD. Just make sure and set the sub-color parameters identical across both Materials.

Below are a few examples of the kind of variation that can be achieved using the "Sub-Color" property:

A sample palm frond with no "Sub-Color" material property variation

The same frond with "Sub-Color" variation configured using the blue vertex channel in the mesh

The Spruce trees with no Sub-Color variation applied

The same spruce trees with Sub-Color variation applied using the blue vertex channel

The same trees again with Sub-Color applied via the default Mask texture (blue vertex unchecked)

The Spruce trees with modified Sub-Color making Blue Spruces



A normal summertime Aspen forest scene

The same Aspen forest using Sub-Colors to mimic a fall season scene



Here is an external link to a detailed video explanation (with audio descriptions) of the Material "Sub-Color" parameters and how they work:

Video: RealisticTrees_SubColor Parameters Explained


Wind:

Wind is supported in the FoliageMaster2 Material on all the trees through the Red Vertex Color Channel with parameters for Size, Speed and Strength.

Here is a demo video on the Wind Parameters as used in the collection:



Collision:

Collision is supported using the Simple primitives method provided for in UE4. All the trees have Capsule collision around the trunk allowing you to move through the leaves.

Inside the red outline you can see the green Capsule collision primitive shaped to encompass just the trunk on this Spruce tree

Another Simple Collision using 2 capsules to best match the trunk of one of the Palm trees



Material Parameters Exposed:

Diffuse – Texture, Tint, Output, Color Variation per Instance

Emissive – Amount

Normals – Texture, Intensity, Flip Green

Roughness – Texture, Invert, Intensity

Specular – Amount

Sub-Surface – Intensity

Wind – Size, Speed, Strength

“Sub-Color” – (See above) localized random variation per instance

 

Textures:

All Atlas textures are at 4K resolution. Cross-hatched 3D planar version textures are 1K except for 2 of the layouts which happen to fit nicely into a 1024 x 512 texture size.

The “RAM” texture contains separate channels for “Roughness” – Red, “Alpha” –Green, and a “Mask” (used by the color variation Material Functions) – Blue. This setup allows a single master material to be used for all the trees regardless of their unique requirements.

Here are some examples of the "RAM" texture used on the Aspen trees in the Atlas material:


Red Channel mask used for Roughness

Green Channel mask used for Alpha cutout

Blue Channel mask used to control color variation on only the leaves


A similar mask texture is used on the final, LOD3 Cross-hatched Material but Roughness has been replaced by an additional mask used to make adjustments to the Up-facing plane on the cross-hatched planes that make up the canopy of the tree on this ultra-low poly LOD version of the mesh.




Honey Locust Tree. The Final LOD Cross-Hatched Texture Mask ("MAM") 



A breakdown of the Mask channels for the Honey Locust Tree Cross-Hatched Final LOD texture seen above:

Cross-Hatched Final LOD Texture mask: Red Channel = Up-facing Polygon Mask

Cross-Hatched Final LOD Texture mask: Green Channel = Alpha Mask

Cross-Hatched Final LOD Texture mask: Blue Channel = Leaves Only Mask


Providing a separate Up Facing mask allows you to control this polygon independently of the rest. Facing upwards, it often receives a bit more light intensity the the rest. With a separate mask you can adjust this polygon to match the rest of the tree in any given lighting scenario. The separate Blue Channel is used by the Sub-Color routines where needed so that only the "Leaf" portions of the tree are affected by custom color adjustments, not the trunks and branches.

I'll also note here that the Normal texture map for these final, cross-hatched LOD's has been rendered from the "Render to Texture_LevelBP" setup in the Engine Content folder. This produces a World Space Normal texture map that needs to be converted (in the Master X-Hatch Material) to Local coordinates. Hence the Normal texture maps for the planar tree versions look different than you might expect.

There are a total of 99 textures. 82 are unique to the core foliage asset pack content and 17 are from the UE4 Starter or Example Content and are merely for the staging environments and are not integral to the core foliage.