Asset interaction is slow

   1765   14   2
User Avatar
Member
375 posts
Joined: July 2005
Offline
Hello

I was wondering if doing something wrong or is just the nature of working with Houdini from Unreal, but when I control the curve of my asset the interaction is slow, takes a while to catch up, I tried some of the available assets on the sidefx website and they are slow as well
I tried to do something simpler and still lag.

I tested the asset in Unity and is WAY faster.

Is it just me or is just the nature of the system? are there thing I can do to optimize this?


thank you
varomix FX TD | Founder
Tabttoo makes tab fun again :)
https://mixtrn.com/product/tabttoo/ [mixtrn.com]
MIX Training || www.mixtrn.com
User Avatar
Staff
158 posts
Joined: Sept. 2016
Offline
There's no fundamental reason that UE4 should be slower than Unity that I know of. However UE4 has many features that can be rebuilding after every incremental cook, which can definitely slow things down. For example the navigation system and distance field ambient occlusion. Which HDA are you seeing a big slowdown relative to Unity?

Edit: If you are using curve inputs the asset will be cooked as you drag the mouse, this can cause serious frame drops in the editor if there is a lot of geometry to be generated. We recently put in an option to mitigate this: 'Cook curves on mouse release', which is in the Project Settings -> Houdini Engine -> Cooking.
Edited by chrisgreb - Nov. 11, 2016 09:52:56
User Avatar
Member
375 posts
Joined: July 2005
Offline
chrisgreb
There's no fundamental reason that UE4 should be slower than Unity that I know of. However UE4 has many features that can be rebuilding after every incremental cook, which can definitely slow things down. For example the navigation system and distance field ambient occlusion. Which HDA are you seeing a big slowdown relative to Unity?

Edit: If you are using curve inputs the asset will be cooked as you drag the mouse, this can cause serious frame drops in the editor if there is a lot of geometry to be generated. We recently put in an option to mitigate this: 'Cook curves on mouse release', which is in the Project Settings -> Houdini Engine -> Cooking.


Hi,

thank a lot for the reply Chris

Yes I am using a curve and is terribly slow, it already feels like is cooking when I release the mouse anyway hehe, I'm not using the latest version, cause I don't have that option here
This is what I'm using


will try with the latest version but that seems like a weird solution to me because the lag still exist, we're just working around it.

I'll record a video testing in both engines so you can see the difference.

thank you
varomix FX TD | Founder
Tabttoo makes tab fun again :)
https://mixtrn.com/product/tabttoo/ [mixtrn.com]
MIX Training || www.mixtrn.com
User Avatar
Member
375 posts
Joined: July 2005
Offline
Here a video showing the different performance between Unreal and Unity

http://box.varomix.net/index.php/s/xNgYEijcOsu5WlI [box.varomix.net]

the speed in unity just make's it more usable in UE4 is just, clumpsy, not really inviting.

Basically, I don't use Unity I want to use assets in UE4 but, that lag just makes it hard.

Thanks
Edited by varomix - Nov. 11, 2016 13:23:40
varomix FX TD | Founder
Tabttoo makes tab fun again :)
https://mixtrn.com/product/tabttoo/ [mixtrn.com]
MIX Training || www.mixtrn.com
User Avatar
Member
171 posts
Joined: Aug. 2011
Offline
<OT>
Hey! i literally just re-watched your old videos on how to make a fence asset like that!
It's such a handy little trick to get the point normals pointing along the curve!
Love your videos, dude!

…ok, carry on.
</OT>
User Avatar
Member
375 posts
Joined: July 2005
Offline
twelveplusplus
<OT>
Hey! i literally just re-watched your old videos on how to make a fence asset like that!
It's such a handy little trick to get the point normals pointing along the curve!
Love your videos, dude!

…ok, carry on.
</OT>
hehe cool, glad that is still helpful, I don't use that method of aligning normals anymore
I use the polyframe SOP now, way easier and no error on the first or last points.
Edited by varomix - Nov. 11, 2016 18:35:47
varomix FX TD | Founder
Tabttoo makes tab fun again :)
https://mixtrn.com/product/tabttoo/ [mixtrn.com]
MIX Training || www.mixtrn.com
User Avatar
Member
173 posts
Joined: April 2014
Offline
UE4 static mesh building is quite slow. The code does a lot of things, particularly in regards to mesh optimization. It is a pretty major bottleneck. Like Chris mentioned, you can probably turn off some things like AO or distance fields (in project settings), that might help a bit.

I haven't worked with Unity, so I can't say how it performs there. We have a simple own UE4 mesh implementation (which we use only for prototyping) and it's pretty fast.
User Avatar
Member
375 posts
Joined: July 2005
Offline
ttvdsfx
UE4 static mesh building is quite slow. The code does a lot of things, particularly in regards to mesh optimization. It is a pretty major bottleneck. Like Chris mentioned, you can probably turn off some things like AO or distance fields (in project settings), that might help a bit.

