GRAPHICS SYSTEM

Abstract: A graphics system comprises an input device (31); a detector for detecting movement of the input device relative to a surface (5); and display apparatus for displaying patterns which follow movement of the input device to simulate the creation of patterns on a surface with a drawing instrument. A store (21) for storing characteristics defining a number of drawing instruments and control means for selecting drawing instruments from the store to be utilized by the display means during movement of the input device whereby more than one drawing instrument can be utilized during a single movement of the input device.

Description: GRAPHICS SYSTEM The invention relates to a graphics system comprising an input device; means for detecting movement of the input device relative to a surface; and display means for displaying patterns which follow movement of the input device to simulate the creation of patterns on a surface with a drawing instrument. Such a system is hereinafter referred to as of the kind described. Systems of the kind described have been developed during the last few years but one of the major drawbacks of current systems is that they are unable to simulate accurately the effect of painting on a canvas. In accordance with the present invention, a graphics system of the kind described is characterised in that the system further comprises a store for storing characteristics defining a number of drawing instruments and control means for selecting drawing instruments from the store to be utilized by the display means during movement of the input device whereby more than one drawing instrument can be utilized during a single movement of the input device. We have devised a new approach in which the brush or drawing instrument form is not fixed during a painting operation but varies in a controlled manner. This enables the system to simulate the effect of wetness for example. Thus, typically, as paint is laid down on a canvas along a path which varies from a dry region to a wet region, the area covered by paint will be smaller in the dry region than in the wet region. This is the nature of painting in watercolours. This can be simulated by causing the brush or drawing instrument to have different characteristics depending upon the location of the drawing instrument relative to the canvas or surface on which the input device is being moved. Examples of brush characteristics include: a) 2-dimensional overall size b) 3-dimensional shape (ie.2D size & height, the latter representing density) c) single colour or texture colours d) overall density limit (ie.a scaling factor applied to limit max.density) e) a combinational algorithm. In one application the drawing instruments are selected in accordance with elapsed time since commencement of an input device movement. This enables effects such as paint being used up on a brush to be simulated. Typically, the beginning of a movement will be set to occur when the input device touches the surface and the end of a movement when the input device is lifted from the surface. In another application, the system further comprises a control store for storing control values which vary with position and which select corresponding drawing instruments from the drawing instrument store. Conveniently, the control store is formed by a conventional mask store. In typical graphics systems of the kind described, a so-called mask store is provided which controls for example non-destructive mixing between images for display. In the present invention, this store can be utilised to provide a control store holding a control value for each pixel in the image, the control values defining the drawing instruments to be used at each position. This enables the effect of wetness to be simulated since the drawing instruments can be defined so as to have characteristics corresponding to the effect of painting over wet paint, for example. In a further example, drawing instruments could be selected from the store in accordance with the pressure exerted by the input device on the surface. An example of a graphics system according to the invention will now be described with reference to the accompanying drawings, in which:- Figure 1 is a block diagram of the apparatus; Figure 2 is a block diagram of a graphics image processor of Figure 1; and Figure 3 illustrate diagramatically the manner in which a display pattern varies in accordance with the degree of wetness. The apparatus shown in Figure 1 can be divided into two primary parts. These comprise the host l and the graphics sub-system 2. The division is shown in Figure 1 by a dashed line. The host 1 is a 68020 microprocessor based system running UNIX which is a multi-tasking, multi-user operating system. The host comprises an I/O processor 3 coupled to a keyboard 4, a digitizing tablet 5 and associated pen 31, a system disk 6 and other data sources (not shown) . The I/O processor 3 is connected to a system inter-connect bus (SIB) 7 which is connected to ROM and RAM memory 8, a CPU 9, and an interface adapter 10. The interface adapter 10 is connected to a number of high speed image discs 11 which hold data defining the colour content of pixels of images at high resolution, the adapter also being connected via an interface 12 with the graphics sub-system 2. As mentioned above, the host has a conventional form and will hot be described in detail. However, the SIB 7 is described in more detail in EP-A-0332417. The programme that runs on the host is a single "process" .which reads and processes inputs from the digitizing tablet 5 under operator control and directs the graphics part 2 to display the host's responses to those inputs on the graphics monitor 30. Essentially, the system takes advantage of the host system in being able to perform a majority of the calculations so that only a small amount of control data is passed to the graphics sub-system. This graphics part 2 is much better than the host 1 at creating and manipulating graphical objects but the host is better at controlling input/output to peripherals, discs and tapes and is relatively easy to programme. The graphics sub-system 2 comprises an interface 13 which connects the graphics part to the host 1, the interface 13 being connected to a bus 14. The bus 14 is connected to five graphics image processors (GIPs) 15-19. In this embodiment, it is assumed that the images are defined by four colour components, namely cyan, magenta, yellow and black, there being a separate GIP for each colour. Thus, the GIP 15 processes the cyan colour component, the GIP 16 the magenta colour component, the GIP 17 the yellow colour component and the GIP 18 the black colour component. If the image was represented by a different number of colour components, for example red, green and blue then only three of the GIPs would be needed plus a mask GIP as mentioned below. The advantage of providing the GIPs 15-18 in parallel is that each component of each pixel in the image can be processed in parallel so that the overall processing time is reduced by up to four times over the processing time with a single processor. A further advantage of using the GIPs is that each has a bit-slice processor on which the programmer can define instructions useful for a particular application. A fifth GIP 19 is provided for defining one or more masks and other features such as menus. The construction of one of the GIPs of Figure 1 is shown in Figure 2. Each GIP comprises a bit-slice processor 20 coupled to bulk memory 21. This memory 21 will hold image data, brush profiles and text as reguired and is used as virtual image memory. The bit-slice processor 20 is also connected to a pair of framestores 22, 23 each of which has dimensions 1280x1024 and is 8 bits deep. In the GIPs 15-18, each framestore will hold 8 bit colour data while in the mask GIP 19 each framestore can be used to hold 8 bit masks or two separate 4 bit masks. Furthermore, one of the framestores in the GIP 19 can be used to display menus in one four bit plane and overlays in the other four bit plane. Overlays comprise construction lines and boxes and the like which are to be displayed on the monitor. The eight bit data in each framestore 22, 23 is applied in four bit "nibbles" to respective scroll, amplify and zoom circuits 24-27 which operate in a conventional manner to perform one or more of the functions of scroll, zoom and amplify, the outputs from these circuits being fed to a mixer circuit 28. The circuit 28 mixes the data from each of the framestores 22 associated with the GIPs 15-18 with the data from each of the frame stores 23 associated with the GIPs 15-18 in accordance with the mask stored in the framestore 22 of the GIP 19. This mixer circuit which operates in two stages is described in more detail in EP-A-0344976. The output from the mixer circuit 28 is fed to a two stage colour converter 29 which converts the four colour component data to three colour component data e.g. red, green and blue suitable for controlling the display on a monitor screen 30. In use, images are stored on the high speed image disks 11 and these images may have been generated by scanning original transparencies or other representations or they may have been created electronically using an electronic paint brush. The host 1 causes relevant portions of these images to be "paged" in and out of the bulk memory 21 in the GIPs 15-18 and brush characteristics to be loaded and unloaded from the bulk memory 21 in the GIP 19. The interface adaptor 10 has its own 68020 processor to allow it independently to control the disks 11. The GIPs 15-18 are directed by the host 1 to do various things to images in the bulk memory 21 so that when a GIP attempts to access an address in an image that is not currently in its bulk memory then part of that memory is written back to disc and a new portion read in. After the GIPs have finished processing, the data in the framestores is then scrolled, zoomed and/or amplified as necessary, mixed in the circuit 28, converted to monitor format and then displayed. If the host 1 wishes to display menus on the screen, these are drawn into one four bit plane of the mask GIP framestore 23, known as the "overlay plane". In normal paint mode, the operator selects a paint brush profile which, for example, may define a Gaussian distribution and this profile is stored in a special portion of each bulk memory 21 of the GIPs 15-19. The operator then "paints" by moving the pen 31 across the tablet 5 and the location of the pen is monitored by the host 1 which then instructs the GIPs 15-18 to load the respective framestores 22 with paint data. Thus, at each position of the pen 31 the GIPs compute the data value to be located in each pixel covered by the brush raster within the appropriate framestore 22 in accordance with the well known formula New Pixel Value = (1-α) x Old Pixel Value + α x Paint value where alpha is a factor lying in the range 0-1 and is obtained by multiplying a corresponding value defined by the brush profile with a percentage value selected by the operator which defines the maximum percentage of paint which can be used in this operation. The new pixel value is written into the framestore 22 and automatically copied into the appropriate bulk memory 21. The contents of the framestores 22, 23 of each GIP 15- 18 are mixed and displayed as previously explained under the control of the data stored in the mask framestore 22 (of the GIP 19) . In conventional electronic painting no account is taken of the effect of wetness of the paint being laid down. As explained above in a conventional painting operation, the bulk memories 21 of the GIPs 15-19 hold a raster defining the current brush profile or characteristics. In the present invention, each bulk memory 21 holds a range of brush profile rasters of which there will be at least two and often many more. The exact number will depend on space constraints. The different profiles are then used under the control of data stored in the mask framestore 22 of the GIP 19 to provide, in this example, the effect of wetness. Thus, initially the operator will define the wetness of the canvas on which he wishes to paint. This is most conveniently done by painting with a suitably selected brush profile directly into the framestore 22 of the GIP 19 in a conventional way so that the framestore 22 of the GIP 19 holds "paint" values defining a monochrome variation typically in the range 0-255. These values are subsequently taken to be "wetness" values and associated with respective brush profiles stored in the bulk memory 21. For example, the framestore 22 of the GIP 19 will hold values "0" for those pixels corresponding to a completely dry area of the canvas while values of "255" will be held for those pixels having the highest degree of wetness. Each control or wetness value is associated via a look up table with a particular brush profile. Typically, the profile will be relatively small for relatively dry areas and increase in size as wetness increases. In addition, the density function defined by the brush can also be varied depending upon the wetness, for example gaussians of different degree. During a subsequent painting operation, "paint" is stored in the framestores 23 of the GIPs 15-18 in a conventional manner. However, the GIPs 15-18 in calculating the distribution of paint laid down into the framestores 23 perform an additional step of determining from the mask framestore 22 which set of brush characteristics is to be used by reference to the centre pixel of the next brush position. Figure 3 illustrates an example of this in a limited case of just three brush profiles. The Figure illustrates the mask framestore 22 of the GIP 19 in dashed lines 40. This effectively defines the canvas and as can be seen, this canvas is divided into a dry area 41, a wet area 42, and an intermediate or damp area 43. These areas have previously been defined as described above by painting directly into the mask framestore 22. Figure 3 also illustrates the passage of a brush across the canvas corresponding to suitable movement of the pen 31 as recorded in the framestores 23. As can be seen, initially the two dimensional brush profile 44 is relatively compact as the brush passes through the dry region 41. As the brush passes into the damp region 43, the brush profile switches to a more diffuse form 45 and as the brush passes into the wet region 42, the profile becomes large and spikey simulating the effect of running paint 46. As the brush passes out of the wet region 42 the profile returns to the form shown at 45 and thereafter in the dry region 41 to the form 44. The monitor 30 displays the result by mixing the images in the framestores 22,23 of the GIPs 15-18 under the control of a mask in the framstore 23 of the GIP 19. The operator can then, if he wishes, store the displayed picture by "grabbing back" the displayed picture into the framestore 22 and hence the bulk memories of the GIPs 15-18 and clearing the framestores 23. Clearly, the use of the mask framestore 22 in this way leads to a large variety of different effects which can be achieved simply by re-assigning the brush characteristics which are indexed by the mask values. It should be noted that changes between characteristics can be achieved in real time as the pen 31 moves across the tablet 5 since the rasters are stored in the bulk memory 21. If the user changes the painting mode such that brushing "water" into the mask store is re- enabled, a water-colour technique of "re-wetting the canvas is simulated. There are many other effects that can be simulated along these lines. For example: 1) The user may wish to grab-back the currently displayed image (a video-mixed combination of paint and image) and "fix it" as a single permanent image into a framestore and move on to some other mode. Because there are two mask framestores, one can be used for control data that is overlayed on the monitor (but won't form part of the image) and the other to determine the video mix between the paint store and the image store for the monitors. 2) The user may instead add more paint to the paint store, using the existing mask data to control wetness. This could be saved permanently, as in (1) above. 3) Since the tracks of brush strokes are stored as journal data, automatic rebrushing over the wet paint with different brushes is possible. This process would be stopped by user intervention at any point and the image saved if required as in (1) . 4) The user could add wetness into the mask store by brushing into it with a merge or dye brush. On returning to normal paint mode, he could then apply steps (2) and/or (3). 5) If the user were to apply an etch brush to the mask store, this would change the control data, and (2) or (3) could apply. Again the image would be saved as in (l) .

Claims: CLAIMS 1. A graphics system comprising an input device; means for detecting movement of the input device relative to a surface; and display means for displaying patterns which follow movement of the input device to simulate the creation of patterns on a surface with a drawing instrument characterised in that the system further comprises a store for storing characteristics defining a number of drawing instruments and control means for selecting drawing instruments from the store to be utilized by the display means during movement of the input device whereby more than one drawing instrument can be utilized during a single movement of the input device. 2. A system according to claim 1, wherein the drawing instruments are selected in accordance with elapsed time since commencement of an input device movement. 3. A system according to claim 1, further comprising a control store for storing control values which vary with position and which select corresponding drawing instruments from the drawing instrument store.

Inventors: FREEMAN STEPHEN, FREEMAN, STEPHEN
Applicants: CROSFIELD ELECTRONICS LTD, CROSFIELD ELECTRONICS LIMITED
Application year: 1991
Main classification: G06F15
IPC codes: G06T5, G06T11