vii TABLE OF CONTENTS CHAPTER TITLE DECLARATION DEDICATION ACKNOWLEDGEMENT ABSTRACT ABSTRAK TABLE OF CONTENTS LIST OF TABLES LIST OF FIGURES LIST OF ABBREVIATIONS LIST OF SYMBOLS LIST OF APPENDICES PAGE ii iii iv v vi vii xi xii xvi xvii xviii 1 INTRODUCTION 1.1 Introduction 1.2 Problem Background 1.3 Problem Statement 1.4 Aims 1.5 Objectives 1.6 Research Justification 1.7 Scope and Research Limitations 1.8 Thesis Organization 1 1 3 7 8 9 9 10 10 2 LITERATURE REVIEW 2.1 Introduction 2.2 History of Driving Simulator 2.3 Driving Simulator and Its Application 2.4 Key Elements in Driving Simulator 2.5 Real-Time Rendering in Driving Simulator 12 12 13 15 19 21 viii 3 4 2.6 The Graphics Rendering Pipeline 2.7 3D Scene Management 2.7.1 Spatial Data Structures 2.7.1.1 Bounding Volume Hierarchy (BVH) 2.7.1.2 Binary Space Partitioning Tree 2.7.1.3 kD-tree 2.7.1.4 Octree 2.7.2 Level of Detail (LOD) 2.7.3 Visibility Culling 2.7.3.1 Back-Face Culling 2.7.3.2 View Frustum Culling 2.7.3.3 Occlusion Culling 2.8 Previous Works in Online Occlusion Culling Algorithm 2.8.1 Hierarchical Z-Buffering 2.8.2 Hierarchical Occlusion Map 2.8.3 Hardware Occlusion Queries 2.9 Discussion 23 26 27 28 29 30 30 31 32 33 34 35 36 37 38 39 41 RESEARCH METHODOLGY 3.1 Introduction 3.2 Development Processes of UTM Driving Simulator 3.2.1 Simulation Physic of a Car 3.2.2 Rendering Methods for 3D Driving Simulation Environment 3.2.2.1 Pre-processing 3.2.2.2 Online Processing 3.2.3 Hardware and Software Specifications 3.3 Experimental Setup of Proposed Algorithm 3.3.1 Environment Settings 3.4 Summary 44 44 46 48 ADAPTIVE COHERENCE HIERACHICAL CULLING 4.1 Introduction 4.2 Coherent Hierarchical Culling 4.3 Adaptive Coherence Hierarchical Culling based on the Speed of Car Movement and Varying Visibility Threshold Values 4.3.1 Speed of Car Movement 51 53 62 66 67 67 72 75 75 76 78 80 ix 5 6 REFERENCES 4.3.2 Varying Visibility Thresholds 4.3.3 The Proposed Adaptive Algorithm 4.4 Summary 82 87 89 RESULT AND DISCUSSION 5.1 Introduction 5.2 Evaluation of the Proposed Method 5.2.1 Rendering Performance 5.2.2 Realism of Rendering 5.3 Evaluation of Rendering Performance in View Frustum Culling 5.4 Rendering Performance Evaluation to the Implementation of Coherent Hierarchical Culling Algorithm 5.5 Rendering Performance Evaluation to the Implementation of the Proposed Adaptive Algorithm Based on Speed of Car Movement 5.6 Rendering Performance Evaluation of the Proposed Adaptive Algorithm Based on Speed of Car Movement and Varying Visibility Threshold Values 5.7 Realism Evaluation of the Original CHC Algorithm 5.8 Realism Evaluation of the Proposed Adaptive CHC Algorithm 5.9 Discussion 5.10 Summary 91 91 92 92 93 CONCLUSION AND FUTURE WORKS 6.1 Research Summary 6.2 Contribution 6.3 Future Works 6.3.1 Static and Dynamic Objects 6.3.2 GPU-Based Techniques 6.3.3 Game Engine Integration 6.3.4 Other Parameters 94 98 101 103 105 105 108 111 112 112 114 115 115 115 116 116 117 x Appendix A 124 xi LIST OF TABLES TABLE NO. TITLE 2.1 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 4.1 Previous algorithm on hardware occlusion queries features. Physic Algorithm. Typical chuck structure Octree Algorithm. View Frustum Culling Algorithm. Algorithm to create cube bounding box. Hardware occlusion queries algorithm. Hierarchical stop and wait method. Hardware and software specifications. 3D models triangles count. Parameters for application specifications. Coherent Hierarchical Culling algorithm. PAGE 41 52 54 59 61 63 64 65 66 70 72 79 xii LIST OF FIGURES FIGURE NO. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 TITLE Antoinette is first training rig for flight simulator (Slob, 2008). Low level fidelity of driving simulator. Medium level fidelity of driving simulator. High level fidelity of driving simulator Functional elements in driving simulator. The evolution of visual system in driving simulator over years (Allen et al., 2010). Human-in-the-Loop (Human-in-the-Loop (HITL)) architecture in driving simulator (Liao, 2006) Elements in a 3D object. High details to low details 3D model with varying number of faces. A scene geometry in driving simulator environment. Rendering 3D objects concept (Moller et al., 2008). Rendering pipeline. Object hierarchies verse space subdivision (Mattausch, 2010). Bounding sphere hierarchy and its object hierarchy representation. (Moller et al., 2008). BSP tree. (Moller et al., 2008). kD-tree. (Moller et al., 2008). Octree subdivision. (Moller et al., 2008). A rabbit model is simplified. (Moller et al., 2008). Creating levels of detail or LODs to reduce the rendering cost based on contribution of geometry. (Moller et al., 2008). PAGE 14 17 17 18 19 20 22 23 24 24 25 26 28 29 29 30 31 31 32 xiii 2.20 2.21 2.22 2.23 2.24 2.25 2.26 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 A frame that has high depth complexity.. (Moller et al., 2008). View frustum, backface culling and occlusion culling. (Staffans, 2006). View vector and normal vector to perform back-face culling. (Zamri, 2006). Hierarchical view frustum culling. (Moller et al., 2008). The hierarchical Z-buffer. (Greene et al., 1993). The hierarchical occlusion map. (Zhang et al., 1997). Research focus area for the literature reviews. Research methodology Steps for creating a driving simulator (Jia et al., 2007) UTM Driving simulator. Software design. Hardware architecture. Simulation of physic car on road surfaces Create mass of car. Create box geometry for collision detection. Pre-processing process and online processing integration Pre-processing process Hierarchical fashion of used chucks Class Cload3DS handle loading code. Reading Chunk ID and Model information to store to 3D database. Constructing hierarchical scene processes. Partioning space in octree. Six plane of view frustum (Zamri, 2006) Fill mode bounding volumes issued to GPU. Integration hierarchical structure and hardware occlusion queries. Steering Wheel. Straight road in testing area using hierarchical octree subdivision in Scene 1. Hill and curvy road in testing area of Scene 2. Inside view from car’s driver. Outside view shows the cars involve in road Two models used as dynamic moving objects. Number of rendered cars difference based on number lanes used in Scene 1. 32 33 34 35 38 39 43 45 47 48 49 50 50 51 51 53 54 55 55 56 57 58 60 63 65 66 68 69 69 70 71 73 xiv 3.26 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 Difference number of cars used in Scene 2. Diagram of the CHC algorithm. Queue concepts. CHC process. Diagram of the adaptive CHC algorithm. Speed of car movement and varying visibility threshold parameters used in adaptive algorithm. Scene in city driving and open highway (Vehicles and Motor, 2006). Distance culling based on look ahead distance of the car. Changes of threshold affect number of cars rendered. Normal visibility threshold and varying visibility thresholds. Level 1 of without cascaded visibility threshold based on certain distances. Level 2 of cascaded visibility threshold based on certain distances. Level 3 of cascaded visibility threshold based on certain distances. Level 4 of cascaded visibility threshold based on certain distances. Adaptive algorithm based on distance of drivers look ahead and automatic varying visibility thresholds to CHC algorithm. View frustum culling with default length of far plane. Visual output resulted from view frustum culling. Rendered car against car speed in the Scene 1. Rendered car in 1000 frame numbers in Scene 2. Frame per second against car speed driven by user in Scene 1. Frame per second against frames numbers in Scene 2. Rendered cars against car speed driven by user in Scene 1. Rendered cars against car speed driven by user in the Scene 2. Rendering performances between previous and integrated CHC implementation in Scene 1. Rendering performances between previous and integrated CHC implementation in Scene 2. 74 76 77 78 80 81 82 83 84 85 86 86 87 87 89 94 95 96 96 97 98 99 99 100 101 xv 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 Rendered cars against car speed driven by user in Scene 1 with and without distance culling. Rendering performances between integrated CHC and adaptive algorithm based look ahead distance implementation in Scene 1. Number of rendered cars against speed of car in performing varying visibility thresholds. FPS against speed of car in performing varying visibility thresholds. Visual output resulted from CHC algorithm. Visual output resulted from CHC algorithm with look ahead distance based on speed to perform distance culling. Visual output resulted from CHC algorithm with Level 2 of varying visibility thresholds. Visual output resulted from Coherent Hierarchical Culling (CHC) algorithm with level 3 of varying visibility thresholds. Visual output resulted from CHC algorithm with level 4 of varying visibility thresholds. 102 103 104 104 106 107 108 109 110 xvi LIST OF ABBREVIATIONS VR – virtual reality fps – frame per second PVS – potential visibility set TC – Temporal Coherence 3D – three-dimensional CHC – Coherent Hierarchical Culling PVS – potential visibility set HZB – Hierarchical Z-buffer HOM – Hierarchical Occlusion Maps NOHC – Near Optimal Hierarchical Culling HITL – Human-in-the-Loop DOF – Degree of Freedom NOHC – Near Optimal Hierarchical Culling CHC++ – Coherent Hierarchical Culling Revisited xvii LIST OF SYMBOLS x – X axis y – Y axis z – Z axis xviii LIST OF APPENDICES APPENDIX A PAGE LIST OF PUBLICATION 124