I haven't worked with Unity, so I can't say how it performs there. We have a simple own UE4 mesh implementation (which we use only for prototyping) and it's pretty fast.

Thank you for you replay, I manage to make it a bit faster if I bake the lighting and change it to static, is a bit better now, will keep investigating for sure, my setup is really simple, not sure what could be cause of the lag but I do think is on the UE4 side.

Would be great if you could share that simple mesh implementation, if it's proprietary maybe say a bit more so I can try to make something similar.

Thanks
varomix FX TD | Founder
Tabttoo makes tab fun again :)
https://mixtrn.com/product/tabttoo/ [mixtrn.com]
MIX Training || www.mixtrn.com
User Avatar
Member
173 posts
Joined: April 2014
Offline
I think it's based on CustomMeshComponent and we actually use it in Blueprint. Unfortunately I won't be able to share it.

But the idea is, find where FRawMesh is being created in Houdini Engine plugin (in Utils file, before it's being dispatched to make a static mesh). You should be able to construct any topology from it. I believe CustomMeshComponent is a just a simple collection of tri faces.
User Avatar
Member
375 posts
Joined: July 2005
Offline
Cool I understand no worries, I'll see if I can do something

thanks
varomix FX TD | Founder
Tabttoo makes tab fun again :)
https://mixtrn.com/product/tabttoo/ [mixtrn.com]
MIX Training || www.mixtrn.com
User Avatar
Staff
158 posts
Joined: Sept. 2016
Offline
A workaround that speeds up static mesh cooking is to disable the triangle-order-cache-optimization step.

r.TriangleOrderOptimization=2

This variable must be set before the MeshUtilities module loads. Humorously, It's actually commented out in the last line of Engine\Config\ConsoleVariables.ini

We'll continue to optimize the cooking performance, but hopefully this helps a bit.

edit: Be sure to un-set this variable before doing a final cook because you want the mesh to be optimized.
Edited by chrisgreb - Dec. 1, 2016 15:53:17
User Avatar
Member
375 posts
Joined: July 2005
Offline
chrisgreb
A workaround that speeds up static mesh cooking is to disable the triangle-order-cache-optimization step.

r.TriangleOrderOptimization=2

This variable must be set before the MeshUtilities module loads. Humorously, It's actually commented out in the last line of Engine\Config\ConsoleVariables.ini

We'll continue to optimize the cooking performance, but hopefully this helps a bit.

edit: Be sure to un-set this variable before doing a final cook because you want the mesh to be optimized.

Haven't had a chance to test but just did and don't see a real speed up
my best option right now is doing a simple prototyping geometry for interaction and just toggle to full when done.

you can see what I did in this video
http://www.gridmarkets.com/varomix.html [gridmarkets.com]
varomix FX TD | Founder
Tabttoo makes tab fun again :)
https://mixtrn.com/product/tabttoo/ [mixtrn.com]
MIX Training || www.mixtrn.com
User Avatar
Member
4 posts
Joined: Nov. 2016
Offline
Can confirm that the interaction is still as seen in the video examples posted above, even for simple proxy geometry (though that is a bit faster). Would be amazing to be able to have the same fluid interaction that Unity has, but in UE4, though I realize this probably is down to how UE4 generates the geometry, and not how Houdini Engine is working.
Edited by eoinobroin - July 16, 2018 09:11:45
User Avatar
Staff
213 posts
Joined: Sept. 2016
Offline
Hi,

The main underlying issue for the slow interactions is caused by Unreal creating meshes… The Houdini Engine part (sending/receiving and converting the data) is pretty fast, but the Static Mesh creation is what slows everything down.

This is something we've mentioned to Epic, and they've told us they should have a new type of mesh component soon that should address these issues.

So far, when working with curves/splines, there's a couple way to make thing easier to edit in the editor:

- using simple proxy geometries when creating the curves, then switching to a high detail geo via a toggle parameter

- Activating the cook curve on mouse release project settings is a good one too, as this will avoid cooking/slowdown when moving the CVs around.

- and finally, pause cooking while editing (Ctr + Alt + P) then resuming to get the geo.

It's also possible to use an unreal spline, so you can edit it before plugging it into the asset's input and triggering the cook.

But those still remains workarounds until we can fix this “properly” once that new mesh component is in Unreal.
User Avatar
Member
375 posts
Joined: July 2005
Offline
yeah, been dealing with workarounds, also the unity UI looks really cool, UE4 needs more love

any ETA from Epic on that new mesh component?

thank you
varomix FX TD | Founder
Tabttoo makes tab fun again :)
https://mixtrn.com/product/tabttoo/ [mixtrn.com]
MIX Training || www.mixtrn.com
  • Quick Links