1. Field of the Invention
The invention described herein relates to computer graphics systems in a networked environment.
2. Related Art
Computer graphics processing can generally be broken down into four functional areas. First, a computer graphics application must be executing. Second, a user's input must be provided to the application, in order to control the graphics process. Third, a renderer must generate data that represents an image, based on instructions received from the computer graphics application. Fourth, the image generated by the renderer must be displayed or otherwise output. In a traditional architecture, all four of these functions are performed at a single computer or work station. The computer graphics application executes on the computer based on inputs provided locally by the user. The rendering process, in turn, acts on instructions received from the computer graphics application, and produces data corresponding to an image. This data is then used in generation of an image that is displayed locally.
While this architecture represents the traditional approach, there are disadvantages. For example, in an environment where there are multiple users, every user requires each of these four components. Every user requires an input mechanism, such as a keyboard, a mouse, a light pen, or other input device(s), and some form of interface for the graphics application. In addition, each user requires a copy of the computer graphics application, as well as dedicated rendering resources. Finally, each user requires his own display or other output device.
Given multiple users, one way to satisfy these requirements would be to provide a graphics workstation for every user. This is expensive and potentially wasteful, especially if not every user is performing significant computer graphics processing. Any given user's computer graphics application may be sitting idle for much of the time. Likewise, the user's rendering logic will also be sitting idle for much of the time. In this arrangement, resources are therefore being used inefficiently. In addition, if an update is required to, say, the computer graphics application, every user must be updated for reasons of compatibility. If one instance of the application is upgraded, every copy of that application must be upgraded. This can be a great expense, especially in an enterprise environment.
Hence, there is a need for a design and a design approach for computer graphics architectures where these limitations are overcome. In particular, a design and design approach are needed wherein the resulting architecture features efficient use of resources, and configuration management is not burdensome.
The invention described herein is a system and method for networked computer graphics, wherein the functional components of the system are all separable from one another across a network. Each of these four components—a computer graphics application, user input functionality for the application, a graphics renderer, and a display for a rendered image—is allocated to its own network component, separate from the other components.
The invention allows, for example, a user in one location to provide input to a desired computer graphics application that may be executing elsewhere. The computer graphics application may then have rendering performed by a renderer that is located at another location, e.g., centrally to the network. The display may be in yet another location, e.g., a distant conference room or a classroom. Such a system can be referred to as a Visual Area Network (VAN).
Further embodiments, features, and advantages of the present invention, as well as the structure and operation of the various embodiments of the present invention, are described below with reference to the accompanying drawings.
A preferred embodiment of the present invention is now described with reference to the figures, where like reference numbers indicate identical or functionally similar elements. Also in the figures, the left most digit of each reference number corresponds to the figure in which the reference number is first used. While specific configurations and arrangements are discussed, it should be understood that this is done for illustrative purposes only. A person skilled in the relevant art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of the invention. It will be apparent to a person skilled in the relevant art that this invention can also be employed in a variety of other systems and applications.
Computer graphics processing is illustrated generally in
User input functionality, the graphics application, the renderer and the display can be viewed as separable but communicating components of the computer graphics processing system. This is shown in
Graphics application 220 is also in communication with rendering logic 230. This allows rendering of an image, based on instructions received by rendering logic 230 from the graphics application 220. Rendering logic 230 then creates an image that is forwarded to display 240. Examples of graphics application 220 include drawing software, animation software, CAD (computer aided design) software, CAM (computer aided manufacturing) software, simulator software, and any other computer program that generates pictorial, video or graphical output.
This functional separability can be achieved in a design approach in which each of these four functions is implemented in its own network component. One example of a computer graphics system implemented according to this design approach is illustrated in
As would be known to persons of skill in the art, connectivity between components can be implemented by a network infrastructure comprising cable or wireless connections, or any combination thereof, that can be switched, routed, or direct. This is shown generally in
In one embodiment, a network component can be a sub-network of computers. A “sub-network” is a network of computers that is in communication with the network that interconnects the four components (e.g., input, application, rendering or display) of the computer graphics system of the invention. The function (e.g., input, application, rendering or display) to be performed by the sub-network can be distributed across two or more computers of the sub-network. The results of such sub- or distributed computing can then be composited by one of the computers in the sub-network.
The process of such a design approach is illustrated in
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to a person skilled in the relevant art that various changes in detail can be made therein without departing from the spirit and scope of the invention. Thus, the present invention should not be limited by way of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.