Reducing high-poly models

From JPCT
Revision as of 23:07, 6 June 2014 by Admin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

There are at least 3 ways for free polygon reduction:

Blender

You can use the Decimate modifier in Blender. It doesn't preserve texture coordinates but the results are ok.

MeshLab

You can get MeshLab here: Download MeshLab MeshLab is quite easy to use and very powerful. There's even a filter that lets you reduce high-poly models while preserving the texture coordinates (Filters->Remeshing, Simplification and Reconstruction->Quadric Edge Collapse Decimation (with textures). Results are excellent.
However, this filter has an issue with some models. It fails with an error message about missing texture coordinates. In this case, there is a workaround:

  • import the mesh
  • export it as ply
  • create a new project
  • import the ply file
  • run the Cleaning and Repairing->Merge Close Vertices filter on it
  • run the reduce filter again as described above


VIZup

This is another way to reduce high-poly models into low-poly for free. Results are ok, the tool is very easy to use.


What you need:
VIZup FREE EDITION, version 1.8 (NOTE: later versions require paid registration to export). To install in Windows Vista, click on Properties>Compatibility and check the "run this program in compatibility mode" box (select Windows 98).
http://www.tucows.com/preview/407850

Blender
http://www.blender.org/

Python (NOTE: install Blender first to determine what version you need)
http://www.python.org/

OBJ Importer (Or whatever format your high-poly model is in)
http://jmsoler.free.fr/util/blenderfile/py/obj_io_modif232b.py

WRL Exporter (Here are a couple of different ones)
http://kimballsoftware.com/blender/wrl2export.zip
http://www.bitmanagement.de/download/BS_Exporter_Blender/cnt-index.php?lang=en&prod=BS Exporter Blender

WRL Importer
http://sourceforge.net/projects/vrml97import/

Installing required items:
1) Download and install Blender (pay attention to what version of Python it recommends you download)
2) Download and install Python
3) Download all the scrypts and copy them into the Blender scripts directory

How to reduce a humanoid (process similar for other models):
1) Start with just the head of your high-poly model. I usually remove the eyes and recreate them later after reducing the head's polys.
2) Export the head from Blender as a .wrl (don't worry about the textures - you will have to redo the UVs later anyway)
3) Load the head .wrl into VIZup, and reduce the polys to as low as you can get them while still being able to distinguish the nose, eyes, and ears (Usually can't get any lower than around 800-900 polys). Don't worry about a few gaps in the mesh - you can weld these shut later. Note: it is possible to reduce a reduced model to get even fewer polys if the first time isn't enough.
4) Save the new low-poly head to .wrl format.
5) Import the head .wrl into Blender.
6) All the vertices will be disjointed and there will be gaps in the mesh. This is where the work comes in - you will need to meticulously weld together vertices that are close to eachother to fill in the gaps. Avoid the temptation to divide or add polys unless absolutely necessary - poly count adds up quickly. With practice, this usually takes about 6-8 hours to do for a head to make it look nice.
7) Create the eyes if you removed them (may require adding a few extra polys around the eye sockets first).

Repeat this process for the rest of the body. I usually remove the fingers and toes, since they disappear during reduction anyway, and recreate them later (as we did with the eyes). The reason I do the head and body seperately, is because the body can usually be reduced a lot further than the head (around 400 - 500 polys at the minimum).

After combining the head and body and welding them together, you can UV and texture them, set up a skeletal heirarchy, and animate. The entire process takes several days, but there is a benefit to creating models this way - there is a more natural non-symetric feel to the model which is very difficult to produce from scratch (models designed from scratch are often "too perfect", which gives them an strangely uncanny appearance if you try to texture them with actual photographs). I find that low-poly models produced with this method are much easier to texture, and the imperfections are much more believable.