How to retopologize 3D scans into low poly game assets

Back to overview

3D scanning will give you amazingly lifelike results, but the models are often very high poly and impossible to use in a real-time environment. This is where retopology comes in – using a combination of the right tools and techniques you can reduce the mesh density while keeping the ‘deep’ realism. Sketchfab Master Johnson Martin explains in this in-depth tutorial.

Hello, I’m Johnson Martin. I’m a 3d artist and topology fan. I run the blog Topology Guides where I give tips and techniques on how to 3d model. Today, I’m showing you how to use free software to retopologize and re-texture a high resolution 3d scan into a low poly game asset. I’ll be using a downloaded model from from Sketchfab user shadows44 to demonstrate with. You can download it here to follow along.

What is Retopology?

Retopology is the process of rebuilding your model to reduce polygon count and to allow for UV unwrapping and proper deformation for animation models. Retopology is widely used by digital sculptors to convert their models into usable assets in game or film projects. It can also be used on 3d scans for rapid asset creation. Learning the process is quickly becoming a valuable task as more and more game studios are using 3d scans in their asset pipeline.


Instant Meshes for Retopology

For the retopology we’re going to use Instant Meshes, a free quad-based auto-retopology software recently announced at Siggraph and available for free download. At the moment Instant Meshes supports OBJ, PLY, and ALN formats. By coincidence, the model I’m using is already in OBJ format. But if your model isn’t, there are a number of free converters such as MeshLab or online apps if you prefer not to download one.

Import your model into Instant meshes by using the Open mesh button. It may take a while depending on the complexity of the model and your computer specs. Also, don’t worry if your scan has holes, Instant Meshes has support for non-watertight geometry.

Next, select your target vertex count using the slider and press the Orientation field solve button, which will create set of directions on the surface to which the edges of the output mesh will align to. After doing this, you can use the orientation tools. to tweak the results. In my experience, the algorithm does a pretty good job on most objects and doesn’t require any changes in this step, but it’s a good idea to check the model just in case.

Now you can use the position solve button to generate the position field, which will create a map of the position of each vertex to be placed and then applies smoothing for less jagged topology. At this point you can mostly tell how the model is going to turn out, but take note that the grid overlay is not the final mesh, you may notice there are some triangles and that the grid detail is very large, neither will be present in your final mesh.

If there are sharp edges within the model you are using, you can use the edge brush to specify them. In the particular model I’m using, there aren’t any sharp edges or corners. But be sure to use the edge brush if there are any, otherwise they will be smoothed in the final mesh.


Extracting and Exporting

You can now generate the final mesh by clicking the export mesh button and you will be presented with a few more options. The “pure quad mesh” check-box will remove any triangles that would normally show up in the mesh, this will also bump up the mesh detail, so be sure to take that into account. There’s also a smoothing slider that will apply a smoothing algorithm, resulting in a less defined mesh.

Using the Extract Mesh button we can generate the final mesh. Inspect the mesh to make sure there are no issues. If not, save the mesh. Next we’ll use Blender to do any cleanup needed and to re-apply the textures.

Blender for Cleanup

Now that the model is retopologized, you can use Blender (or another 3d software if you prefer), to do any mesh corrections. For the sake of keeping this tutorial short, I won’t go through all the basics of using Blender. But if you want to learn more, there’s a plethora of quality tutorials you can find online.

To import the OBJ into Blender, go to File>Import>Wavefront (.obj) and select the model you just saved from Instant Meshes. 3d scans often have holes or extra geometry that shouldn’t be there, you can fix such problems now using Blender’s toolset of modeling tools. Here’s a few tools that can help, with links to the Blender manual:

After you finish cleaning up the mesh, click save, and continue to the next step.

Re-applying Textures

As soon as you opened the OBJ in Instant Meshes, the UV’s were destroyed. As such, we can’t re-use the texture maps by directly applying them to the new mesh. Instead, we have to use baking. If you’re a game artist, this might already be something you do during the normal mapping phase of asset development. If that’s the case, you can probably skip reading this step, it might be redundant to what you’ve learned in the past.

Import the original 3d scan into Blender so that it can be used to bake from. Afterwards, go to the material tab in the properties panel, add a new material, switch to the texture tab and apply the original texture. Now the original is ready for baking.


To prepare the improved mesh, you need to UV unwrap it. Open the UV/image Editor, enter edit mode in the 3d view and press U to unwrap it. I used “Smart UV project”. But feel free to unwrap it however you like as long as nothing is overlapping. Before you exit edit mode, add a new image in the UV/image editor to bake the new texture onto. To preserve the texture resolution, use the same pixel dimensions as the original texture.


Now we can get to the baking. Make sure both meshes are aligned together as well as possible. Then in the render settings, scroll down to the Bake tab and set the Bake type to “Textures” if you don’t see this option, make sure you’re using the Blender Internal render engine. Next, check the “Selected to Active” checkbox. This will allow you to bake from one object, onto another. In our case, from the original, onto the retopologized mesh. Re-enter edit mode on the improved mesh and make sure the new image is in the UV/image editor, this is necessary so that Blender knows what image to bake onto. Next, leave edit mode and select the original mesh, then while holding SHIFT, select the improved mesh. Press Bake, and wait for the bake to finish.

