DEV BLOG ENTRY 3: HULL PAINTING 101
After last week’s talk about the fundamental principles of 3D modeling for games it’s time to explain the next step in the process.
Once the object is modeled, with everything that was mentioned in the previous post taken in consideration, the result would look something like this:
In order for the texture artist to be able to paint the object he will need a UV layout of the model, sort of a 2D canvas composed of all the faces the model contains. A well made UV layout should look something like so:
In order to speed up the texturing process and to optimize the texture size of the model above, we decided (and this is common in game development) to merge components of the UV that can be mirrored on both sides of the object. The most obvious example in the picture above is the engine component, where we merged the UV of both engines and they use the same texture.
This method should be used only when the object can tolerate mirrored textures, so if you want to have unique features on one engine that don’t show up on the other than the UV should be separate.
This second picture shows the same model and UV layout after the texture artist finished his work. While at fist it seems unintuitive and random, the pattern will make sense after a bit of time spent on texturing 3D models and with the 3D modeling software in tow to see the results as soon as you make a change.
When creating a UV layout you should always pay heed to the size of the model. Smaller elements in the game should have small, maybe even 32x32px sized, textures so they don’t take up a lot of resources, while game components that are more prominent should feature larger, hi- res textures. In EXCUBITOR we feature a top- down, isometric camera perspective, so the UV is composed in that manner that the faces of the object that are on the top are always larger in the UV layout, so the texture artist has more space to design better patterns and greater details.
When it comes to huge components, all the static assets in the level put together, or a huge cluster of rock formations, the standard process would not be optimal. If you create a UV and texture for every single component then you will end up with a ton of textures and a huge strain on video memory, this was one of the mistakes we made and we faced frame rate issues because of the many draw calls. So in order to circumvent this problem we used a technique called Atlasing.
With Atlasing we could create a single 2K texture that can contain all the elements we require it to. One example is the composite model pictured below. This is a base segment that contains a lot of smaller sub- components and in order to optimize the texture we used the aforementioned Atlasing.
And these are the two 2K textures we used on the composition above:
On the left side is the texture for all of the smaller elements, while on the right we have the texture for the main building blocks for the base. After we apply the texture the base looks like so:
If you have any questions regarding this topic feel free to join the forums and ask away, we’ll do our best to answer as soon as possible in the best manner that we can.
That does it for this week, follow us on our social pages or on IndieDB for updates and check the site for our weekly updates.