Optimizing Low Poly Style Shading in Unity 3D 2017

I started to work on a VR game project with Low Poly Style graphics. I am going to announce the new project next months. It’s very crazy and something never been tried. We are realy excited to work on it!

Eventhough, I used to work on Low poly style graphics in 3ds max ( I have even a tutorial post in previous pages), it is quite tricky when working in Unity 3D. When it comes to creating 3D models for VR experiences, keeping the vertex count low is very important. Models must be really low poly and the scene must be very well optimized for a fluid experience.

However, when i export my low poly models with individual smoothing groups per polygon, vertex counts in Unity increases to astronomical numbers. I was very surprised when i realized smooth objects are more performance friendly rather than flat objects (Low poly style). Because i was expecting the opposite.

So I wanted to test what is actually happening.

I created this two geosphere above in 3Ds Max. They are absolutely same, clone geospheres. I named them as “smooth” and “flat”, then i added smooth modifier to the “flat”. Then i lower the smooth treshold like picture below.

Then I exported them to Unity 3D 2017

Keep in mind that an empty scene in Unity 3D causes 5k vertex eventhough there is no object around. It is because of the skybox in the scene. If you clear the skybox from lighting panel you can decrease default vertex count to 4, I assume. 

As you see the picture above, you will notice that flat is 4 times more, compare to smooth. In larger scenes, this difference will be beyond acceptable limits.

What is the correct way to create Low Poly Style Scenes?

The best way to solve that issue is creating the low poly style in shaders. Exporting 3D Models with 1 smoothing group is best for performance. Then you can give it low poly look with shader below.

http://www.shaderslab.com/demo-90—flat-shading.html

As you see in the picture below, object “smooth” has flat shading material which i downloaded from the link above, has no vertex difference compared to its default.

The result is absolutely wonderful for me.

I hope the post was clear and helpful for the people who stuck in that problem.

 

Advertisements

How to 3D Low Poly Style Landscape

 

In this post I will explain the tricks of low poly style landscape render with 3Ds Max.1I started the project by creating the plane for the ground base mesh. Its a simple almost square 20×25 segment plane. Then I converted to “Edit Poly” by right clicking the mesh.

3

After creating ground I heightened the hills and the mountains with “soft selection tool” which is in Soft Selection panel at right side.

5  When I create the mountain tops I increased the pinch value of the soft selection tool as you see in the picture at left. Pinch value make the vertices which is in the falloff area of the selection stronger or weaker. The graph below values must be seen like a mountain.

Tip: You can start to create mountains with a lower pinch and you can increase the value a little after.

 

6

I finally decided to leave the mountains like above. 9

After finishing the ground, mountains material have to be set up. I decided to paint mountain body to brown and top of the mountain to white. Due to there is only one mesh to paint 3 different materials, the best solution is to use “multi-sub object”. To use this kind of material, Polygon Material ID’s must be grouped. I left the polygons that will be grass to default 1, I set the mountain body to ID 2 and the mountain top to ID 3. It can be set in Polygon Material IDs in the Edit Poly tab. As you can see above. Before setting the IDs the polygons which will be grouped must be already selected.

7

 

I am using “smooth” modifier to harden the meshes. It can be selected in modifier list>smooth. If Auto Smooth is selected, decrease the treshold amount and the mesh will be like low poly style.8

To create the multi/sub-object, Open the Material tab (press M) then click the button which says “standart” which is shown in the first picture above. It will open a new window. Pick “Multi/Sub-Object”. As you see in the 3rd picture above there is a list of material slots. Due to polygon material groups which is I did before the ID groups of the material will paint them.

1st ID is green for the ground

2nd ID is brown for the mountain body

3rd ID is white for the mountain top

If the material IDs set correctly the mesh will be shown like the picture below.

123123

 

13

I created the trees in a very basic way. I created a cone, copied it 4 times and attached with a stick. I set the polygon material groups of the leaves to 2 and left the stick to default 1. I made a new multi sub object material and added it to the tree.clouds

Creating the clouds is a little bit tricky. I created a basic sphere with 16 segment then I used “pro-optimizer” modifier which is in the modifier list menu and I added “smooth” modifier to make it look low poly style. Just copied 3 times and variated it.

14

 

Stone is also created with the same modifiers.

 

 

To create a forest, copying and copying is not the best way. It takes time and it will be like un aligned by the ground with hills. I think the best way to make a forest is to using the “Object Paint Tool” which is above of the viewport screen. Before using this tool make sure the object that you want to copy is 1 mesh.

Press the button which is marked with the number “1” then click the tree mesh. Press the button which is marked with 2 and you can click to the ground where you want to create a tree. It will copy the tree where you will click. It is also aligned by the Axis “Z”. It means if you click the mountain the tree will not stay below the ground. If new trees are so big you can manipulate the values which is marked with “3” cyan color.

12

I put the stones with the same tools. I copied some clouds to the sky and added some details like the river, rainbow and stuff.