3D game engine architecture - engineering real-time applications with wild magic

D. Eberly
{"title":"3D game engine architecture - engineering real-time applications with wild magic","authors":"D. Eberly","doi":"10.1201/9781482267310","DOIUrl":null,"url":null,"abstract":"* About the Author* Preface*Chapter 1 Introduction*1.1 Drawing a Triangle*1.2 Drawing a Triangle Mesh*1.3 Drawing a Complicated Scene*1.4 Abstraction of Systems*Chapter 2 Core Systems*2.1 The Low-Level System*2.1.1 Basic Data Structures*2.1.2 Encapsulating Platform-Specific Concepts*2.1.3 Endianness*2.1.4 System Time*2.1.5 File Handling*2.1.6 Memory Allocation and Deallocation*2.2 The Mathematics System*2.2.1 Basic Mathematics Functions*2.2.2 Fast Functions*2.2.3 Vectors*2.2.4 Matrices*2.2.5 Quaternions*2.2.6 Lines and Planes*2.2.7 Colors*2.3 The Object System*2.3.1 Run-Time Type Information*2.3.2 Names and Unique Identifiers*2.3.3 Sharing and Smart Pointers*2.3.4 Controllers*2.3.5 Streaming*2.3.6 Cloning*2.3.7 String Trees*2.3.8 Initialization and Termination*Chapter 3 Scene Graphs and Renderers*3.1 The Core Classes*3.1.1 Motivation for the Classes*3.1.2 Spatial Hierarchy Design*3.1.3 Instancing*3.2 Geometric State*3.2.1 Transformations*3.2.2 Bounding Volumes*3.2.3 The Core Classes and Geometric Updates*3.3 Geometric Types*3.3.1 Points*3.3.2 Line Segments*3.3.3 Triangle Meshes*3.3.4 Particles*3.4 Render State*3.4.1 Global State*3.4.2 Lights*3.4.3 Textures*3.4.4 Multitexturing*3.4.5 Effects*3.4.6 The Core Classes and Render State Updates*3.5 Renderers and Cameras*3.5.1 Camera Models*3.5.2 Basic Architecture for Rendering*3.5.3 Single-Pass Drawing*3.5.4 The DrawPrimitive Function*3.5.5 Cached Textures and Vertex Attributes*3.5.6 Global Effects and Multipass Support*Chapter 4 Advanced Scene Graph Topics*4.1 Level of Detail*4.1.1 Billboards*4.1.2 Display of Particles*4.1.3 Discrete Level of Detail*4.1.4 Continuous Level of Detail*4.1.5 Infinite Level of Detail*4.2 Sorting*4.2.1 Binary Space Partitioning Trees*4.2.2 Portals*4.2.3 Sorting Children of a Node*4.2.4 Deferred Drawing*4.3 Curves and Surfaces*4.3.1 Parametric Curves*4.3.2 Parametric Surfaces*4.3.3 Curve Tessellation by Subdivision*4.3.4 Surface Tessellation by Subdivision*4.4 Terrain*4.4.1 Data Representations*4.4.2 Level of Detail*4.4.3 Terrain Pages and Memory Management*4.5 Controllers and Animation*4.5.1 Keyframe Animation*4.5.2 Morphing*4.5.3 Points and Particles*4.5.4 Skin and Bones*4.5.5 Inverse Kinematics*Chapter 5 Advanced Rendering Topics*5.1 Special Effects Using the Fixed-Function Pipeline*5.1.1 Vertex Coloring*5.1.2 Single Textures*5.1.3 Dark Maps*5.1.4 Light Maps*5.1.5 Gloss Maps*5.1.6 Bump Maps*5.1.7 Environment Maps*5.1.8 Projected Textures*5.1.9 Planar Shadows*5.1.10 Planar Reflection*5.2 Special Effects Using Vertex and Pixel Shaders*5.2.1 Scene Graph Support*5.2.2 Renderer Support*5.2.3 Automatic Source Code Generation*Chapter 6 Collision Detection*6.1 Distance-Based Methods*6.1.1 A Plan of Attack*6.1.2 Root Finding Using Newton's Method*6.1.3 Root Finding Using Bisection*6.1.4 Hybrid Root Finding*6.1.5 An Abstract Interface for Distance Calculations*6.2 Intersection-Based Methods*6.2.1 An Abstract Interface for Intersection Queries*6.3 Line-Object Intersection*6.3.1 Intersections between Linear Components and Triangles*6.3.2 Intersections between Linear Components and Bounding Volumes*6.3.3 Picking*6.3.4 Staying on Top of Things*6.3.5 Staying Out of Things*6.4 Object-Object Intersection*6.4.1 Collision Groups*6.4.2 Hierarchical Collision Detection*6.4.3 Spatial and Temporal Coherence*Chapter 7 Physics*7.1 Numerical Methods for Solving Differential Equations*7.1.1 Euler's Method*7.1.2 Midpoint Method*7.1.3 Runge-Kutta Fourth-Order Method*7.1.4 Implicit Equations and Methods*7.2 Particle Physics*7.3 Mass-Spring Systems*7.3.1 Curve Masses*7.3.2 Surface Masses*7.3.3 Volume Masses*7.3.4 Arbitrary Configurations*7.4 Deformable Bodies*7.5 Rigid Bodies*7.5.1 The Rigid Body Class*7.5.2 Computing the Inertia Tensor*Chapter 8 Applications*8.1 Abstraction of the Application*8.1.1 Processing Command Line Parameters*8.1.2 The Application Class*8.1.3 The ConsoleApplication Class*8.1.4 TheWindowApplication Class*8.1.5 TheWindowApplication3 Class*8.2 Sample Applications*8.2.1 BillboardNode Sample*8.2.2 BspNode Sample*8.2.3 CachedArray Sample*8.2.4 Castle Sample*8.2.5 ClodMesh Sample*8.2.6 Collision Sample*8.2.7 InverseKinematics Sample*8.2.8 Portals Sample*8.2.9 ScreenPolygon Sample*8.2.10 SkinnedBiped Sample*8.2.11 SortFaces Sample*8.2.12 Terrain Sample*8.3 Sample Tools*8.3.1 3dsToWmof Importer*8.3.2 Maya Exporter*8.3.3 BmpToWmif Converter*8.3.4 WmifToBmp Converter*8.3.5 ScenePrinter Tool*8.3.6 SceneTree Tool*8.3.7 SceneViewer Tool*Appendix A Coding Conventions* A.1 File Naming and Organization* A.2 Comment Preamble and Separators* A.3 White Space* A.3.1 Indentation* A.3.2 Blank Lines* A.3.3 Function Declarators* A.3.4 Constructor Initializers* A.3.5 Function Calls* A.3.6 Conditionals* A.4 Braces* A.5 Pointer Types* A.6 Identifier Names* A.6.1 Variables* A.6.2 Classes and Functions* A.6.3 Enumerations* A.7 C++ Exceptions* A.8 Header File Organization* A.8.1 Include Guards and Nested Header Files* A.8.2 Minimizing Compilation Time* Bibliography* Index* About the CD-ROM","PeriodicalId":299217,"journal":{"name":"The Morgan Kaufmann series in interactive 3D technology","volume":"18 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-12-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"38","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"The Morgan Kaufmann series in interactive 3D technology","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1201/9781482267310","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 38

Abstract

* About the Author* Preface*Chapter 1 Introduction*1.1 Drawing a Triangle*1.2 Drawing a Triangle Mesh*1.3 Drawing a Complicated Scene*1.4 Abstraction of Systems*Chapter 2 Core Systems*2.1 The Low-Level System*2.1.1 Basic Data Structures*2.1.2 Encapsulating Platform-Specific Concepts*2.1.3 Endianness*2.1.4 System Time*2.1.5 File Handling*2.1.6 Memory Allocation and Deallocation*2.2 The Mathematics System*2.2.1 Basic Mathematics Functions*2.2.2 Fast Functions*2.2.3 Vectors*2.2.4 Matrices*2.2.5 Quaternions*2.2.6 Lines and Planes*2.2.7 Colors*2.3 The Object System*2.3.1 Run-Time Type Information*2.3.2 Names and Unique Identifiers*2.3.3 Sharing and Smart Pointers*2.3.4 Controllers*2.3.5 Streaming*2.3.6 Cloning*2.3.7 String Trees*2.3.8 Initialization and Termination*Chapter 3 Scene Graphs and Renderers*3.1 The Core Classes*3.1.1 Motivation for the Classes*3.1.2 Spatial Hierarchy Design*3.1.3 Instancing*3.2 Geometric State*3.2.1 Transformations*3.2.2 Bounding Volumes*3.2.3 The Core Classes and Geometric Updates*3.3 Geometric Types*3.3.1 Points*3.3.2 Line Segments*3.3.3 Triangle Meshes*3.3.4 Particles*3.4 Render State*3.4.1 Global State*3.4.2 Lights*3.4.3 Textures*3.4.4 Multitexturing*3.4.5 Effects*3.4.6 The Core Classes and Render State Updates*3.5 Renderers and Cameras*3.5.1 Camera Models*3.5.2 Basic Architecture for Rendering*3.5.3 Single-Pass Drawing*3.5.4 The DrawPrimitive Function*3.5.5 Cached Textures and Vertex Attributes*3.5.6 Global Effects and Multipass Support*Chapter 4 Advanced Scene Graph Topics*4.1 Level of Detail*4.1.1 Billboards*4.1.2 Display of Particles*4.1.3 Discrete Level of Detail*4.1.4 Continuous Level of Detail*4.1.5 Infinite Level of Detail*4.2 Sorting*4.2.1 Binary Space Partitioning Trees*4.2.2 Portals*4.2.3 Sorting Children of a Node*4.2.4 Deferred Drawing*4.3 Curves and Surfaces*4.3.1 Parametric Curves*4.3.2 Parametric Surfaces*4.3.3 Curve Tessellation by Subdivision*4.3.4 Surface Tessellation by Subdivision*4.4 Terrain*4.4.1 Data Representations*4.4.2 Level of Detail*4.4.3 Terrain Pages and Memory Management*4.5 Controllers and Animation*4.5.1 Keyframe Animation*4.5.2 Morphing*4.5.3 Points and Particles*4.5.4 Skin and Bones*4.5.5 Inverse Kinematics*Chapter 5 Advanced Rendering Topics*5.1 Special Effects Using the Fixed-Function Pipeline*5.1.1 Vertex Coloring*5.1.2 Single Textures*5.1.3 Dark Maps*5.1.4 Light Maps*5.1.5 Gloss Maps*5.1.6 Bump Maps*5.1.7 Environment Maps*5.1.8 Projected Textures*5.1.9 Planar Shadows*5.1.10 Planar Reflection*5.2 Special Effects Using Vertex and Pixel Shaders*5.2.1 Scene Graph Support*5.2.2 Renderer Support*5.2.3 Automatic Source Code Generation*Chapter 6 Collision Detection*6.1 Distance-Based Methods*6.1.1 A Plan of Attack*6.1.2 Root Finding Using Newton's Method*6.1.3 Root Finding Using Bisection*6.1.4 Hybrid Root Finding*6.1.5 An Abstract Interface for Distance Calculations*6.2 Intersection-Based Methods*6.2.1 An Abstract Interface for Intersection Queries*6.3 Line-Object Intersection*6.3.1 Intersections between Linear Components and Triangles*6.3.2 Intersections between Linear Components and Bounding Volumes*6.3.3 Picking*6.3.4 Staying on Top of Things*6.3.5 Staying Out of Things*6.4 Object-Object Intersection*6.4.1 Collision Groups*6.4.2 Hierarchical Collision Detection*6.4.3 Spatial and Temporal Coherence*Chapter 7 Physics*7.1 Numerical Methods for Solving Differential Equations*7.1.1 Euler's Method*7.1.2 Midpoint Method*7.1.3 Runge-Kutta Fourth-Order Method*7.1.4 Implicit Equations and Methods*7.2 Particle Physics*7.3 Mass-Spring Systems*7.3.1 Curve Masses*7.3.2 Surface Masses*7.3.3 Volume Masses*7.3.4 Arbitrary Configurations*7.4 Deformable Bodies*7.5 Rigid Bodies*7.5.1 The Rigid Body Class*7.5.2 Computing the Inertia Tensor*Chapter 8 Applications*8.1 Abstraction of the Application*8.1.1 Processing Command Line Parameters*8.1.2 The Application Class*8.1.3 The ConsoleApplication Class*8.1.4 TheWindowApplication Class*8.1.5 TheWindowApplication3 Class*8.2 Sample Applications*8.2.1 BillboardNode Sample*8.2.2 BspNode Sample*8.2.3 CachedArray Sample*8.2.4 Castle Sample*8.2.5 ClodMesh Sample*8.2.6 Collision Sample*8.2.7 InverseKinematics Sample*8.2.8 Portals Sample*8.2.9 ScreenPolygon Sample*8.2.10 SkinnedBiped Sample*8.2.11 SortFaces Sample*8.2.12 Terrain Sample*8.3 Sample Tools*8.3.1 3dsToWmof Importer*8.3.2 Maya Exporter*8.3.3 BmpToWmif Converter*8.3.4 WmifToBmp Converter*8.3.5 ScenePrinter Tool*8.3.6 SceneTree Tool*8.3.7 SceneViewer Tool*Appendix A Coding Conventions* A.1 File Naming and Organization* A.2 Comment Preamble and Separators* A.3 White Space* A.3.1 Indentation* A.3.2 Blank Lines* A.3.3 Function Declarators* A.3.4 Constructor Initializers* A.3.5 Function Calls* A.3.6 Conditionals* A.4 Braces* A.5 Pointer Types* A.6 Identifier Names* A.6.1 Variables* A.6.2 Classes and Functions* A.6.3 Enumerations* A.7 C++ Exceptions* A.8 Header File Organization* A.8.1 Include Guards and Nested Header Files* A.8.2 Minimizing Compilation Time* Bibliography* Index* About the CD-ROM
3D游戏引擎架构-工程实时应用与狂野的魔力
*作者简介*前言*第一章导论*1.1绘制三角形*1.2绘制三角形网格*1.3绘制复杂场景*1.4系统抽象*第二章核心系统*2.1底层系统*2.1.1基本数据结构*2.1.2封装平台特定概念*2.1.3端序性*2.1.4系统时间*2.1.5文件处理*2.1.6内存分配和释放*2.2数学系统*2.2.1基本数学函数*2.2.2快速函数*2.2.3向量*2.2.4矩阵*2.2.5四元数*2.2.6线和平面*2.2.7颜色*2.3对象系统*2.3.1运行时类型信息*2.3.2名称和唯一标识符*2.3.3共享和智能指针*2.3.4控制器*2.3.5流*2.3.6克隆*2.3.7字符串树*2.3.8初始化和终止*第三章场景图和渲染器*3.1核心类*3.1.1类的动机*3.1.2空间层次设计*3.1.3实例化*3.2几何状态*3.2.1转换*3.2.2边界卷*3.2.3核心类和几何更新*3.3几何类型*3.3.1点*3.3.2线段*3.3.3三角网格*3.3.4粒子*3.4渲染状态*3.4.1全局状态*3.4.2灯光*3.4.3纹理*3.4.4多纹理*3.4.5效果*3.4.6核心类和渲染状态更新*3.5渲染器和相机*3.5.1相机模型*3.5.2渲染基本架构*3.5.3单通道绘图*3.5.4 DrawPrimitive函数*3.5.5缓存纹理和顶点属性*3.5.6全局效果和多通道支持*章节4高级场景图主题*4.1细节级别*4.1.1广告牌*4.1.2粒子显示*4.1.3离散细节级别*4.1.4连续细节级别*4.1.5无限细节级别*4.2排序*4.2.1二叉空间划分树*4.2.2门户*4.2.3节点子节点排序*4.2.4延迟绘图*4.3曲线和曲面*4.3.1参数曲线*4.3.2参数曲面*4.3.3曲线细分细分*4.3.4表面细分细分*4.4地形*4.4.1数据表示*4.4.2细节级别*4.4.3地形页面和内存管理*4.5控制器和动画*4.5.1关键帧动画*4.5.2变形*4.5.3点和粒子*4.5.4皮肤和骨骼*4.5.5逆运动学*第五章高级渲染主题*5.1使用固定函数管道的特效*5.1.1顶点着色*5.1.2单一纹理*5.1.3暗贴图*5.1.4光贴图*5.1.5光泽贴图*5.1.6凹凸贴图*5.1.7环境贴图*5.1.8投影纹理*5.1.9平面阴影*5.1.10平面反射*5.2使用顶点和像素着色器的特殊效果*5.2.1场景图支持*5.2.2渲染器支持*5.2.3自动源代码生成*第六章碰撞检测*6.1基于距离的方法*6.1.1攻击计划*6.1.2使用牛顿法查找根*6.1.3使用平分法查找根*6.1.4混合查找根*6.1.5用于距离计算的抽象接口*6.2基于交叉点的方法*6.2.1用于交叉点查询的抽象接口*6.3线对象相交*6.3.1线性分量与三角形的相交*6.3.2线性分量与边界体的相交*6.3.3拾取*6.3.4保持在物体顶部*6.3.5保持在物体之外*6.4物体与物体相交*6.4.1碰撞组*6.4.2层次碰撞检测*6.4.3时空相干性*第七章物理*7.1求解微分方程的数值方法*7.1.1欧拉法*7.1.2中点法*7.1.3龙格-库塔四阶方法*7.1.4隐式方程和方法*7.2粒子物理*7.3质量-弹簧系统*7.3.1曲线质量*7.3.2表面质量*7.3.3体积质量*7.3.4任意配置*7.4可变形体*7.5刚体*7.5.1刚体类*7.5.2计算惯性张量*第八章应用*8.1应用抽象*8.1.1处理命令行参数*8.1.2应用类*8.1.3控制台应用类*8.1.4窗口应用类*8.1.5TheWindowApplication3类*8.2样例应用*8.2.1 BillboardNode样例*8.2.2 BspNode样例*8.2.3 CachedArray样例*8.2.4 Castle样例*8.2.5 ClodMesh样例*8.2.6碰撞样例*8.2.7 InverseKinematics样例*8.2.8 Portals样例*8.2.9 ScreenPolygon样例*8.2.10 SkinnedBiped样例*8.2.11 SortFaces样例*8.2.12 Terrain样例*8.3样例工具*8.3.1 3dsToWmof Importer*8.3.2 Maya出口商*8.3.3 BmpToWmif Converter*8.3.4 WmifToBmp Converter*8.3.5 ScenePrinter Tool*8.3.6 SceneTree附录A编码约定*A .1文件命名和组织*A .2注释序言和分隔符*A .3空格*A .3.1缩进*A .3.2空白行*A .3.3函数声明符*A .3.4构造函数初始化器*A .3.5函数调用*A .3.6条件*A .4大括号*A .5指针类型*A .6标识符名称*A .6.1变量*A .6.2类和函数*A .6.3枚举*A .7 c++异常*A .8头文件组织*A .8.1包括保护和嵌套头文件*如文件。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信