OBJ is a common file format for 3D models in mesh form. It also has a .mtl file defining materials, and the material can refer to a texture which is projected on the surface mesh using UV coordinate per vertex.
There are many different file format standards around, e.g. Autodesk fbx, Khronos glTF, Collada, etc. They often have support for more advanced stuff, e.g. to include a character bones hierarchy, skinning info per vertex, and animation.
There are also free libraries to import all those formats, e.g. AssImp, to make your life easier.
ogldev1 said:
I mean for example if I want to add w house to my scene; Instead of constructing the house using vertex data then adding the texture for each part of the house, I upload a 3D picture of the house and add it to the scene directly ?
Phrasing it this way, i would assume you do not want to render a complex 3D model at all, but instead an image showing this model, so the final render looks like showing the complex model, but in deed only displays a simple textured quad.
This technique is called ‘Impostors’, and is often used to get better performance from complex scenes, e.g. distant trees could be rendered using images if trees.