Dynamic ground for building model
Hello, I made .obj real time importer, it is used to get a 3d model of a building and place into game world without using editor, it works fine for simple structures on a flat surface, but I can't get my head around how should I approach building that have tilted foundations or some underground structures like basements, parking places etc. I would appreciate if you could help me with some ideas, maybe examples.
Answer by Fredex8 · Mar 17, 2016 at 03:29 AM
Depends what the source of the obj files is and how they are constructed. If the intention is to let the user import whatever they like from anywhere then it seems likely to cause huge amount of errors.
If however you have created the models or they are all coming from one source like the same site or same artist then they are likely to have certain standards and practices that you could use to separate out above and below ground features.
A well constructed building model would have the pivot (or parent pivot) set to 0,0,0 which would obviously make things very easy. Ideally they may also split the mesh along the ground plane so you can hide subterranean features when they are not needed or load them separately. If not then you might want to write a script to slice the mesh along this plane. The ground plane could then simply run straight through the building with just a minor offset to stop Z-fighting and make it not visible inside the building, assuming the buildings have an inside. If you really needed to you could write a script to draw a plane around the outline of the building based on vertices or point helpers added to the model.
However if you are looking at just importing models from any source without processing them then it seems likely that lots will be pretty much unusable due to poorly located pivots, Y-up or Z-up inconsistencies, lack of groups or combined meshes etc. At the very least it would require a dialogue to make the user click what looks like the base of the building to manually set that as the building's pivot that will be placed on the ground. I am just speculating that this is what you are looking at doing of course, partly based on the availability of lots of free (dubious quality) OBJ models online when FBX tends to be a better format.