Summary: | High-performance computer graphics is becoming more demanding due to the increasing use of large 3D scenes. The visibility determination is one of the fundamental computational problems in computer graphics. In the past couple of decades many researchers developed a variety of visibility determination algorithms such as visibility scanline algorithms, distributed ray tracing and output sensitive visibility algorithms to determine the hidden parts of a complex 3D scene. If hidden surface determination can be solved in a cost-effective way, the overall system performance will be improved dramatically. If not, it may become a bottleneck in terms of performance. One of the main aims of this dissertation is to give a solution to the rendering problem using a scanline-based distributed system to increase rendering power. The features of this system are to use the processing power of idle processors over the network to balance workload and reduce communication overhead. The system does not use any extra resources (memory or graphics processing unit (GPU) chips) to handle large data sets. Using a network of workstations, the proposed system could be more powerful than a GPU and binary swap compositing for high-performance graphics. Visibility computation, clipping and transformation are the basic functions required for rendering a static scene. The visibility computations exhibit a quadratic growth rate. If the number of objects or depth of the scene increases, the computational requirement can easily exceed to the performance of a single processor. Polygon clipping has a growth rate of N log N in the worst case where N is the total number of edges in the scene. The time requirement for transformations grows linearly with the input size. This dissertation presents the requirement of real-time rendering of 3D scenes and a few approaches, including parallel techniques, to speed up the rendering process. All existing visibility scanline algorithms – including the new one proposed within this thesis – are presented and discussed with respect to their potential for use in the context of distributed systems for the visualisation of large data sets. The proposed scanline algorithm has many advantages, including: using real values obtained by the intersection of a 3D scene with the plane of the scanline as input; and running time that does not depend on the resolution over the Z-tree scanline algorithm. Z-tree, Warnock, Priority Queue and proposed algorithm have been implemented in C/C++ and Java program to show how they compute visibility in a 2D scene. Design issues of all scanline algorithms and tuning cache parameters (without knowing them) to minimise cache misses and data movement among multiple levels of caches have been presented in the light of cache-oblivious algorithms. The cache-oblivious scanline algorithms have been optimised for use within a distributed system. The system performance can be increased by the careful consideration of locality of cache reference, instruction-level parallelism, branch prediction and memory hierarchies found in modern computers. A new scanline-based approach for the distribution of workload among several servers and gathering processed data for the visualisation of large data sets is proposed in this thesis. Based on this approach, a prototype scanline-based distributed system has been developed and tested over three servers giving input of line segments from 100 to 3,000 over 500 × 500 and 3,000 × 3,000 pixels visualisation area; and is demonstrated with its system operation and compression techniques in order to handle large data sets. While considering the efficiency of the algorithms asymptotic analysis is often used. However, asymptotic analysis cannot take into consideration the constant factors that could be different in different environments. Therefore, the author developed a portable test bed for the comparative evaluation of the actual performance of the algorithms for the application of geometric algorithms (line-clipping and few scanline algorithms). For this thesis, experimental evaluation of geometric algorithms is important to design, implement and test from different perspectives and then choose the best one for high-performance computer graphics system. Through experimental evaluation of line-clipping algorithm, the author found that clock cycle counting is more accurate than using elapsed-time functions provided by system software. The author also implemented, measured and evaluated running time of Z-tree, Warnock, Priority Queue and new Sorting and Ranking (SR) scanline algorithms for 1 to 5,000 line segments with 500 × 500 pixels, for 1 to 25,000 line segments with 3,000 × 3,000 pixels and for 1 to 250,000 line segments with 100,000 × 100,000 pixels visualisation area. An evaluation technique based on best sustained performance is proposed in the thesis as well. To conclude, this thesis presents new tools and techniques, including a scanline-based distributed systemand its operation for the visualisation of very large data sets without any additional cost.
|