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"

Convert to Static Mesh Performance

Cheers fellow developers!

I've created a modular set of assets, which uses single material. I can use them, to recreate more complex structures. However using grouping or recreating more complex combinations is not that efficient, to repeat certain asset combinations. Here comes a very useful feature of Unreal Engine is "Convert to Static Mesh".

I can build some kind of structure with my modular assets and then save it as another static mesh (similar to prefabs). Also this is very usefull for auto LODs. However I have a question about performance of this kind of created in-editor static meshes. When you look at them, there's as many slots for materials (elements), as objects used to create this static mesh.

My question - is it better to create complex structures in 3D editor and import them into project, or converting group of static meshes into complex static mesh doesn't affect performance (draw calls, memory)?alt text

Product Version: UE 4.15
Tags:
more ▼

asked May 01 '17 at 11:46 PM in Using UE4

avatar image

Seraph Fawkes
77 3 4 6

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

1 answer: sort voted first

Is better use modular and procedural content becouse you can build tons and tons of content realy fast so at the end is better use modular that build all in 3D software. And after in gameplay you can script evrething you want to do with different part of the modular structure to make it customazible in game. Yeah the performance is changing but you make more content in less time. Is like the coise to use C++ our Blueprints. If you know both you usualy use blueprint beceouse they are faster and you can easy found and correct bugs and implemente new feature. However making all in 3D software and all in C++ is better for performance but you need 10x more people to achive the same end result in terms of content.

Aniway all biggest open world games was made by modular and procedural content.

About the conversion is usefull if you dont need to modify the model durning the gameplay our changing basic strucutre. So after you build a template example a empty house is better save all in 1 static mesh but if you need to access to the doors to make them oppen you need that door not be in the static mesh. So all you need be static is better to convert in single static mesh, all you need to be Dynamic you need to place it as different objects. And yes in terms of performance is a good coise to make this operation.

more ▼

answered May 02 '17 at 04:48 AM

avatar image

MK Studio
636 16 7 31

avatar image Seraph Fawkes May 02 '17 at 09:27 AM

I'm sorry, but you've retreaded everything I already know. My question was about actual performance difference between couple meshes converted to static mesh within editor and same meshes exported from 3D editor as same combination.

avatar image MK Studio May 02 '17 at 09:34 AM

If is the same quantity of elements you use in both there is no difference in performance diference. If after combine in 3D software you optimize it it can be better but combining meshes in 3d software and made it in ue4 changing nothing there is the some quantity of vertex, tris, materials etc etc. The difference realy is was in that in 3d software you can optimize a big scene in ue4 direcly you cant. But you still export the final mesh you combined in ue4 by using export fbx file of this asset and optimize it in your 3d software then bring it back to ue4 it can help if you want to do it.

avatar image Seraph Fawkes May 02 '17 at 10:01 AM

Now that made me think :3 I've checked it out, by exporting Converted to static mesh asset as .fbx and importing it into 3D editor. Indeed, there's literally no difference between combined in UE and combined in 3D editor meshes. My confusion came from Converted to static mesh detail panel, where there were as many material slots, as many meshes were used. But, apparently, those slots can be simply deleted. alt text

avatar image TankbusterGames May 02 '17 at 10:54 AM

I think, if you convert 2 objects to a new static mesh, unreal will keep the materials. Imagine you got a box and a glass door and want to combine them. of course u need the glass material, and the wooden material. In your combined mesh. However, if all of your assets uses the same material, then the "Merge Actors" or BSP "create static mesh" will only assign 1 material on the whole mesh, even if it's a material instance.

So i created a some BSP-Cubes, set material, converted them to SM, only 1 Material slot used, I Merged 3 static meshes with the same material, only 1 slot used. So how exactly do you merge the meshes? do you export as fbx or something?

avatar image Seraph Fawkes May 02 '17 at 11:11 AM

You're talking about BSP merging, and I'm talking about imported static meshes with their own materials.

avatar image TankbusterGames May 02 '17 at 12:09 PM

Sry, i didn't get you clear: This is the solution i found after some testing:

You can Merge an Mesh with itself, and it will combine all same-material slots.

  1. create static mesh with 2+ material slots with same materials

  2. place it in the scene

  3. right click -> merge actors

  4. merge with itself (just click merge)

  5. get a new static mesh with merged material slots.

So this should solve your Problem. It's a little tricky, if you have to do it for multiple meshes. EDIT: since each material uses a draw call, this should be faster and is more elegant :)

(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