Abstract:
A user interface on a display terminal, such as a personal computer, includes a 3D display region which shows a scene incorporating a number of objects, such as items of furniture. A surface finish selector is also displayed and is used to select a surface finish from a number of alternatives. In the case of items of furniture, these finishes may correspond to different fabrics for upholstery. A surface texture data for a selected finish is automatically downloaded from a remote source and mapped onto the object in the 3D scene. In a preferred implementation, the surface finish selector is a frame of a web page and generates control data which is passed to another frame containing the 3D scene together with movement controls for changing the viewpoint in the scene.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the invention 
     The present invention relates to a display terminal, and in particular to a user interface for such a terminal. 
     2. Related Art 
     Computer art systems have the capability to “flood” a color or pattern within the boundary of a closed area displayed on a computer screen. Hitherto, conventional on-line catalogs have typically relied upon an arrangement analogous to that in a traditional showroom including, for example, photographs of a product in one selected finish together with details of alternative finishes. 
     According to a first aspect of the present invention, there is provided a user interface for a display terminal, the user interface comprising: 
     a 3-dimensional display region including one or more displayed objects; 
     a surface finish selector arranged to display to the user a plurality of alternative surface finishes for the said one or more displayed objects; 
     a user input device for selecting one of the plurality of alternative surface finishes; 
     means responsive to the user input device for reading, from a source which is remote from the terminal, data for a surface finish selected by the user, and 
     a display generator for mapping the selected surface finish onto the displayed object using the said data. 
     Preferably the surface finish selector includes a 2-dimensional display of samples of the said surface finishes. Preferably the surface finish selector further comprises icons representing displayed objects to which the finishes shown in the samples may be applied. 
     The term “3-dimensional (3D) display” as used herein denotes a display with properties of perspective and/or parallax. It is not limited in scope to stereoscopic displays, such as those generated by a virtual reality headset, but includes also displays generated on a conventional 2-dimensional (2D) monitor. 
     The present invention provides a display terminal designed to facilitate on-line access, for example, to the catalogue of a furniture retailer. In real life, a furniture retailer may offer, for example, a dozen different sofas, each available in a number of different fabrics. Typically, the retailer will have on display in a showroom one example of each sofa in one fabric. The display sofa may be located in a set intended to represent a domestic interior. The customer is then shown fabric swatches and has to imagine what the sofa would look like in different materials in its intended setting. Just as in real life limitations of space prevent a retailer including in a showroom all the different possible permutations of shape and fabric, so also in conventional on-line catalogues, limitations of storage space and connection bandwidth have made it impractical to display directly the entire range. Hitherto, such on-line catalogues have typically relied upon an arrangement analogous to that in the showroom, including, for examples, photographs of a product in one selected finish, together with details of alternative finishes. 
     The present invention overcomes these limitations by providing a 3-dimensional display of the relevant product, together with a display of sample finishes, and then downloading from a remote source the data which is needed in order to map the selected finish onto the product in the 3-dimensional display. This allows the user to see directly and realistically any or all of the different combinations of product and fabric. This is made possible without unduly heavy demands on the storage capacity or bandwidth of the terminal, since typically only one selected finish need be downloaded at a time and the amount of data required to display a 2D sample of a finish is very much less than that required for a complete 3D texture map. 
     Preferably the user interface further comprises a movement controller for moving a viewpoint in the 3D display in response to a user input. 
     This preferred feature enables the user to make a more realistic assessment of a product including the selected finish by viewing it from different angles and at different distances. The movement controller may include control buttons displayed adjacent the 3D region, or may include a user input device with multiple degrees of freedom such as the 3D mouse available commercially as “Spacemouse”. 
     Preferably both the surface finish selector and the 3-dimensional display region form part of a Web page displayed by a web client running on the said display terminal. Preferably in this case each of the surface finish samples includes a link to an internet address, or other network address, of the corresponding texture file. This preferred approach imports textures into a live web page over the internet. 
     According to a second aspect of the present invention, there is provided a display terminal including a user interface in accordance with the first aspect. The terminal may be, for example, a personal computer with an internet connection, or may be a dedicated multimedia terminal such as BT&#39;s Touchpoint (Trademark) kiosk. 
     According to a third aspect of the present invention, there is provided a method of operating a display terminal comprising: 
     a) displaying a 3-dimensional environment including one or more objects, 
     b) displaying to a user samples of surface finishes which may be applied to the one or more objects, 
     c) selecting by a user input one of the surface finishes; 
     d) retrieving from a source which is remote from the terminal, surface data corresponding to the selected finish; 
     e) mapping the said surface data onto the one or more objects in the 3-dimensional environment. 
     The 3-D environment may have been previously downloaded from a remote source, or may have been constructed or modified locally, for example using data for the home environment of the user. 
     According to a fourth aspect of the present invention, there is provided a method of operating a display terminal comprising: 
     a) loading and displaying on the terminal a web page including a plurality of surface finishes; 
     b) loading and displaying on the terminal a web page including a 3-dimensional environment, which 3-dimensional environment includes one or more objects; 
     c) in response to selection by the user of one of the plurality of surface finishes displayed in step (a), importing surface finish data and mapping the said data onto one of the said objects displayed in step (b). 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention will now be described in further detail, by way of example only, with reference to the accompanying drawings, in which: 
     FIG. 1 is a diagram showing a network including a display terminal; 
     FIG. 2 is a diagram showing schematically the display on the terminal of FIG. 1; 
     FIG. 3 is a first example of screen display from a terminal embodying the present invention; 
     FIG. 4 is a diagram showing a detail of the display on a terminal embodying the present invention; 
     FIG. 5 is a second example of a screen display, showing modifications to the display of FIG.  3 . 
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
     A display terminal comprises a personal computer  1 . The personal computer includes a cathode ray tube (CRT) monitor  2  and a mouse  3 . In this example, the personal computer includes an Intel 166 MHz Pentium MMX (Trademark) processor, together with regions of RAM and a hard disk mass storage device. The personal computer is connected via modem  4  and the PSTN (public switched telephone network) to an Internet Service Provider (ISP). A web browser, such as Microsoft Corporation&#39;s Internet Explorer (Trademark) runs on the processor of the personal computer  1 , and in combination with the plug-in application described below, is responsible for generating a display on the monitor, and for interpreting input from the user. Using the web browser, the user accesses a web server  6  which, in this example, is maintained by a furniture retailer, and includes a product catalogue. The web server  6  then returns to the web client on the personal computer  1  a web page which has the format illustrated in FIG.  2 . In this Figure, the different file names are included for ease of understanding, although normally such file names would not appear explicitly in the display. The top level document returned by the server  6  is, in this example, a file named BT.htm. This HTML file includes in turn two other web pages. A first web page, pinefin 5 .htm is displayed in a frame on the right hand side of the screen. This page includes a 3-dimensional virtual reality display of a domestic interior. 
     In the present example, the 3D interior is generated using a virtual world authoring system known as VRT which is available commercially from Superscape Ltd. The data generated by VRT is then viewed by the web browser using a plug-in application. The plug-in application makes use of a VRML (virtual reality markup language) viewer known as Viscape (Trademark), also commercially available from Superscape Ltd. The plug-in application also establishes a socket connection with the web port of the web server. It will be understood however that these particular generation and viewing tools are described by way of example only, and that other generators/viewers may be used without departing from the scope of the present invention. For example, there are widely available 3D world generation tools for the C programming language known as AVRIL, and resulting worlds may be viewed with any VRML- 1  compliant viewer. As a further alternative, the JavaScript language supports 3D modelling. 
     The data for the 3D world contained in the pinefin 5 .htm web page is returned by the server as an SVR (Superscape Virtual Reality) file, pinefin 5 .svr. 
     The data is stored locally at the terminal The file type is identified by an appropriate MIME tag. The web page recognises the file type from the MIME tag and passes the data to the Viscape plug-in application. The application generates and displays, in this example, a 3D view of a domestic interior within a window in the frame on the right hand side. Movement control buttons are displayed at the bottom of the window. When selected with the mouse, these control buttons move the viewpoint for the 3D scene. 
     The 3D scene displayed in the right hand side frame includes a number of products from the catalogue of the retailer. In the present example, these objects include an upholstered chair, a carpet and curtains. Each of these objects is available in different fabrics. Initially these objects are displayed using a default fabric selection for each product. The SVR file includes an object for reading and displaying texture information. This object opens a file containing texture data, saves the data temporarily as a GIF file on the hard disk of the personal computer  1 , and then maps the texture onto a selected object displayed in the 3D scene, using the “Texture” argument of the “LSprite” function defined in the SCL language. 
     A second web page, Home.htm is displayed in a frame on the left hand side of the screen. This contains a display of 2D samples or swatches of fabrics or materials which are available for the products displayed in the right hand frame. A form linked to a search engine may be included, to allow the customer to select a fabric sample by name. Alternatively, the user can scroll through all the available samples. Marker icons are displayed beside each sample. The marker icons identify objects in the 3D scene. The top left hand sample in this frame is shown as an enlarged detail in FIG.  3 B. The relevant material is suitable for both curtains and for covering the upholstered chair. Accordingly, both a curtain marker  31  and a chair marker  32  are displayed with the sample. The user can select the fabric to be applied, for example to the chair, by clicking on the chair marker beside the fabric sample. The HTML document includes Javascript which detects the selection made by the user and sets the relevant marker parameter to a value which depends on which fabric was selected. This marker value is returned to the Viscape application where it is used to address an index of URL&#39;s (uniform resource locators) corresponding to texture data for different fabrics. A connection to the selected URL is then opened and the relevant texture file is downloaded and mapped onto the relevant object using the LSprite function, as described previously. The display of the 3D scene is immediately updated, so that the chair is shown finished in the newly selected fabric. This updating occurs automatically, without it being necessary to refresh the entire 3D frame. 
     It will be understood from the above description, that the HTML page in the left hand frame does not merely display fabric samples, but also functions actively to control the scene in the right hand frame, depending on input from the user. 
     An additional function performed by the left hand frame is the calculation of a total price for a product when covered in a selected fabric. A pricing data file includes values for the fabric lengths required for each object in the 3D scene, and a price per unit length for each fabric, and a base price for each object. A pricing function implemented in JavaScript then calculates the total price and displays this under the relevant sample, in response to the selection by the user of a relevant product cost icon  33 ,  34  shown underneath the sample. 
     After a final selection of finishes for all the objects in the 3D scene, the user may store the scene, including the selected surface finish data locally on the hard disk. The web browser may subsequently be pointed to the URL of another retailer or manufacturer. For example the web site of a paint manufacturer might be accessed. A new web page is then loaded into the left hand frame, to show a selection of different colour samples in different finishes (matt, gloss, silk etc.). These may then be selected by the user for walls or other features of the interior scene shown in the right hand frame. As described previously, the corresponding surface finish data is the imported into the 3D scene, which is modified accordingly, so that, for example, the walls are shown covered in the selected paint, together with the furniture shown in the fabrics selected at the first web site. Again, the left hand frame may include a pricing function to calculate the cost of a particular selection by the user, based, in this example, on the cost per unit volume of a selected paint, on the coverage required for the selected paint, and on the areas to which the paint is applied in the 3D scene. 
     FIG. 3 shows the screen display in the first example described above. A frame F 1  on the left hand side displays a number of 2D fabric samples s 1 -s 6 . The frame is bounded by a scroll bar SB. On the right hand side of the screen, a frame F 2  includes the 3D scene generated by the Viscape plug-in. The displayed objects include a curtains  301 , chair  302  and carpet  303 . Control buttons  305 ,  306 ,  307  move the viewpoint in 3 dimensions with respect to the scene, which changes correspondingly as the viewpoint moves. 
     FIG. 4 is a diagram showing an enlarged detail of the left hand frame. 
     FIG. 5 shows how the screen display is changed after the user has clicked on the curtain marker icon beside the sample s3, and has clicked on the chair marker icon beside sample s6, and the corresponding different surface finishes have been mapped onto the curtains and chair in frame F 2 . 
     Although described above in relation to an on-line furniture catalogue, it will be understood that the invention is applicable in a wide range of contexts. As a further example, manufacturers of high fidelity loudspeakers commonly offer their products in a wide range of wood veneers or other materials. The display in this case might include a 3D scene showing different speakers in a domestic setting, and a 2D display of samples of different veneers and materials which, when selected by the user, are mapped onto the speakers shown in the 3D scene. 
     As well as, or as an alternative to, using the left hand frame for the selection of surface finishes, it may be used to control the selection of objects for insertion in the 3D scene. For example, the user may first generate an empty 3D interior based on measurements of a room. Subsequently the user may access the on-line catalogue of a furniture retailer and may select objects, such as a chair, which are then downloaded and inserted in the 3D scene using the same mechanism as that adopted for downloading textures in the preceding examples. 
     The techniques described above may form part of an on-line trading operation, in which, after the selection of certain objects and finishes, the user places an order, for example via a form displayed in the left hand frame. Optionally, payment may be made on-line, for example using an encrypted credit card number, and the order may be processed automatically at the retailer, for example by transferring data identifying the object and finish, and the purchaser&#39;s address, to a warehouse, or to a manufacturing/assembly operation in the case where the desired item is not already in stock. 
     In a preferred implementation of the system described above, the HTML pages initially returned by the web server include product references for the 2D samples and for 3D objects. These product references are passed to the plug-in application. This application interfaces via a web socket to a CGI (computer gateway information) script running on the web server. In this way, the client/server interface of the plug-in application uses WWW (world wide web) protocols to interface via a socket to a CGI script, rather than using a dedicated listener. The CGI script returns the data for the 2D fabric samples to be displayed on the left hand side of the screen, and 3D data for the objects displayed in the 3D interior. The user may indicate a choice of, e.g., fabric for an object by dragging and dropping the 2D fabric sample onto the relevant object in the 3D interior. The plug-in application responds by returning to the server both the identity of the selected fabric and the identity of the object in the 3D interior. The server may check that the combination of object and fabric is valid before returning the texture data to the plug-in application. If the combination is not valid, then a message to this effect is returned for display on the terminal. Alternatively, the plug-in application may submit a request for the return of texture data as soon as the user begins to drag the fabric sample towards the 3D interior. This further reduces the time taken to respond to the user&#39;s selection. When the texture data is returned, the plug-in application maps the texture data onto the object displayed in the 3D interior. In this example, the module of the application which carries out this mapping, constitutes in combination with the viewer application, the “display generator” of the first aspect of the invention 
     A further feature of this implementation is that the display is arranged to switch between showing the 3D interior just within a frame on one side of the window, and showing the 3D interior full-frame. A switch is dispalyed in a footer at the bottom of the window. The application detects clicking on this switch by the user, and toggles between the two types of view accordingly.