This note describes the approach I believe should be taken for the distribution of 3 dimensional geometric information (from now on referred to as a "scene") on the internet. The aim can be summarised as: "distributing 3D geometric information so as to maximise its usefulness to the user."
Currently the most prevalent types of information available on the internet are text and images. In both cases there are standard ways of storing and presenting this information. Text uses a fundamental mapping of bytes to characters called the ascii code (at least for most languages). Images are stored in standard formats, the most prevalent being GIF and JPEG. The widespread use of these formats has meant that almost all users can view and save both text and images without problems.
There are other more dynamic information types emerging such as sound and animation. There are also standard ways of storing these information types but the formats are less well known, there are more of them, and they are sometimes be platform and/or software dependent. As a result not all users can make the same use of the information, they may be able to play animations stored in one format but not those stored in other formats, they may not be able to save music for later listening, etc. Standards are emerging and thus these dynamic information sources are becoming accessible to a wider internet audience.
The important characteristics for the successful distribution of an information type on the internet is a standard file format and software support at the user end for that file format.
In the case of a scene there is no standard, widely used way of storing the 3 dimensional geometric information. This industry has evolved with the various suppliers each making their own way when it comes to storing scene information.
As a result there is currently no way of making a scene available on the internet in such a way that users can do what they can currently do with text and images. That is, view the information in an appropriate way and save the information for later independent use.
The lack of a widely used suitable scene description format or language means two things, firstly a suitable format needs to be chosen or created, and secondly, software needs to be developed to support this scene description. It is important to realise that it will not be possible to satisfy everyone, the aim is to cover as many application areas as possible. For example the use of the GIF format is by no means an ideal standard for representing many types of images. It does however satisfy the vast majority of peoples requirements, any disadvantages in its representation are countered by the fact that it can be readily viewed and if saved there is every likelihood that the user will be able to use it with other application software.
The requirements of a format for scene information and the minimal software needed to support it are described below.
The scene description format needs to steer a path between the following often conflicting characteristics
* it needs to contain powerful general geometric primitives and material
* it needs to be extensible in a way that does not invalidate any existing software base
* it must describe geometry efficiently
* it should be easy to implement, for example, to write translators
* it needs to be hardware platform independence
* it should be readable by humans, ie: text based
Currently there are no widely used formats which even come close to satisfying the above criteria. The most widely used format for geometric data interchange is DXF, it has no high level geometric primitives and cannot adequately describe materials. Other high level geometric languages such as RIB or the format used by specific software such as POV are hard to translate into other scene description languages.
The user must at least be able to two things, view the scene and save the scene into a format they can independently use.
Viewing the scene involves a 3D computer graphics process called "rendering". A virtual camera is placed somewhere within the scene and the view from the camera is presented to the user. The camera has attributes such as position, view direction, up vector, horizontal and vertical apertures, and lens or projection type. The viewing software also needs to provide a natural means of navigating through the scene.
The viewer described here is a minimum requirement. Later additions might include a higher degree of rendering realism, interaction with the scene, and even implement features of VR systems..
Saving the scene to a wide range of formats is required because of the lack of a suitable standard in the industry. The aim is to find the smallest set of formats which will give the greatest number of users their own use of the scene. An initial set of export formats might be DXF, GL, POV, and Radiance. Translators between scene formats is a notoriously difficult task but this is usually because the translators are going between weak formats. If the scene description is suitably designed then translation to less capable formats is generally not difficult.
It goes without saying that the above software needs to be available on the major hardware platforms represented on the Internet. Initially these might be X-Windows, MacOS, and DOS/WINDOWS.
The 3D graphical information technology is relatively new compared to the other information types available on the internet. As a result the standards and software base still needs to evolve to a point where it can satisfactorily present and distribute scene information. Such distribution needs to start with a suitable scene description language and a software base supporting such a format.