MODELING AND TEXTURING GUIDELINES
pjotr wrote:
In the general announcements forum, I made a posting on how to add ships to the game. That posting also contains a link to our standard modeling guidelines.
The improvements that you need to make on an existing 3D CAD ship model to make it perform well in our game (and any other real-time 3D engine/tool):
1. Reduce the number of polygons. Especiall the hull and the elements you may have created using Rhino3D or another NURBS based modeling tool are converted into polygons in a not-so-efficient way. You can use these high-poly models as a basis for creating a new lower-poly mesh basically from scratch, or you can optimize the polygons by hand, or use a tool like Optimize in Max. Target polycount (triangles) of the whole ship is around 40,000. Higher polycounts are possible, e.g. on cruise ships, but only when certain optimizations are used, like instancing of repetitive elements (next point). The Titanic model for example has around 700,000 polygons, but the lifeboats are instanced. It still runs rather slow on older PCs and 3D cards, esp. when you also want a nice reflection on the sea, smoke, other ships, a nice looking harbour etc.
2. Make instanced objects of all repetitive elements. So you only have one version of the object (e.g. a life boat), and the other ones are basically just pointers to the unique object.
3. Reduce and optimize the texture size (resolution); combine multiple simple textures on one larger texture. 3D cards work best with as few textures as possible, this reduces loading times. You also need to turn the textures into power-of-two resolution, in DDS format.
4. 3D cards and/or Quest3D also don't really like many separate surfaces. So you need to collaps areas that use the same texture together into one surface (of course not including the instanced objects. The latter need to be optimized separately).
5. The inside of the bridge of the ship needs to be modeled also, with the navigation equipment. We need to find out how the ship is steered, as soe ships nowadays have multiple pods (turnable propellors). You or we may need to contact the ship's owner to find out these details.
6. To make a walkthrough possible, we need a low-poly version of the walkable areas (decks, staircases, bridge), with a simple flat plane alongside on each side to avoid people falling off. This collision model is not visible, but only used by the game engine internally to let people walk in the right areas. It needs to be extremely simple, low-poly, else the performance drops too much.
7. For the collisions with other ships and the environment (incl. bridges, shallow areas), we also need a very low-poly version of the hull of the ship and its upper structure. This is also not visible in the game, but just used for collisin detection and response.
8. For the water reflections, we also need a low-poly version of te ship, with simple textures. This could be the same as the collision shape of the previous point, but more likely it is a different model. The collision model for example does not need textures, and the reflection model does need textures to make it look like the real one.
9. If you want to include also interiors as walkable areas, that's really nice. It is usually a lot of work to make good looking interiors. You need good design drawings from the manufacturer or owner of the ship. The interiors also need separate low-poly collision models for the walkthrough. Make doors separately, and animate them, so we can make the clickable later, to open and close them during a walkthrough.
10. Lightmapping/shadowmapping is a whole interesting topic in its own right. We are still experimenting with the best way of doing this for larger and complex ships. We will make postings on this later in the forum.
_________________