Real-Time Graphics Rendering Engine reveals the software architec-ture of the modern real-time 3D graphics rendering engine and the relevant technologies based on the authors experience developing this high-performance, real-time system. The relevant knowledge about real-time graphics rendering such as the rendering pipeline,the visual appearance and shading and lighting models are also introduced. This book is intended to offer well-founded guidance for researchers and developers who are interested in building their own rendering engines.
作者簡介
Hujun Bao is a professor at the State Key Lab of Computer Aided Design and Computer Graphics, Zhejiang University, China.Dr. Wei Hua is an associate professor at the same institute.
圖書目錄
1 Introduction 1.1 Scene Graph Management 1.2 Scene Graph Traverse 1.3 Rendering Queue 1.4 Rending Modle 2 Basics of Real-Time Rendering 2.1 Rendering Pipeline 2.1.1 Conceptual Rendering Phases 2.1.2 Programmable Rendering Pipeline 2.1.3 Geometry Transforms 2.2 Shading 2.2.1 Rendering Equation 2.2.2 Lighting 2.2.3 BRDF 2.2.4 Light Transport 2.3 Summary References 3 Architecture of Real-Time Rendering Engine 3.1 Overview 3.2 Basic Data Type 3.2.1 Single-Field Data Type 3.2.2 Multiple-Field Data Type 3.2.3 Persistent Pointer: TAddress<> 3.3 Basics of Scene Model 3.4 Entity 3.5 Feature 3.5.1 IAttributedObject and IFeature 3.5.2 IBoundedObject 3.5.3 IChildFeature 3.5.4 Subclasses of IGroupingFeature 3.5.5 Subclasses of IShapeFeature 3.5.6 IAnimatedFeature 3.5.7 Subclasses of ILightFeature 3.5.8 Subclasses of IBindableFeature 3.5.9 IGeometryFeature 3.5.10 IAppearanceFeature and RelatedFeatures 3.6 Scene Graph 3.7 Spatial Index 3.7.1 Relation Schema A 3.7.2 Relation Schema B 3.8 Scene Model Schema 3.9 Scene Model Interface and Implementation 3.9.1 Scope of Name and ID 3.9.2 Transaction 3.9.3 Scene Storage 3.9.4 Reference and Garbage Collection 3.9.5 Data Visit and Cache 3.9.6 Out-of-Core Entity 3.9.7 ISceneModel 3.9.8 ISceneStorage 3.9.9 Implementation of ISceneModel andISceneStorage 3.10 Scene Manipulator 3.10.1 Manipulator Functions 3.10.2 Usage of Scene Model Manipulator 3.11 Traversing Scene Model 3.11.1 Traverse via Iterator 3.11.2 Traverse via Visitor 3.12 Rendering Engine 3.12.1 CRenderingEngine 3.12.2 The Composition of theCRenderingEngine 3.13 Render Queue and Its Manager 3.14 Camera Manager 3.15 GPU Resources and Its Manipulator 3.15.1 Texture Resource 3.15.2 Buffer Resource 3.15.3 Shader Program 3.15.4 GPU Resource Manipulator 3.16 Render Target and Its Manager 3.17 Render Control Unit 3.18 Pre-render and Its Manager 3.18.1 IPreRender 3.18.2 CPreRenderManager 3.19 Render Pipelines and Its Manager 3.19.1 IRenderPipeLine 3.19.2 Modular Render Pipeline 3.19.3 Render Module 3.19.4 CRenderPipelineManager 3.20 Examples of Pre-render 3.20.1 CVFCullingPreRender 3.20.2 CMirrorPreRender 3.20.3 COoCEntityLoader 3.20.4 CFeatureTypeClassifier 3.20.5 CRenderQueueElementProcessor 3.20.6 CLightCullingPreRender 3.21 Examples of Modular Render Pipeline and RenderModule 3.21.1 CShapeRenderPipeline 3.21.2 CShapeRenderModule 3.22 Implementation Details of CRenderingEngine 3.22.1 Configure 3.22.2 Initialize 3.22.3 DoRendering 3.22.4 OpenSceneModel 3.23 Conclusion References 4 Rendering System for Multichannel Display 4.1 The Overview of Parallel Rendering 4.1.1 Client-Server 4.1.2 Master-Slave 4.2 The Architecture of a Cluster-Based RenderingSystem 4.3 Rendering System Interface 4.3.1 vxlRenderingSystem 4.3.2 vxlModel 4.3.3 vxIUI 4.3.4 The Basic Example 4.4 Server Manager 4.4.1 Functionality 4.4.2 Structure 4.4.3 CServerManager 4.4.4 CServiceRequestManager 4.4.5 CServiceRequestTranslator 4.4.6 CServiceRequestSender 4.4.7 CSystemStateManager, CScreenState andCRenderServerState 4.4.8 CServiceRequestSRThreadPool 4.4.9 IServiceRequest and Subclasses 4.5 Implementation of Rendering System Interface 4.5.1 Implementation Principles 4.5.2 Example 1: Startup System 4.5.3 Example 2: Open Scene Model 4.5.4 Example 3: Do Rendering and SwapBuffer 4.6 Render Server and Server Interface 4.7 Application: the Immersive Presentation System for UrbanPlanning 4.7.1 System Deployment 4.7.2 Functionality References 5 Optimal Representation and Rendering for Large-ScaleTerrain 5.1 Overview 5.1.1 LOD Model of Terrain 5.1.2 Out-of-Core Techniques 5.2 Procedural Terrain Rendering 5.2.1 An Overview of Asymptotic FractionalBrownian Motion Tree 5.2.2 afBm-Tree Construction 5.2.3 Procedural Terrain Rendering 5.2.4 Application 5.3 Conclusion References 6 Variational OBB-Tree Approximation for Solid Objects 6.1 Related Work 6.2 The Approximation Problem of an OBB Tree 6.3 Solver for OBB Tree 6.3.1 Computation of Outside Volume for SingleBounding Box ... 6.3.2 Solver for OBB Tree 6.4 Experiments and Results 6.5 Conclusion References Index