If you’d like to know more about baking in Blender, I would recommend watching this tutorial by Oliver Villar. It goes into more detail and may be easier to understand in video format if you are new to baking.


Now all that’s left is to save the image and mesh, then upload to Sketchfab! If everything goes as planned, you should have a result similar to this:

I hope you enjoyed this tutorial and learned something new. Feel free to drop a comment or question below and tell me what you thought of the tutorial!


About the author

Johnson Martin

I'm Johnson, a 3d artist and Sketchfab Master. I'm currently a student, exploring the world of creative arts. I run Topology Guides, a blog that gives tips and tricks for 3d modelers. I'm also an active member of the open source community, using software like Blender and Linux in my everyday workflow. I am a Sketchfab Master.


  • Pete says:

    Wow the Instant Mesh tool is very easy to use with impressive and fast results. I used it on a dental scan which was very messy and it has done a great job making it more editable.

  • It’s a great program. I’m glad i had a change to share it with the Sketchfab community!

    One of the things I like most about it is the great support for 3d scan data. Many retopology tools are very limited in support for such things.

  • Stan says:

    And which way did you polygonize that point cloud?

  • I actually didn’t make the scan. At the top of the article you can find a link to the scan I used. Maybe you could ask them what they’re process is?

  • Clarinda says:

    Somos milolnarios con el simple echo de poder respirar y poder caminar y más aún teniendo a Jesus nuestro Salvador y el saber que un día estaremos con él en el paraiso.

  • Jordan says:

    Thanks for sharing this! It’s good to know how to turn these 3D scans into something that can be used to make games. I’m excited to see what this can allow video game developers, especially smaller indie projects, to accomplish!

  • Grafoo says:

    I wish it had a 32 bits version… “The following binaries (Intel, 64 bit) are automatically generated from the latest GitHub revision” and I can’t compile… Can someone help ?

  • Paul says:

    Hello Johnson,

    Thank You for the tutorial. Im a complete beginner in blender. Is ist possible to do this in the same manner in blender with 3D Scans from 123D Catch?



  • Hi Paul,

    Yes, as long as you export from 123D catch to a OBJ format, it will work fine using this workflow. If you captured using your phone or tablet, you should be able to export and download to your PC using the online 123d catch app for using in Sketchfab.

    Hope this helps!

  • Grafoo,

    I’m afraid i’m not experienced with compiling myself. So I’m unable to help you out. But there are a number of free tutorials online about compiling that you may want to take a look at if you’re still interested in using the software.

    Sorry :/

  • Paul says:

    Hi Johnson,

    Thank You for your answer.

    I am downloading a lot of models from the 123D Catch community, as it will shut down in April.

    I am working on an Apple Computer, but i guess it should work the same.

    Ill try my best!

  • Jake says:

    You may be interested in this:

    It looks like it’s pretty easy to compile…pretty much just a git clone and cmake.

  • Grafoo says:

    Yes, pretty easy :

    “On Windows, open the generated file InstantMeshes.sln after step 3 and proceed building as usual from within Visual Studio”

    But Visual Studio can’t run on a 32bit computer, my poor computer. It seems I got the last one…

    Since you can, on a 64bit, code 32bit I’m stuck on my first question : Does anyone have a Visual Studio on a 64bit to encode an Instant Meshes for a 32bit in a pretty easy way ? ^^

  • Jukka says:

    Im interested how it compares with Zbrush’s decimation master, and or Zremesher? Also, is it any good for game topology? (have loops where you choose etc

  • Hi Johnson

    Thanks for this – we really appreciated learning more – our group – Digital Life ( or – is creating high res scans of living animals – we have some questions about retopology – would you be able to have a chat about this? My email is


    Duncan Irschick

  • Elliot says:

    Whenever i try to bake the textures from the original to the “improved” low polly model using the “selected to active” feature i get a white image sometimes bits of grey, but nothing like its supposed to look.

  • Antonio says:

    It’s normal when I unwrap the model (smart unwrap) blender stuck and stop to respond to my commands? I’m working on a .obj of 140mb with a texture of 190mb

  • On low end machines it can freeze for a bit sometimes. Blender has no built-in loading screen for most commands, so instead the UI just freezes. It can be a bit scary, but most of the time its just a waiting game for the command to process.

  • Weaver says:

    I did this with pretty good results but found in Unity when importing the mesh I could still see some quad seams even after applying the normal map when I zoomed my camera up close. In blender everything looks fine.

  • Michael Vogt says:

    Very helpful, thank you.

    Just wondering if the information is still up to data, or if there are better ways available in the meantime. Instant meshes doesn’t seem to have been updated much.

  • Benyo86 says:

    Thanks for this tutorial. I’m using Polycam for create 3d scans, i’m happy with the results but if i try to make a retopo with insta meshes when i click “extract mesh” there will be holes on the model. I dont know why. Any solution or tipp?

Leave a Reply

Your email address will not be published.

Related articles