|Please note that this is a BETA version of the document. All information presented is correct but we are working on improving the details.|
In this documentation, we will go through the process of setting up the model to be used in Aximmetry's render engine.
Setting up the geometry
Aximmetry renders the scene in real-time, so the computer has limited time to render each frame. Because of this, we should aim not to use models with very high polygon counts.
Using scanned models is a typical issue that users run into, to solve this you can use any 3d software's built-in tool to remesh the model or you can do it by hand.
Of course, how many polygons you can render is heavily dependent on your computer's performance and how many other effects you want to use in your scene.
Triangulation is the process when the render engine converts the polygons of the model to triangles. It is advised to pay attention to keep topology clean while modeling as fixing these errors is much harder on a finished model.
When importing a model Aximmetry tries to automatically triangulate the polygons, for it to be successful, it is important not to have Ngons in your model, because those sometimes can not be converted into triangles.
In this case, a similar message will appear: This message also indicates which object is problematic. Cube.001 and Cube.006 in this example.
Another issue with Ngons is that reflections may not be rendered correctly. With flat surfaces, this is less of an issue but on curved surfaces, it is much more noticeable.
Example of Good topology:
As you can see, Aximmetry could easily triangulate this model and give correct results.
Example of bad topology:
In this case, Aximmetry was able to triangulate the model, however, this triangulation would have strange and unrealistic reflections.
Size of the model
The base measurement in Aximmetry is a meter. Although Aximmetry can load objects of many different sizes, it behaves best if the unit is set to meters.
We suggest you use meters as the unit when modeling, but you can also convert it to meters at the end. (be careful, as some modeling software can't handle unit changes correctly)
Number of objects
You should aim to keep the number of objects reasonable. This will make your scene easier to manage and set up later in Aximmetry.
There is a maximum of 200 objects you can import with a single model. You can learn about this here.
Setting up the textures
You can use textures in many different ways, we will show you the most usual approaches.
Procedural textures can be generated with different software. Procedural Textures offer a very versatile way to create them by allowing the user to adjust certain parameters of the texture.
For example, a procedural brick material has the ability to change the color of the bricks, their size, the size of the mortar between the bricks, and so on.
You can either create these textures in a dedicated software from which you will probably get every texture that you need for a PBR material. After setting up the UV maps on the models you can use these textures in Aximmetry as well.
Some software also has some type of procedural texture generator, if you are using them you will need to bake those textures to be used in Aximmetry. Pay close attention to baking them using the correct settings.
You can get static textures from many different sources, make sure to use a reliable source to avoid getting incorrect results. You can adjust the UV map to these textures then you can use them in Aximmetry.
Lightmaps are used to store the pre-baked brightness of the texture to save some rendering time, mostly used for static objects. Lightmaps can be baked with many 3D modeling software.
You can achieve realistic lighting, shadows, and color bleeding with lightmaps.
Keep in mind that lightmaps only store diffuse lights. To get specular highlights you should use either a dynamic light or Specular Env Map or their combination.
There are a few rules to look out for when rendering lightmaps:
- Lightmaps should not contain an alpha channel. Some modeling software allows for the lightmap to have an alpha channel, but the final result is usually a corrupt image.
- When you are generating lightmaps in most modeling software and the object has a black diffuse color, the lightmap will be black in that region.
In some cases, it is true per color channel bases. So for example, if the diffuse color of an object has 0 red components then the red component will be black in that region of the lightmap.
There can be cases when you don't want this. Set a small none 0 value for the diffuse color to avoid this problem.
- If you are using auto unwrap to create UV mapping for the lightmaps, always check the result, because in some cases the automatic algorithm may waste a lot of space.
You can try to split or merge objects together to avoid this.
- It is preferable to render the lightmaps into 16-bit half-float RGB .exr file format. Make sure not to use RGBA because this way the background will be transparent and we don't want that.
Note: Some render engines(Cycles for example) generate complete maps instead of lightmaps.
complete maps are colorized with texture / diffuse and they don't work correctly with dynamic lights.
Here you can see the difference:
You can use these lightmaps with many of our shaders, the most commonly used is [Common]:Shaders\PBR\PBR_IBL_Norm_Light.xshad
You can learn more about PBR shaders here.
In the next tutorial, we will go through how you can export 3D models.