Remeshing interior design assets in 3ds Max
Disclaimer: The code in this post is written using version 9.1.36100 of Simplygon and 3ds Max 2021. If you encounter this post at a later stage, some of the API calls might have changed. However, the core concepts should still remain valid.
In this post we will create a proxy for an interior design asset using the 3ds Max Simplygon plugin. We will both use the basic remeshing with material baking template but also the advanded remeshing template to unlock some advanced optimization settings.
This example will use the Simplygon integration in 3ds Max, but the same concepts can be applied to all other integrations of the Simplygon API.
Problem to solve
We want to optimize an object consisting of several meshes and materials to have fewer polygons and draw calls.
Our asset also contains lot of internal geometry which is not visible from outside.
The solution is to process the object using the UI for Simplygon plugin in 3ds Max and create a proxy of it using the remeshing pipeline.
Start by adding a basic remeshing pipeline using Template → Basic → Remeshing with material baking. The only changes we are going to make from the default settings using choosing the correct material casters. Simplygon will automatically add the correct material casters for the materials in the currently selected object. In our case we do not need all of them, so we will delete every caster except base_color, roughness and bump.
After setting the correct material casters we will press the big yellow Simplygon logo to start processing. This is the resulting object.
We can see that the default values give us strange results; we got a strange pattern on the bedsheets and it did not remove all internal geometry.
Increasing OnScreenSize and Texture Size
In the basic remeshing template we only have the option of increasing texture width and height under MappingImageSettings → OutputMaterialSettings and OnScreenSize under RemeshingSettings. We will try to double both of them.
Increasing these does result in a more nice looking model, at the cost of increased polycount and texture size.
Another solution is to use the advanced remeshing template. Remove the old pipeline and add a new one, but this time use Template → Advanded → Remeshing.
The cause for our strange texture pattern is that the original texture has a very fine pattern on it.
To make the texture more nice and smooth looking without increasing the texture size we are going to increase multi-sampling level. Under MappingImageSettings → OutputMaterialSettings we will change MultisamplingLevel from 2 to 4. This will increase the filtering of the texture and thus remove the strange pattern.
To remove the internal geometry we are going to increase the HoleFilling found under RemeshingSettings. We will change this from Low to Medium.
The resulting object looks good and has no strange pattern on the bedsheets.
We can also see that increasing hole filling removed all internal geometry. This is good because we get lower polycount but also more texture space for visible geometry.
We tried 3 different remeshing settings with the same original asset. Out of them the most performant was to use an advanced remeshing template with custom settings.
|300 Onscreen size basic remeshing||1|
|600 Onscreen size basic remeshing||1|
|300 Onscreen size advanced remeshing||1|
|Original asset||5x 2048x2048|
|300 Onscreen size basic remeshing||3x 1024x1024|
|600 Onscreen size basic remeshing||3x 2048x2048|
|300 Onscreen size advanced remeshing||3x 1024x1024|
|Original asset||17 454|
|300 Onscreen size basic remeshing||2 424|
|600 Onscreen size basic remeshing||3 704|
|300 Onscreen size advanced remeshing||1 758|
|Original asset||17 564|
|300 Onscreen size basic remeshing||1 164|
|600 Onscreen size basic remeshing||1 846|
|300 Onscreen size advanced remeshing||879|
The moral of the story is that sometimes you do not need increased polygon budget but instead play around with the settings.