Blender - Capi-Metaverse/Template GitHub Wiki
Blender is a powerful free and open source 3D creation suite. It supports the entire 3D creation process: modeling, rigging, animation, simulation, rendering, compositing and motion tracking. It is also cross-platform and works equally well on Linux, Windows and Macintosh computers. In addition, Blender is regularly updated to remain technologically relevant and to be able to produce high-end creations. Native import of project files from Blender is easy with Unity and does not require other applications to convert them.
Consistency of scales must be maintained between the different models and programs, to avoid having to adjust them at a later stage, such as importing. It is advisable to use a scale that starts from the real one, adjusting the program units so that they correspond 1:1, facilitating the recreation of spaces as it is more intuitive.

We must avoid the distortion of the original object, for this the modifications that we introduce in the model must be made in edit mode, never in object mode. This will allow us to maintain the original scale of the object, since we will only modify the internal vertices.
If this scale has been modified, we must recalculate it by [Ctrl+A] and Apply scale.

Normals are a vector perpendicular to a polygon (or to a vertex) that serves to indicate the orientation of the face of the polygon. They tell the 3D program or the engine in which we are working how it should render the polys that form our 3D model, determining how the light hits the polygon and therefore, how it ends up looking.
To ensure the correct visualization of the elements we must make sure that the direction of the normals is correct. For this we activate the Face Orientation, the visible faces are those colored in blue. In case the normals do not have the correct orientation we must recalculate them by [Edit mode ‣ Mesh ‣ Normals ‣ Recalculate Outside/Inside].

To improve the performance of the model in Unity we can apply a series of improvements to the project:
-
We can decrease the amount of elements to be rendered, eliminating those objects or faces of these that are not going to be visible to users.
-
We can try to reduce the number of polygons that compose each object, dissolving some of the faces that conform it. This will diminish its quality so we must avoid to affect to the form of the object neither to how this is perceived. For this we can use the tool Llimited Dissolve [Edit Mode ‣ Mesh ‣ Delete ‣ Limited Dissolve ].
These improvements should be applied before exporting the scene to Unity, once we have finalized the model.
As discussed in the gLTF section of the documentation we must export the Blender model to gLTF by [File ‣ Import/Export ‣ glTF 2.0 (.glb, .gltf)]
Lighting and model quality changes in Unity, so it never looks like in the render mode of Blender. This is why we have to do export tests.
When we have customized materials in addition to the export of the general model we must export these materials.
-
Deploy UV’s - The easiest way to achieve this is by using the Unwrap [UV Editing ‣ Select all the object ‣ Tool Shelf ‣ UVs ‣ Unwrap] for organic shapes and Smart UV Project [UV Editing ‣ Select all the object ‣ Tool Shelf ‣ UVs ‣ Smart UV Project] for simple and complex geometrical shapes.
-
In the Shading tab, in the materials tab we can see the different materials that make up the object. From this tab, inside the node box, create a new node [Shift +A] of type Image Texture
-
Create a new texture for Color and make sure that its color space is set to sRGB. (If an object is composed of several different materials, so that they are all saved in the same image, we copy this new texture in each node box of each material that composes it )
-
In the rendering tab we change the Render Engine to Cycles
-
In the Bake tab, we choose as Bake Type Diffuse and select as Contribution option only the color
-
With the node active (in all the materials), we press the Bake button
-
In the image editor window check that the texture has been created correctly and save the image (in png format)
-
For Roughtness | Glossy | Alpha | Normal | Ambient | Bump | Height | Metallic we repeat from step 3 but this time the color space has to be Non-Color and the bake type the one corresponding to the texture we are creating
-
Save the Blender file as a new one in order to delete everything that is not necessary. We remove cameras, lights and all materials from the model.
-
Create a new material, which will be compatible with Unity.
-
We import all the texture maps that we have created in the new material
-
In the nodes tab we assign the corresponding texture map to each of the parameters.
-
Export the model to gLTF.
-
In Unity we import the gLTF and all the texture maps.

-
It is advisable to save the different phases of the modeling process in separate files, so that in case of having to make later modifications, they can be recovered at the most optimal modeling point.
-
For quotidian objects (such as cushions, food…) it is best to import a model already created by downloading it from asset stores and making the appropriate modifications, thus saving time and resources.
-
To facilitate the work we must maintain the order of the different objects in the scene, grouping them by collections and naming them in recognizable ways.
Though there are many websites in the internet that are dedicated to sell assets, only a few give gLTf for free. For that same reason, we have collected a list of Assets Stores, that fulfill our needs.
-
Sketchab (most of the assets aren’t free)
-
TurboSquid (most of the assets aren’t free)
-
BlenderMarket (first you’ll need to go through Blender to import the assets to Unity)
-
ArtStation Marketplace (you may need to go through Blender)