Quick Start
Last updated
Last updated
For rendering mesh in lowpoly style, it is enough to assign Lowpoly shader to the material from the Amazing Assets → Lowpoly Shader menu:
After changing shader, mesh will be rendered in lowpoly style.
Lowpoly shader doesn't modify rendered mesh by reducing its vertex or triangle count, instead lowpoly effect is achieved by rendering Basemap texture inside vertex-stage of the shader (not in the pixel-stage as in the common shaders) and by flattening surface normals.
The pros of converting meshes to lowpoly style by baking Basemap texture inside them, is that rendering of such meshes have no hardware dependencies and can be used on any device. Creating custom shaders that can read baked texture data from a mesh is very easy and supported shader features are unlimited. Also as textures are already baked inside mesh, there is no need to keep them in project, that reduces final build size and frees up memory. The only downside of generating lowpoly style meshes is that each vertex in a mesh needs to be unique and this leads to increasing vertex count, that always equals to 3x of triangle count (as triangle consists of 3 vertices and each one needs to be unique).
Bellow is a little benchmark/comparison of using Lowpoly shader and its alternative solution of generating lowpoly style meshes by baking textures inside them.
Benchmark scene consists only of meshes with opaque shader and one directional light without shadows:
The only better result on those benchmarks converted meshes have in Memory Usage - Textures scheme. And the reason is that for those meshes rendering materials do not use textures.
And compared to Original Meshes, Lowpoly Shader also has better result in this scheme, as there is no need to keep Basemap textures in high resolution as the lowpoly rendering effect can be achieved with lower resolution textures.
An alternative solution for creating similar lowpoly effect is by baking Basemap texture inside mesh vertex color and flattening its normals, for example by using tool or any other similar tools. Both methods have its pros and cons:
The main pro of using Lowpoly shader is that it is real-time rendering effect and doesn't require mesh generating, that leads to the increased mesh vertex count. And cons are hardware requirement for supporting and limit of the shader features itself, that aren't easy to extend or add new ones.