Create a new project (c++ project in my case, but not sure if that makes a difference).
Create an empty map and add a landscape.
Use the foliage tool to paint on at least 1.5k instances of a single mesh. It shouldn’t matter which mesh you use. I’m just using the bush from the starter content.
Use the HRSST to take a screenshot.
You should see in the resulting shot that the foliage is missing.
This doesn’t affect game play at all, so far as I can tell. It just affects the HRSS. If you drop the instance count below 1.5k then the foliage will show up again in the HRSS.
I’m running Windows 10 with an Intel Core i7 and a GeForce GTX 1060. My version of Unreal is 4.17.1. One of my colleagues was able to replicate the issue as well, so I don’t think this is specific to my machine.
I can add to this, that it’s not specific to the foliage tool. I get the exact same behavior with large HISMCs so the problem is further down the chain.
I programmatically added about 10k instances of a grass mesh into an HISMC from a procedural generation routine I have and got the exact same behavior. The other HISMCs in the scene with a few hundred instances each appear to still function fine.
I too am having the same issue. I can understand why it happens. There is a slight delay drawing that much foliage even when I play the game in PIE. I’m guessing, although I could be wrong, that when a HRSS is taken, an instance of the level is created and a single frame rendered. My foliage wouldn’t have been drawn by then. Interestingly, it is not the total foliage count that seems to cause this issue, it seems to happen when an individual foliage type reaches this threshold. HRSS work fine for me when I have 40+ foliage types visible and under 1.5k each.
I appreciate this will not be high on the priorities list but with Epic pushing into the real-time VFX area, a delay in displaying the foliage draw call for high fidelity scenes featuring foliage will have to be looked into at some point. For now, I have been able to get around it by creating multiple foliage types of an instanced mesh.
BTW, this is not a complaint, I am loving how much detail I can add to my large open worlds and small micro scenes alike. Thanks Epic
Not sure if there are a lot of us out there, but I depend on high res shot to deliver images to clients in the archviz world. this bug kills my deliverable. any workarounds? or estimated fix date so i can at least plan accordingly?
[EDIT] Long story short, was just introduced to Ansel from NVidia. Allows for super high res shots with all foliage and HISMC’s.
I decided to take a look into this myself since it didn’t look like Epic would be able to get to it until 4.19. I will preface this with I’ve never really gone digging in the rendering side of the engine beyond the RHI stuff necessary to support my RMC plugin, so I may be slightly wrong on some of this, but I’m pretty certain on the problem.
For those of you who badly need this fixed, you can build the engine from source and apply this tiny fix to the engine. Let me know if you see any unexpected side effects from this.
The git diff isn’t easy to read for those not familiar with looking at them, basically the if(!View.bIgnoreExistingQueries) needs to be removed.
The problem boils down to subprimitive occlusion culling, which caused it to stop rendering in basepass, even though it rendered in depth prepass and shadow depths. The specific number it broke on is actually 1536 as this is where the HISMC splits its internal tree and kicks in subprimitive occlusion culling. The problem only shows up in one very specific case which is when View.bIgnoreExistingQueries == true. This appears to only be able to be possible during a HighResShot, or something like camera cuts, rapid camera movement, or time resets.
The change that appears to have broken this was: 70d3bd4b726884ccd6fe348fa45f11252aa99e04
More specifically it appears to have been caused by the fix for UE-42952 judging by the comments ( Unreal Engine Issues and Bug Tracker (UE-42952) )
I downloaded the original bug reproduction project on bug UE-42952’s AH post and tested it myself in UE4.16, 4.17 and the above commit on master and found that I could reproduce it in 4.16 (prior to the fix applied for UE-42952) but could not reproduce it on the above commit on master 4.19 + this fix so I do not believe this regressed that bugfix.
This fix was last tested successfully on: 9c9f1352cb0ec696e75bac83808f7764c24fa662
I can confirm that it also happens when you render a sequence with camera cuts; the foliage just disappears plus some strong aliasing appear. Deleting the Camera Cut track in Sequencer seems to fix that problem.
Nope, there was a bad merge that produce a few errors, like this one, but the bug was fixed as part of not being able to select instance when you have more than 1536 due to occlusion culling bug that is triggered when you have enough instance (i.e 1536 in this case). Which happen to be the same problem with the screenshot thing.
I was unable to reproduce the issue you are experiencing. Are you able to reproduce your issue in a clean project? If so, could you provide a detailed list of steps so that I can reproduce this issue on our end?