I’m trying to set up a simple scene for a character I want to add to my portfolio and I’m using the engine as a rendering solution but there are some things going on I hope someone can explain me and point me in the right direction. I’m kinda new to this and I’ve check some tutorials online and read the documentation to get a little understanding about lights in order to get to the point that I got so far.
There’s a couple of things that I want to mentioned because I know any factor can be involved, so:
Model was done mostly in Zbrush, UVs in Blender and from there it was exported out with the scale set to 0.010 as I saw most people recommended including Epic guys on the “Blender to Unreal Tools” videos, no custom lightmap was done.
Maps are 4k and the model has 3 materials, nothing complex.
This is the list of objects I have in the scene taking as a starting point [this tutorial]:
Most of the parameters on the World Settings are the default ones except from the “Num Indirect Lighting Bounces”.
Lights had the same intensity values throughout all the tests.
The Post Process Volume is mostly set as seen in the masterclass by Lead Artist Jerome Platteaux in [this video].
Taking into account the previous item, I did tests using also a Directional Light on top of all the others but I got mostly the same results in those setups that have this issue.
Now here’s the thing, by changing the mobility both in the mesh and/or the lights, even tho I planned to get a static render (I mean with no animation), I got different results. Like I mentioned above, I didn’t do a custom lightmap so I let the engine do that for me and this is the map I got from it:
Due to the amount of screenshots I took I’ll add a .zip file containing the shots. On some I also changed the lightmap resolution to see if that could help, as to what I’m trying to get out of this is if for example I had a prop that is going to be either static or stationary (because with dynamic lights I didn’t have any issue) what should I take into consideration in order to avoid such a problem? I might be doing something wrong but I don’t know what might be the cause, if it is the mesh, or the UVs, or a setting in UE4, etc.
I’ll really appreciate the help you guys can provide so I can understand a bit better what’s happening. Have an awesome day and if the project is required to check what’s going on, please let me know.
So you’re trying to get a static render of the character, with no animation involved, and have it render at the quality or better of the dynamic lighting?
I looked through the screenshots, and I notice how static lighting yields the most pixelated results. What is the number of indirect lighting bounces? If it’s at or lower than 3, I suggest increasing to 4-6. There’s also a few different kinds of shadow types to apply to character meshes, but I’m not well-versed in those as of yet. There’s Capsule, contact, and dynamic inset shadows, at least. I don’t know which or how it needs to be set for the character in question and the scene. However, trying to apply and modify those could improve the result in static mobility, or stationary.
The UV lightmap above, generated by UE, looks to contain too much in-between space among UV islands. The link you posted of the Masterclass goes into a bit of detail on how minimizing space between UV islands is essential to not incurring noise / artifacts. There’s a way to decrease that amount of space so the UV islands are closer together, and it’s in the mesh editor UV generator settings. I’d also check into increasing the angular change of normals (forget what it’s called in the UV gen settings) to delineate where / how the UVs are cut from the model. Perhaps increasing that setting would yield smoother results from a lower number of islands and more congruent lighting on the character’s less sharply changing features. It’s ‘something threshold’ in the UV generator dialog prior to confirming.
Finally, one other aspect to check is the material settings. It could have LODs set to use a lower resolution, when it should probably be set to either NoMipMaps or use only one MipMap across all distances / scales of viewing the character. In the material editor, with one of the character’s materials open in it, click an empty space in the graph so the details panel displays in the lower left of the screen. Then scroll down to 'Used in…" and enable at least the one for character meshes.
First off thank for the reply, so answering some of your questions:
So you’re trying to get a static render of the character, with no animation involved, and have it render at the quality or better of the dynamic lighting?
Not exactly, I got pretty good results for my purpose either using Dynamic lights - Static Mesh Mobility on my character or the Stationary lights - Movable Mesh Mobility setups, the thing is I want to understand why it didn’t work when the mesh was static
What is the number of indirect lighting bounces?
I’m using 6
The link you posted of the Masterclass goes into a bit of detail on how minimizing space between UV islands is essential to not incurring noise / artifacts
As I understand what Jerome says is that minimizing the padding by increasing the Min Lightmap Resolution increases the DEFINITION of the shadows, but it doesn’t get rid of artifacts, the artifacts/noise you talk about is whenever they are too close to each other, this also depends on the scale of the object, the bigger they are the more resolution might need (might be wrong on this but that’s what I understood). That put aside, I did some testing changing this resolution to repack the lightmap and I got pretty much the same results which is weird because it happens only when both, lights and character, are set to static. Also tried enabling the shadow options you told me but it didn’t make any difference unfortunately
Finally, one other aspect to check is the material settings. It could have LODs set to use a lower resolution, when it should probably be set to either NoMipMaps or use only one MipMap across all distances / scales of viewing the character.
Do you mean Skeletal Mesh in the Usage Tab? The one that is enabled is the “Used with Static Lighting”.
I’ll keep checking what might be the cause of this because it concerns me that at some point in the production of the asset I might have done something wrong, I’ll let you know what I find.
I have other meshes in the scene all of them at the origin, so they were on top of each other. By moving them away from the mesh in question I could get rid of most of the weird shadowing going on (I had them hidden and didn’t think that could happen to be honest since it wasn’t a problem when using dynamic lights).
The thing now is that the textures look washed out pretty bad and it also has some shadow issues. I increased the Min Lightmap Resolution as well as the Lightmap Resolution up to 256 (taking into account the advise from Jerome in the masterclass not for the values but for the relation between Min Lightmap and Lightmap Resolutions) and I got a better shadow definition on it, problem with that is that the lightmap resolution is overkill for such a small asset in the scene.
If you’re still doing this with skylight only, it’s going to be a major challenge I think. The directional light activates a number of shadowing techniques that are not present in the skylight, and it allows shadows on the floor. Is the scene using ray tracing? Is exposure enabled (if so, what settings)?
I see the splotchy shadowing on the character, and aliasing / blurriness. If it’s only a static render, then increasing lightmap resolution wouldn’t be a problem, though with a ton of other objects / actors it could become a longer light bake. I’m seeing the same splotchy artifacts on basic walls / floors in the 3rd person shooter template with dynamic only lighting or static/stationary. Perhaps there’s a few cvars in the console that’d improve the shadowing and lighting.
I’m sorry I couldn’t reply faster but I’ll try to address your comments and questions:
The directional light activates a number of shadowing techniques that are not present in the skylight, and it allows shadows on the floor.
I tried to use a Directional light and it didn’t work pretty well, I know this and the Skylight goes hand in hand after watching more tutorials and I will add it and check if by moving stuff around I can get something going.
Is the scene using ray tracing? Is exposure enabled (if so, what settings)?
No, the Ray Tracing is not enabled, as for the Exposure I assume it is from the Post Process Volume, here are the values, again, trying to follow what Jerome’s say on the Masterclass video, so:
If it’s only a static render, then increasing lightmap resolution wouldn’t be a problem, though with a ton of other objects / actors it could become a longer light bake.
This is how it looks after cranking both Lightmap and Min Lightmap resolutions up to 1024 and a Directional Light in the scene, as you can see the properties from the material are barely visible (something I didn’t noticed before and it did happen), it looks more desaturated compared to the other shots that I got:
The shadow quality is great. How saturated is it supposed to be? One way to increase saturation is opening the texture(s) in the material(s) in the texture editor, and going to Saturation and Vibrance, and perhaps tuning those and also Contrast, Tint, and any other settings in there. Is the character’s skin intended to be darker, or a different purple hue? I see the brown parts of the feet are somewhat washed out. Skylight does provide shadows on the floor, but a directional light is another option for getting a shadow / shading. I notice a bit of aliasing on the shadow of the left ear, and a bit on the shadow edge of the thing dangling from its neck (the shadow cast on its body). I’ve seen this aliasing in new projects I had too, with temporal upsampling enabled and TAA enabled. I don’t understand how to get rid of it yet, and make it smooth.
I’m not sure what’s happening to get those results. It’s really a difficult guess without seeing more of the settings in the project. The character mesh and its materials could have a setting that is buggy or somehow interfering with the correct rendering. I acknowledge there is missing detail in the stone piece hanging from the character’s neck, and in a few other areas. However, the photo after skylight only test is rather high quality, if you ask me. Though I see how the roughness was reduced some in contrast to the other photos. As for suggestions, why not try separating the materials into pieces and using masks to create materials that differentiate between the various pieces of clothing and textures? It could result in a better light bake because, currently, I’m hypothesizing that baking light with static or stationary (meshes and lights) is compromising certain facets of the material / mesh design. This is something I’ve seen suggested quite often in the forums for character meshes or complex meshes with multiple materials, and it’s also in the docs regarding those kinds of actors.
Did you ever try and check textures in the texture editor for wrong settings / values, or inconsistencies with the lighting? This stuff gets rather detailed and technical, I know, so I’m merely trying to point in a more correct direction from how much I know and am capable of inferring from that.
As you can see something funny is going on because first this resembles almost to the one I sent in the previous reply and second if you notice, roughness in the model is gone, you see no roughness what so ever compared to this:
So, I don’t know what exactly is going on to be honest at this point. I’ve tweaked values, enabled and disabled options and the result when using static lights and a static mesh doesn’t get any better IMO.
I’ll keep researching about it and maybe I can pin point exactly what the issue is to prevent that from happening in the future, as always I’ll keep an eye on your reply and try things out.
Thanks for the help and have an awesome day!
PD: Little update - I disabled all lights, turned on “Force No Precomputed Lighting” under the Lightmass tab in World Settings to get rid of the lightmaps and baked to “clean” them of any light info; disabled the feature, re baked still with no lights and I got the same result of the first image, again I don’t know what’s going on.
Well I could send you the project for you to check it out closely and get the guessing out of the way so you can accurately pin point what’s going on and what can I do to fix the problem if you are willing to. Also, tried that (disabling the Mikkk Tangent Space option) and it didn’t work Xd.
I don’t know if it is possible or there is a problem with that to be honest but if it is possible and you’re willing to check it out, I can send you the project, just let me know.
Sure, I’ll check it out in the project. It’s 4.25.3, right? I use Dropbox, or a link posted to the download would probably work for any service as long as I don’t have to register. I’ve had it with creating new usernames and passwords.
I’ll have a look at it. I had to start working on a different computer due to returning a monitor for my new computer, which I’m thinking was causing a noise issue in Unreal. So, the computer I’m using is lower-spec, yet I think it’ll be alright for the project.
Which render is the best in terms of fixing the issue(s)? A, B, C, or D? or which ones?
Render A is probably the most desaturated of the 4 stationary bakes. But it has improved shadow quality.
Render B has Skylight Intensity Scale at 0.5, and the Reflection Probe at 0.5 too. It is somewhat too dark, I would think.
Render C looks pretty good in terms of overall character shading and lighting, but is a bit dark in spots (the one ear), and the necklace thing rendered a weird shadow falloff.
Render D is the best, I think. However, I see some loss of shadow detail for the necklace thing again. It’s interesting though because when zooming in, the shadow becomes much sharper at closer distance. It’s like a mini-cascade of quality increase every 50-100 units or so. I attached a few closeup screenshots of D for showing it.
The zip file contains all the screenshots. I’ll bake static lighting in the render scene in a bit and send another zip of those. It’s too much for all those spot lights aimed at the character, though brightness could be decreased. The lack of a directional light is another potential cause of problems, one of which is the shadow being so low-res in appearance. If the skylight had more to work from in the surrounding scene, it would probably work better, or if it was a different specified cubemap. A resolution of 256 is really not high for a small character in a larger scene, especially if the character is not the one being controlled by the player. Sorry to delay those other renders in the actual map for the character. I didn’t notice it, and mistakenly didn’t look.
Remove a spot light or reduce brightness of spot lights and skylight by a small amount per bake
Add a directional light, test a bake on defaults, then modify accordingly
Modify textures to compensate for the desaturation and less rough appearance
So, I opened the project and initially in an empty scene (rather than the map that was in the Map folder, lol), set the character in there and baked all stationary lighting (skylight, directional, and later changed the character mesh to stationary which is in pictures labeled D). I changed some settings for A, B, and C in the skylight and directional light, plus World Lightmass settings. Posting those settings. There’s something noticeable in changing the Source Angle in the directional light, I think. It has the capacity to sharpen shadow edges / falloff (also called penumbras). I baked on Preview, at mostly Epic settings (except for Effects, Foliage and View Distance), and High material quality, with no changes to Project Settings. The issue I’m seeing with that kind of scene (in contrast to the character render scene with spot lights) is the brightness level of the lighting. I also modified the directional’s Lightmass settings so Source Angle is 0.5 and Shadow Exponent is 1 for the first bake (renderA). One other change I made was to the character’s body textures by changing Mip Gen Settings to Character (for AORM and BaseColor) and CharacterNormalMap (for Normal), instead of World. I changed those back after all bakes and didn’t see a difference. I’m going to attach images in the next posting.
Yeah, grouping those on the Mip Gen Settings doesn’t make a difference because that option is to be used whenever you’re going to make a build for a certain platform. Grouping them like that will make things easier to lower the spec for that particular platform you’re making the build for but yeah, that has no impact on the rendering
Interesting results, I have a quick question tho, did you change something in the materials?. Checking the images and comparing them with the textures they are too rough (or less rough I should say) and I don’t see that neither in Substance Painter nor in the engine whenever I set it to the configuration I made even tho I know SP lighting is not as UE4. Values on roughness are higher on your shots, also on B, C and D, the color is way too dark, might be because of the settings you used but again, if you check the textures the values are not that dark, in fact SP has a filter that tells you when it is too dark or bright in order to preserve the PBR rules when textures are authored.
I would be grateful for that info because it interests me to know what you did.
Also, another thing worth mention, did you disable the exposure on the view mode options to set it not Game Setting but the EV one?, You can check out that in the view mode tab in the viewport just in case.
Ok, something really funny is going on (or maybe I’m still missing something here). I just opened a new project, made everything from the scratch and by “everything” I mean, import the model, set both master material and instances, did the changes on the textures and placed the model in the scene. The big differences here are that there’s only the things you will get when you open the project which are as follows (ignore the actual model):
And I changed the Sky Distance Threshold to 4000 and the Indirect Bounces to 6 in the Lightmass Settings. Now setting the mesh to Static, JUST the mesh I get this result: