x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

HLOD generating corrupted meshes with 0 triangles. What are some reasons this may happen?

HLOD generating corrupted meshes with 0 triangles. What are some reasons this may happen?

Product Version: UE 4.17
Tags:
more ▼

asked Oct 26 '17 at 05:17 PM in Using UE4

avatar image

kurylo3d
464 46 80 104

avatar image kurylo3d Oct 26 '17 at 08:24 PM

According to the log the error message for these are ... "LogStaticMesh: Built static mesh [0.02s] /Game/Maps/SurvivalHorrorCampaign_Act1/HLOD/act_mainHall_HLOD.LOD_sm_box11 LogActorComponent: RegisterComponentWithWorld: (/Game/Maps/SurvivalHorrorCampaign_Act1/act_mainHall.act_mainHall:PersistentLevel.HLODSelectionActor_4.VisualizeComponent0) Already registered. Aborting. LogHierarchicalLODUtilities: Building Proxy Mesh for Cluster LODActor_4 LogStaticMesh: Building static mesh LOD_floor51... LogMeshUtilities: Error: Raw mesh is corrupt for LOD0."

avatar image TJ V ♦♦ STAFF Oct 27 '17 at 07:01 PM

Hey kurlyo3d,

I attempted to reproduce this but I'm not seeing these same errors in 4.17.2. What are the steps you are using to generate the HLOD? Or a small project with the errors could be helpful as well.

avatar image kurylo3d Oct 27 '17 at 07:03 PM

Thanks for the response. I will attempt to get you a small project with the room that i am currently using to test with. I will have to try to seperate it from the rest of the project.. Either tonight or this weekend I will upload it some where. Do you have a method I can contact you privately?

avatar image TJ V ♦♦ STAFF Oct 27 '17 at 07:09 PM

The best way would be to send me a PM over the Forums. Please just make sure to post a comment here letting me know once you have; that way I will also get an email notification.

avatar image kurylo3d Oct 27 '17 at 11:56 PM

I just sent you the link. Let me know if you got the message.. Hoping i found the right forum user...

avatar image TJ V ♦♦ STAFF Oct 30 '17 at 03:52 PM

Thank you for providing the project. I see what errors you mean and the corrupted assets.After looking into it and digging through the logs, I'm unsure of what could be causing it.

Can you provide steps on how to create a new corrupted asset? Preferably in a new project with template assets; however, a repro in the project you provided would be fine as well.

avatar image kurylo3d Oct 30 '17 at 04:04 PM

If you delete the clusters and regenerate them with the same settings... then 1 by 1 generate the actual hlods.. u will see it happening. (Dont generate the last group big hlod or else it will crash the editor with simplygon.. the crash im guessing may be happening because the first set of hlods are being generated with corrupted meshes...)

But yea... generating them yourself should give you the 0 poly ones... I dont see anything wrong with the meshes.. heck most of them are from an asset pack on unreal market...

avatar image kurylo3d Oct 30 '17 at 04:55 PM

even when i copy and paste all objects in the main hall level into a new level and add that as a sublevel... that new levels hlods generate as 0 polys as well..

avatar image kurylo3d Oct 30 '17 at 07:16 PM

Fresh levels seem to work fine for the assets that typically cause problems in that main hall level... likewise if i move those assets to a new level via level browser or even copy them to a new level... same problem ... 0 poly .. corrupt meshes etc etc...

One of the assets was the broken plate model causing a problem, but if i throw that model in a fresh scene drag and drop.. it generates fine... So it has to be level specific.. But why?

I did use a lot of group nodes and scaling... and parenting + scaling +unparenting...... in that level... not quite sure what else could be causing the problems...

avatar image kurylo3d Oct 30 '17 at 07:24 PM

Heres something interesting... this is the error log.. "LogActorComponent: RegisterComponentWithWorld: (/Game/Maps/SurvivalHorrorCampaign_Act1/tester222.tester222:PersistentLevel.HLODSelectionActor_2.VisualizeComponent0) Already registered. Aborting. LogHierarchicalLODUtilities: Building Proxy Mesh for Cluster LODActor1 LogStaticMesh: Building static mesh LOD_SM_Rug_Small2_8... LogMeshUtilities: Error: Raw mesh is corrupt for LOD0."

At the end there it says LOD_SM_Rug_Small2_8, but... the asset its referring to is SM_Rug_Small2 ... There is no SM_Rug_Small2_8... why would the name be wrong?

Might have nothing to do with anything, but im just grasping at straws for an explanation.. Renaming the model in the scene doesnt change the outcome... still error...

And again.. its not like its just 1 model in the scene causing the error.. its like hundreds of them... Not all, but a good 25 % of them id say if i had to guess

avatar image kurylo3d Oct 31 '17 at 11:43 AM

any idea what this means in log? Its preventing me from saving.. have no idea if its related but I copy and pasted the level into a new level.... and added that to the persistant level while removing the old one completely to test with....basically ive been removing objects from the cluster 1 by 1 that the log tells me are problem objects until it allows me to generate the hlod correctly with polys.... this last one sm_porcelain_broken4 was one of the models screwing it up, but after i hit save all after generating the HLOD.. it wont let me save.. gives me this error in the log...

"EditorErrors: New page: Save Output EditorErrors: Warning: Can't save ../../../../../../my_work/Games/migrate2/MyProject2/Content/Maps/SurvivalHorrorCampaign_Act1/test_copyMap.umap: Graph is linked to external private object StaticMesh /Game/Maps/SurvivalHorrorCampaign_Act1/HLOD/test_copyMap_HLOD.LOD_sm_porcelain_broken4 (StaticMesh) LogFileHelpers: Saving map 'test_copyMap' took 14.125 EditorErrors: New page: Save Output"

and a dialogue message..

"Can't save ../../../../../../my_work/Games/migrate2/MyProject2/Content/Maps/SurvivalHorrorCampaign_Act1/test_copyMap.umap: Graph is linked to private object(s) in an external package. External Object(s): LOD_sm_porcelain_broken4

Try to find the chain of references to that object (may take some time)?"

avatar image TJ V ♦♦ STAFF Nov 01 '17 at 06:15 PM
avatar image kurylo3d Nov 01 '17 at 06:33 PM

That problem was caused when i tried to duplicate objects and bring them to another level for testing when they orginally belonged to an HLOD cluster....

Seems like that problem has nothing to do with the 0 triangle generation problem...

avatar image kurylo3d Nov 01 '17 at 08:16 PM

After removing objects 1 by 1 when they are called out as an error it eventually builds the HLOD with polys... problem is... if i add those objects back to the cluster.. those objects are no longer problem objects, but previously fine objects become error causing objects.

Which narrows it down further to know there is nothing wrong with the individual models or meshes since at times different ones can make successes... its something to do with them together... in a cluster.

Do you have one of the creators of the HLOD system to trouble shoot with? Because it seems like this shoudl have never been released publically.. I mean i have been wrestling with different bugs with HLOD for YEARS... and now this one just does not seem to have any sort of work around at all... What do i do?

Also for testing purposes i selected all the meshes in the cluster and used the merge actors tool which for some reason also creates a model with 0 triangles... So the fault lies with some method the merge actor tool uses to actually create a new mesh.

avatar image kurylo3d Nov 01 '17 at 08:26 PM

Ok I made merge actors work by forcing it to use LOD 0 instead of leaving it by default to use any LOD... Seems like all these errors come from it lookign for LOD 1 or some thing... and im not sure all of these models have LOD1....

Besides that... HLOD doesnt have the option to force a specific LOD as merge actors does... so what do u think?

avatar image kurylo3d Nov 01 '17 at 08:49 PM

if i try to force ti to generate with LOD 1... it gives me the error again... basically forcing actor merge to lod 0 is the only way to generate, but HLOD system does not have that option available... plus... why??? Why are these problems happening to LOD 1?

avatar image kurylo3d Nov 01 '17 at 09:07 PM

I am just so confused.... now another one of the clusters that typically generate with only 0 polys and an error... actually works with merge actor tool with LOD set to auto... i just cant really find a common denominator other then some need merge actor to be to set to lod 0 only...

Again... merging via HLOD does not work... 0 polys..

avatar image colin_tokyo Feb 16 '18 at 09:18 PM

This was driving me up the wall for over a week and I finally solved what was causing the 0-triangle problem on my side.

CHECK YOUR MATERIALS. If you are using a material that uses triplanar texturing, HLOD generation will give up immediately upon trying to generate the merged material. If you can get one object to consistently break it, swap the material out and see if it fixes it.

avatar image kurylo3d Feb 16 '18 at 09:50 PM

dont think thats my issue. Triplanaring although i have some that use it.. removing those does not fix it.

avatar image colin_tokyo Feb 16 '18 at 09:52 PM

I've found certain meshes also break the system and return 0-polygon results. If an object doesn't have lightmap UV's especially, or if the UVs are overlapping really badly.

avatar image kurylo3d Feb 16 '18 at 10:29 PM

Thats not the problem either.. ive checked every mesh and originaly i had found 1 that had no lightmap uv, but i removed it. Problem remains. The rest of the meshes and materials are fine. No idea why.. it seems like it just randomly picks out meshes in the output log to blame the error on, but when hte mesh works in 1 place and doesnt in another .. something else is going on...

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

3 answers: sort voted first

Hey Kurylo,

Sorry for the delay. I created JIRA UE-52466 so our developers can look into this further. It may be a bit before this can be investigated due to other commitments but we will post back here when we have more info.

Thanks, -TJ

more ▼

answered Nov 16 '17 at 05:06 PM

avatar image

TJ V ♦♦ STAFF
41.1k 1009 183 493

avatar image kurylo3d Nov 30 '17 at 09:44 PM

When i type in that issue id into unreals issue tracker it cannot find it. Is there a way i can see the status of this issue?

avatar image TJ V ♦♦ STAFF Dec 01 '17 at 09:53 PM

Hi Kurylo,

Here is the link to the public JIRA version (UE-52466); I'm sorry that I forgot to expose that and attach it to my original answer.

Our developers looked into this and made the decision not to allocate resources to fixing the HLOD issues that you are experiencing because we have some changes in the pipeline that will probably fix many, if not all of the issues that you are seeing. However we don't have any info or a timeline that we can share at this time.

-TJ

avatar image kurylo3d Jan 22 '18 at 12:24 PM

is it the new hlod simplify mesh in 4.19 ? Because that doesnt work either... same problem.

avatar image Matt Cohen Nov 30 '17 at 10:31 PM

I also am experiencing this issue. It's really baffling.

avatar image ZsqAmbient Jan 09 '18 at 08:55 AM

[434]LogMeshUtilities: Error: Raw mesh is corrupt for LOD0.

[434]LogStaticMesh: Error: Failed to build static mesh. See previous line(s) for details.

[434]LogStaticMesh: Building static mesh LOD_LODActor_734...

[434]LogMeshUtilities: Error: Raw mesh is corrupt for LOD0.

[434]LogStaticMesh: Error: Failed to build static mesh. See previous line(s) for details.

avatar image kurylo3d Jan 09 '18 at 04:20 PM

They dont plan on fixing this from what i heard... may be a possible replacement for HLODs coming in the future but no word on when... At least thats the sort of response I had received...

avatar image ZsqAmbient Jan 17 '18 at 04:58 AM

has any replacement for HLODs now?

avatar image kurylo3d Jan 22 '18 at 12:05 PM

The new HLOD system did not fix this issue. Neither with normal merge meshes or with the new "simplify mesh".... still generates 0 poly hlod.

avatar image TJ V ♦♦ STAFF Jan 24 '18 at 03:41 PM

What version are you testing this in?

avatar image kurylo3d Jan 24 '18 at 04:04 PM

4.18.2 and the new 14.9 beta totally forgot i also had this problem in 4.17

avatar image TJ V ♦♦ STAFF Jan 24 '18 at 06:41 PM

There have been some improvements to the HLOD system in 4.19 but the large changes that will likely fix the core issues that you are experiencing will be coming in later builds. We don't have an exact target fix at this time.

avatar image kurylo3d Jan 24 '18 at 08:57 PM

is there even some sort of preferred work around?

avatar image TJ V ♦♦ STAFF Jan 24 '18 at 09:26 PM

Not that I have been able to find in the project you provided. Starting from scratch in a new project, I have been able to avoid any issues altogether. I suspect the reason the issue is so severe in your project is that it's been converted through different iterations of the engine.

avatar image kurylo3d Jan 24 '18 at 10:14 PM

did you need me to send you the link again to the project in PM? Also to reitterate this problem is with actor merging tool as well..

A previous private message i sent u:

"Hey since my problem with the HLOD has to do with actor merging as well.. (0 polys on generating the merged mesh..).... I was wondering if i could request a feature in the mean time....

Seems like the actor merge works and gives me the correct merged meshes error free if i put the settings to force LOD 0... rather then auto LOD..

HLOD currently does not have the setting to decide on what LOD to use... Seems like my only work around is to generate hlods with the LOD 0 setting ( which although seems lame is the only thing i can make work.)

Dont know if you have been working on my scene at all, but i kinda need some auto feature to generate all these meshes and apply them to the correct HLOD so i dont have to do it manually with the actor merge tool...."

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Just wanted to post my experience with this and hopefully it helps someone else.

We spent a number of days trying to track this down. We'd made a number of houses out of modular parts and then wanted to test HLOD with it before going too far. What we found was that some of the parts we had used were using LOD0 for HLOD0 and some were using LOD1 (or even LOD2) for HLOD0. This led to the raw mesh is corrupt error because the number of UVs in each channel didn't always match the number of WedgeIndices. Once we adjusted the LOD screen size of LOD1 to ensure it was above our HLOD0 screen transition size the message went away.

TLDR; Ensure that the models that are in a cluster are using the same LOD level for generation. If the LOD level differs you'll receive a corrupt mesh error message.

more ▼

answered Apr 03 '18 at 09:57 PM

avatar image

HailstoneRyan
709 39 26 53

avatar image kurylo3d Apr 03 '18 at 10:59 PM

i really dont understand... are you saying i have to make sure lod 1 turns into lod 1 far away? Thats very stupid if its the case... and im hoping one of the developers is reading this so they can make a change already so we dont have to wait for 4.20 or 4.21 for a new hlod system.

avatar image HailstoneRyan Apr 03 '18 at 11:25 PM

HLOD0 should be (if I'm understanding HLOD correctly) LOD1 or greater to generate HLOD otherwise it defeats the purpose of using HLOD. If the LOD's on your models aren't setup correctly it will end up attempting to use mismatch levels of LOD which will result in an incorrect number of UV's.

If you're using the default values in your HLOD setup provided by Epic then LOD1 on all your models included in a cluster should be at 0.5 screen size in order for HLOD0 to use LOD1 to generate its merged mesh. If you want to use LOD0 to generate the merged mesh then LOD1 needs to be less than 0.315 (the default value for HLOD0) on all of your meshes in a given cluster in order to force it to use LOD0.

avatar image kurylo3d Apr 04 '18 at 04:04 AM

The purpose of HLOD is to limit draw calls so i dont understand why an specific lod would matter (purpose wise)...

From my experiecne in one of my previous posts the current actor merging tool has the same problems as HLOD. In that i can force it to generate an actor merge with LOD 0 and that works fine, but if its on auto LOD it will give the error and give you a 0 poly model. Also if i try to force it to generate actor merge with only LOD 1 it still gives me the error.. of a 0 poly model.

Also what happens if you aggressively LOD it? Maybe its super high and has 5 LODs that change very gradually very soon.. What if some models only have LOD 0 with no LOD 1?

It sounds to me like you hit a fluke in order to make it work for your personal situation. Otherwise maybe im not understanding what your saying. Are you saying you cant let it merge if objects have different lod levels?

avatar image HailstoneRyan Apr 04 '18 at 04:23 AM

If it lacks LOD1 you add it and provide the screen size you want it to swap to that LOD.

It could very well be specific, but trying this may be better than waiting. Clearly Epic has no problem using HLOD as Fortnite uses the system.

If the UV's in a given UV channel (max of 8) don't match the number of Indices in a given model (or no UVs in that channel) the merged mesh will be marked as corrupt. It fills those UV channels using the LODIndex that was either provided (Merge Actor Tool) or selected based on screen size for each mesh being merged.

Quoting an example log that I've added to the merge code to help me debug the corruption error message.

 LogTemp: Error: TexCoordIndex = 1 1 (139428, 139428)
 LogTemp: Error: TexCoordIndex = 2 0 (139032, 139428)
 LogTemp: Error: TexCoordIndex = 3 1 (0, 139428)
 LogTemp: Error: TexCoordIndex = 4 1 (0, 139428)
 LogTemp: Error: TexCoordIndex = 5 1 (0, 139428)
 LogTemp: Error: TexCoordIndex = 6 1 (0, 139428)
 LogTemp: Error: TexCoordIndex = 7 1 (0, 139428)


TexCoordIndex is the UV Channel The int following that is whether it passed the test or not, followed by the actual values. (NumUVs, NumWedges)

I've got more dumping into the log that I can't paste here but here's an example of data I dump about each mesh that lets me know which one is creating a potential issue.

 LogTemp: Warning: Merging SM_WoodDeck At offset of 74786 with index count of 48 and vertex count of 32 using ScreenSize = 0.236250 LODIndex = 0
 LogTemp: Warning: Merging SM_Stairs04 At offset of 74818 with index count of 99 and vertex count of 41 using ScreenSize = 0.236250 LODIndex = 2
 LogTemp: Warning: Merging SM_Roof_Quart_Corner_01 At offset of 74859 with index count of 1008 and vertex count of 600 using ScreenSize = 0.236250 LODIndex = 0
avatar image kurylo3d Apr 04 '18 at 04:42 AM

Maybe but people at epic already said they are replacing it.. so clearly they are not happy with it.

avatar image kurylo3d Apr 04 '18 at 04:45 AM

Also i honestly dont understand. I mean every lod has the same uv channels... so how is this an issue?

avatar image colin_tokyo Jul 09 '18 at 11:17 PM

Thanks Ryan, never would have known this as the HLOD docs have been next to nonexistent. You're a lifesaver.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

We have figured out where the problem is and how to solve it. As it mentioned before the problem is in map channels. If you have objects in one cluster that has different map channel count - the cluster won't build. The total allowed map channel count depends of a first object map channel count. For example - a) If your first object in a cluster has 3 map channels and other objects has 2 or 3 map channels - the cluster will build. b) if your firsts object in a cluster has 2 map channels and other objects has 3 or more map channels - the cluster build will fail. We are hoping that it helps to someone and we will forward this information to Epic.

p.s. of cause it happens only if you try to build HLOD with lowest (or any not 0 LOD) objects LOD level

more ▼

answered Jul 13 '18 at 09:02 AM

avatar image

xxxAriOrHxxx
21 1 3

avatar image kurylo3d Jul 13 '18 at 02:13 PM

Awesome! I cant wait to try this out.

avatar image xxxAriOrHxxx Jul 13 '18 at 03:44 PM

Please let me know if it helps.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question