Is there a standard specification for 3D graphic representation? I'm reading a book on computer graphics, and at some point, it shows a 3D model, created from a .dat file.

Here are a few rules for the .dat file creation:


Made of a list of vertex positions / faces
Written counter-clockwise
Faces end with a dot (.)
Fractions are also acceptable


I want to know if this is the standard, and if not, what is the standard way of defining a 3D object.

Also, if there is a specification, who defined it and where to find it?
When talking about file formats, we are talking about persisting some data related to a 3D model/geometry. There is no universal standard on file formats for persisting 3D geometry. There are only a few formats more dominant than others.

Just as it is with image file formats, the PNGs and JPEGs are the most common formats out there today, but there is no universal agreement between applications on using one or the other. Each app uses the best fit for its purposes.

The same happens with file formats storing 3D data. Each 3D modeling software will generally have one or a set of preferred formats. Most actually define custom formats that only work with the specific version of the tool. This can happen for many reasons, from simplifying the inner workings of the application, or making loading of files faster, to binding the user to a given tool on purpose.

This .dat format you describe is a custom format created by the authors of the book, which was probably designed with simplicity in mind. It seems to be a text file similar to the Wavefront OBJ format, which in turn is a very popular format for storing static geometry, though a bit outdated by now. One could say that the .OBJ format is the .BMP of 3D model formats.

Other popular 3D model formats include:


The Collada format.
The 3DS format.
The PLY format.


And many others. More general explanation here.

Also note that I said at the beginning that these are formats for storing/persisting a 3D model or geometry on an offline storage. It doesn't mean (and it usually isn't the case) that the applications that use them will store the data internally in memory using the same layout as the file. Normally, this kind of data will undergo a lot of processing after being loaded from a file until it is, for instance, displayed on the screen.