Graphics Reference
In-Depth Information
Network
Communication
LoD Changer
Application (“Plant”)
Rendering API
Hardware
FIGURE 7.2
(See colour insert.) The high-level design of the rendering application.
essential software modules include the network communication and level-of-detail
(LoD) control blocks. LoD blocks are just example and may well be replaced with
other blocks capable of varying the rendering load to alter system output.
The layered structure of the design in Figure  7.2 illustrates a service-oriented
approach; each layer makes use of the service offered by the layer below it. While the
network communication and LoD changer blocks interact with the main application
(real-time rendering process), the main application makes use of the rendering API
residing in the operating system. Furthermore, the rendering API then utilises the
computer hardware to perform the final rendering functions that lead to the genera-
tion of visible pixels on a display device.
To exemplify the application design shown in Figures  7.1 and 7.2, we draw a
direct reference to this architecture with the C++ code of the application used in
Experiment 3 in Section 3.6.3 (see also Annex A). The following correspondences to
the architecture are highlighted:
1. Two threads instead of one, each dedicated to sending data and receiv-
ing data from the network as shown by SendDataThreadFunction and
ReceiveDataThreadFunction .
2. The LoD changer block is synonymous with SetTriangleCount , SetShader-
Complexity , and SetNumVertices functions.
3. The application makes use of the DirectX-rendering API to provide
hardware-accelerated rendering in real time.
Possible architectural abstractions —So far, we described implementation
designs for the controller at the application level, that is, the controller is in either
process or thread form. Despite this, it is certainly possible to have different abstrac-
tions for the implementation of the controller:
1. The controller may be implemented as an API for users to integrate directly
into their existing real-time rendering application.
2. The controller may be integrated into the LoD function in rendering
applications. The appeal of this implementation is that the user has no
need to handle programming interfaces; the control mechanism is fully
automated. One possibility is to have the controller deeply embedded in
short programs that are loaded into the graphics processor during run-
time [1].
Search WWH ::




Custom Search