3d基础第8章
- 格式:ppt
- 大小:928.50 KB
- 文档页数:67


第8章基础及土方工程计价8.1桩基础工程计价[能力点描述]通过本章的学习,学生应掌握基础及土方工程计量与计价的方法,能正确运用所学理论知识进行基础及土方工程计量与计价。
8.1.1相关说明1.主要有桩身和桩承台构成。
桩基础按所使用的材料有钢筋混凝土桩、钢管桩、钢板桩和木桩等。
限于教材篇幅,本章主要介绍混凝土桩的计价方法。
2.相关概念(1)接桩一般钢筋混凝土预制桩长都不超过30m,若过长对桩的起吊和运输等都将带来很多不便,所以如果打入桩很长时,一般都是分段预制。
打桩时先把第一段打至地面,再采取某种技术措施,把第二段与第一段连接牢固后,继续向下打入土中,这种连接的过程接桩,其连接方式一般有焊接法和粘接法。
(2)送桩打桩中要求将桩顶面打到低于桩架操作平台时,或者设计要求将桩顶面打入自然地面以下时,打桩机的桩锤就不可能直接触击到桩头,必须借助工具桩接到桩顶上以传递桩锤的力量,将桩打到规定的位置,这个借助工具桩完成打桩的过程就叫送桩。
(3)复打桩(扩大灌注桩)复打桩是为了增加灌注单桩的承载能力,采用扩大灌注单桩截面的方法,即在第一次灌注桩的混凝土灌筑到桩顶设计标高,拔出桩管后,清除外壁上的污泥和桩孔周围地面上的浮土,立即在原桩位再埋设桩尖或合好桩管活页尖,作第二次沉管,使未凝固的混凝土向四周挤压扩大桩径,然后二次灌注混凝土,二次灌注混凝土的桩称为复打桩。
3、在计算预制钢筋混凝土桩的预算工程量时,应在图示工程量的基础上考虑构件制作废品率、构件运输及安装的损耗率(见表8.1)。
= A×(1+0.10%+0.40%+1.50%)= A×1.02预制桩的运输工程量=A×(1+运输损耗率+打桩损耗率)=A×(1+0.40%+1.50%)=A×1.019预制桩的打桩工程量=A×(1+打桩损耗率)=A×(1+1.50%)=A×1.015式中:A-------预制桩按设计图示尺寸计算出的图示工程量。
本书是游戏编程畅销书作者André LaMothe的扛鼎之作,从游戏编程和软件引擎的角度深入探讨了3D图形学的各个重要主题。
全书共分5部分,包括16章的内容。
第1~3章简要地介绍了Windows和DirectX编程,创建了一个Windows应用程序模板,让读者能够将精力放在游戏逻辑和图形实现中,而不用考虑Windows和DirectX方面的琐事;第4~5章简要地介绍了一些数学知识并实现了一个数学库,供以后编写演示程序时使用;第6章概述了3D图形学,让读者对本书将介绍的内容有大致的了解;第7~11章分别介绍了光照、明暗处理、仿射纹理映射、3D裁剪和深度缓存等内容;第12~14章讨论了高级3D渲染技术,包括透视修正纹理映射、Alpha混合、1/z缓存、纹理滤波、空间划分和可见性算法、阴影、光照映射等;第15~16章讨论了动画、运动碰撞检测和优化技术。
本书适合于有一定编程经验并想从事游戏编程工作或对3D图形学感兴趣的人员阅读。
作者:拉莫泽译者目录:第一部分3D游戏编程简介第1章3D游戏编程入门21.1简介21.22D/3D游戏的元素31.2.1初始化31.2.2进入游戏循环31.2.3读取玩家输入41.2.4执行AI和游戏逻辑41.2.5渲染下一帧41.2.6同步显示41.2.7循环41.2.8关闭51.3通用游戏编程指南71.4使用工具91.4.13D关卡编辑器121.4.2使用编译器131.5一个3D游戏范例:Raiders 3D151.5.1事件循环331.5.2核心3D游戏逻辑341.5.33D投影351.5.4星空361.5.5激光炮和碰撞检测371.5.6爆炸371.5.7玩Raiders3D371.6总结37第2章Windows和DirectX简明教程382.1Win32编程模型382.2Windows程序的最小需求392.3一个基本的Windows应用程序432.3.1Windows类432.3.2注册Windows类472.3.3创建窗口472.3.4事件处理程序482.3.5主事件循环522.3.6构建实时事件循环552.4DirectX和COM简明教程562.4.1HEL和HAL572.4.2DirectX基本类582.5COM简介592.5.1什么是COM对象602.5.2创建和使用DirectX COM接口612.5.3查询接口622.6总结64第3章使用虚拟计算机进行3D游戏编程653.1虚拟计算机接口简介653.2建立虚拟计算机接口663.2.1帧缓存和视频系统663.2.2使用颜色703.2.3缓存交换713.2.4完整的虚拟图形系统733.2.5I/O、声音和音乐733.3T3DLIB游戏控制台743.3.1T3DLIB系统概述743.3.2基本游戏控制台743.4T3DLIB1库793.4.1DirectX图形引擎体系结构793.4.2基本常量793.4.3工作宏813.4.4数据类型和结构813.4.5函数原型843.4.6全局变量883.4.7DirectDraw接口893.4.82D多边形函数923.4.9数学函数和错误函数973.4.10位图函数993.4.118位调色板函数1023.4.12实用函数1043.4.13BOB(Blitter对象)引擎1063.5T3DLIB2 DirectX输入系统1123.6T3DLIB3声音和音乐库1163.6.1头文件1173.6.2类型1173.6.3全局变量1173.6.4DirectSound API封装函数1183.6.5DirectMusic API封装函数1213.7建立最终的T3D游戏控制台1243.7.1映射真实图形到虚拟接口的非真实图形124 3.7.2最终的T3DLIB游戏控制台1263.8范例T3LIB应用程序1343.8.1窗口应用程序1343.8.2全屏应用程序1353.8.3声音和音乐1363.8.4处理输入1363.9总结139第二部分3D数学和变换第4章三角学、向量、矩阵和四元数1424.1数学表示法1424.22D坐标系1434.2.12D笛卡尔坐标1434.2.22D极坐标1444.33D坐标系1474.3.13D笛卡尔坐标1474.3.23D柱面坐标1494.3.33D球面坐标1504.4三角学1514.4.1直角三角形1514.4.2反三角函数1534.4.3三角恒等式1534.5向量1544.5.1向量长度1554.5.2归一化1554.5.3向量和标量的乘法1554.5.4向量加法1564.5.5向量减法1574.5.6点积1574.5.7叉积1594.5.8零向量1604.5.9位置和位移向量1604.5.10用线性组合表示的向量161 4.6矩阵和线性代数1614.6.1单位矩阵1624.6.2矩阵加法1634.6.3矩阵的转置1634.6.4矩阵乘法1644.6.5矩阵运算满足的定律165 4.7逆矩阵和方程组求解1654.7.1克来姆法则1674.7.2使用矩阵进行变换1684.7.3齐次坐标1694.7.4应用矩阵变换1704.8基本几何实体1764.8.1点1764.8.2直线1764.8.3平面1794.9使用参数化方程1824.9.12D参数化直线1824.9.23D参数化直线1844.10四元数简介1894.10.1复数理论1894.10.2超复数1934.10.3四元数的应用1974.11总结200第5章建立数学引擎2015.1数学引擎概述2015.1.1数学引擎的文件结构2015.1.2命名规则2025.1.3错误处理2035.1.4关于C++的最后说明2035.2数据结构和类型2035.2.1向量和点2035.2.2参数化直线2045.2.33D平面2065.2.4矩阵2065.2.5四元数2095.2.6角坐标系支持2105.2.72D极坐标2105.2.83D柱面坐标2115.2.93D球面坐标2115.2.10定点数2125.3数学常量2135.4宏和内联函数2145.4.1通用宏2185.4.2点和向量宏2185.4.3矩阵宏2195.4.4四元数2205.4.5定点数宏2215.5函数原型2215.6全局变量2245.7数学引擎API清单2255.7.1三角函数2255.7.2坐标系支持函数2265.7.3向量支持函数2285.7.4矩阵支持函数2355.7.52D和3D参数化直线支持函数245 5.7.63D平面支持函数2485.7.7四元数支持函数2525.7.8定点数支持函数2595.7.9方程求解支持函数2635.8浮点单元运算初步2655.8.1FPU体系结构2665.8.2FPU堆栈2665.8.3FPU指令集2685.8.4经典指令格式2705.8.5内存指令格式2715.8.6寄存器指令格式2715.8.7寄存器弹出指令格式2715.8.8FPU范例2715.8.9FLD范例2725.8.10FST范例2725.8.11FADD范例2735.8.12FSUB范例2755.8.13FMUL范例2765.8.14FDIV范例2785.9数学引擎使用说明2795.10关于数学优化的说明2805.11总结280第6章3D图形学简介2826.13D引擎原理2826.23D游戏引擎的结构2826.2.13D引擎2836.2.2游戏引擎2836.2.3输入系统和网络2846.2.4动画系统2846.2.5碰撞检测和导航系统2876.2.6物理引擎2886.2.7人工智能系统2896.2.83D模型和图像数据库2896.33D坐标系2916.3.1模型(局部)坐标2916.3.2世界坐标2936.3.3相机坐标2966.3.4有关相机坐标的说明3026.3.5隐藏物体(面)消除和裁剪3036.3.6透视坐标3086.3.7流水线终点:屏幕坐标3156.4基本的3D数据结构3216.4.1表示3D多边形数据时需要考虑的问题322 6.4.2定义多边形3236.4.3定义物体3276.4.4表示世界3306.53D工具3316.6从外部加载数据3326.6.1PLG文件3336.6.2NFF文件3356.6.33D Studio文件3386.6.4Caligari COB文件3436.6.5Microsoft DirectX .X文件3456.6.63D文件格式小结3456.7基本刚性变换和动画3456.7.13D平移3456.7.23D旋转3466.7.33D变形3476.8再看观察流水线3486.93D引擎类型3496.9.1太空引擎3496.9.2地形引擎3506.9.3FPS室内引擎3516.9.4光线投射和体素引擎3526.9.5混合引擎3536.10将各种功能集成到引擎中3536.11总结353第7章渲染3D线框世界3547.1线框引擎的总体体系结构3547.1.1数据结构和3D流水线3557.1.2主多边形列表3577.1.3新的软件模块3597.2编写3D文件加载器3597.3构建3D流水线3677.3.1通用变换函数3677.3.2局部坐标到世界坐标变换3727.3.3欧拉相机模型3757.3.4UVN相机模型3777.3.5世界坐标到相机坐标变换3877.3.6物体剔除3907.3.7背面消除3937.3.8相机坐标到透视坐标变换3957.3.9透视坐标到屏幕(视口)坐标变换3997.3.10合并透视变换和屏幕变换4037.4渲染3D世界4057.53D演示程序4087.5.1单个3D三角形4087.5.23D线框立方体4117.5.3消除了背面的3D线框立方体4137.5.43D坦克演示程序4147.5.5相机移动的3D坦克演示程序4167.5.6战区漫步演示程序4187.6总结421第三部分基本3D渲染第8章基本光照和实体造型4248.1计算机图形学的基本光照模型4248.1.1颜色模型和材质4268.1.2光源类型4328.2三角形的光照计算和光栅化4378.2.1为光照做准备4418.2.2定义材质4428.2.3定义光源4458.3真实世界中的着色4498.3.116位着色4498.3.28位着色4508.3.3一个健壮的用于8位模式的RGB模型4508.3.4一个简化的用于8位模式的强度模型4538.3.5固定着色4578.3.6恒定着色4598.3.7Gouraud着色概述4728.3.8Phong着色概述4748.4深度排序和画家算法4758.5使用新的模型格式4798.5.1分析器类4798.5.2辅助函数4828.5.33D Studio MAX ASCII格式.ASC4848.5.4TrueSpace ASCII.COB格式4868.5.5Quake II二进制.MD2格式概述4948.63D建模工具简介4958.7总结497第9章插值着色技术和仿射纹理映射4989.1新T3D引擎的特性4989.2更新T3D数据结构和设计4999.2.1新的#defines4999.2.2新增的数学结构5019.2.3实用宏5029.2.4添加表示3D网格数据的特性5039.2.5更新物体结构和渲染列表结构5089.2.6函数清单和原型5119.3重新编写物体加载函数5179.3.1更新.PLG/PLX加载函数5179.3.2更新3D Studio .ASC加载函数5279.3.3更新Caligari .COB加载函数5289.4回顾多边形的光栅化5329.4.1三角形的光栅化5329.4.2填充规则5359.4.3裁剪5379.4.4新的三角形渲染函数5389.4.5优化5429.5实现Gouraud着色处理5439.5.1没有光照时的Gouraud着色5449.5.2对使用Gouraud Shader的多边形执行光照计算553 9.6基本采样理论5609.6.1一维空间中的采样5609.6.2双线性插值5619.6.3u和v的插值5639.6.4实现仿射纹理映射5649.7更新光照/光栅化引擎以支持纹理5669.8对8位和16位模式下优化策略的最后思考571 9.8.1查找表5719.8.2网格的顶点结合性5729.8.3存储计算结果5729.8.4SIMD5739.9最后的演示程序5739.10总结576第10章3D裁剪57710.1裁剪简介57710.1.1物体空间裁剪57710.1.2图像空间裁剪58010.2裁剪算法58110.2.1有关裁剪的基本知识58110.2.2Cohen-Sutherland裁剪算法58510.2.3Cyrus-Beck/梁友栋-Barsky裁剪算法586 10.2.4Weiler-Atherton裁剪算法58810.2.5深入学习裁剪算法59010.3实现视景体裁剪59110.3.1几何流水线和数据结构59210.3.2在引擎中加入裁剪功能59310.4地形小议61110.4.1地形生成函数61210.4.2生成地形数据61910.4.3沙地汽车演示程序61910.5总结623第11章深度缓存和可见性62411.1深度缓存和可见性简介62411.2z缓存基础62611.2.1z缓存存在的问题62711.2.2z缓存范例62711.2.3平面方程法63011.2.4z坐标插值63111.2.5z缓存中的问题和1/z缓存63211.2.6一个通过插值计算z和1/z的例子63311.3创建z缓存系统63511.4可能的z缓存优化64911.4.1使用更少的内存64911.4.2降低清空z缓存的频率65011.4.3混合z缓存65111.5z缓存存在的问题65111.6软件和z缓存演示程序65211.6.1演示程序I:z缓存可视化65211.6.2演示程序II:Wave Raider65311.7总结658第四部分高级3D渲染第12章高级纹理映射技术66012.1纹理映射——第二波66012.2新的光栅化函数66712.2.1最终决定使用定点数66712.2.2不使用z缓存的新光栅化函数668 12.2.3支持z缓存的新光栅化函数67012.3使用Gouruad着色的纹理映射671 12.4透明度和alpha混合67712.4.1使用查找表来进行alpha混合678 12.4.2在物体级支持alpha混合功能688 12.4.3在地形生成函数中加入alpha支持69412.5透视修正纹理映射和1/z缓存69612.5.1透视纹理映射的数学基础69612.5.2在光栅化函数中加入1/z缓存功能702 12.5.3实现完美透视修正纹理映射70712.5.4实现线性分段透视修正纹理映射710 12.5.5透视修正纹理映射的二次近似714 12.5.6使用混合方法优化纹理映射71812.6双线性纹理滤波71912.7Mipmapping和三线性纹理滤波724 12.7.1傅立叶分析和走样简介72512.7.2创建Mip纹理链72712.7.3选择mip纹理73412.7.4三线性滤波73912.8多次渲染和纹理映射74012.9使用单个函数来完成渲染工作74112.9.1新的渲染场境74112.9.2设置渲染场境74312.9.3调用对渲染场境进行渲染的函数74512.10总结753第13章空间划分和可见性算法75413.1新的游戏引擎模块75413.2空间划分和可见面判定简介75413.3二元空间划分75713.3.1平行于坐标轴的二元空间划分75813.3.2任意平面空间划分75913.3.3使用多边形所在的平面来划分空间760 13.3.4显示/访问BSP树中的每个节点76213.3.5BSP树数据结构和支持函数76313.3.6创建BSP树76513.3.7分割策略76713.3.8遍历和显示BSP树77513.3.9将BSP树集成到图形流水线中78413.3.10BSP关卡编辑器78513.3.11BSP的局限性79313.3.12使用BSP树的零重绘策略79413.3.13将BSP树用于剔除79513.3.14将BSP树用于碰撞检测80213.3.15集成BSP树和标准渲染80213.4潜E.5微软公司的Direct X 多媒体展示?80813.4.2潜在可见集的其他编码方法809 13.4.3流行的PVS计算方法81013.5入口81113.6包围体层次结构和八叉树81313.6.1使用BHV树81513.6.2运行性能81613.6.3选择策略81713.6.4实现BHV81813.6.5八叉树82513.7遮掩剔除82513.7.1遮掩体82613.7.2选择遮掩物82613.7.3混合型遮掩物选择方法82713.8总结827第14章阴影和光照映射82814.1新的游戏引擎模块82814.2概述82814.3简化的阴影物理学82914.4使用透视图像和广告牌来模拟阴影83214.4.1编写支持透明功能的光栅化函数83314.4.2新的库模块83514.4.3简单阴影83714.4.4缩放阴影83914.4.5跟踪光源84114.4.6有关模拟阴影的最后思考84414.5平面网格阴影映射84514.5.1计算投影变换84514.5.2优化平面阴影84814.6光照映射和面缓存技术简介84814.6.1面缓存技术85014.6.2生成光照图85014.6.3实现光照映射函数85114.6.4暗映射(dark mapping)85314.6.5光照图特效85414.6.6优化光照映射代码85414.7整理思路85414.8总结854第五部分高级动画、物理建模和优化第15章3D角色动画、运动和碰撞检测85815.1新的游戏引擎模块85815.23D动画简介85815.3Quake II .MD2文件格式85915.3.1.MD2文件头86115.3.2加载Quake II .MD2文件86815.3.3使用.MD2文件实现动画87415.3.4.MD2演示程序88215.4不基于角色的简单动画88315.4.1旋转运动和平移运动88315.4.2复杂的参数化曲线移动88515.4.3使用脚本来实现运动88515.53D碰撞检测88715.5.1包围球和包围圆柱88715.5.2使用数据结构来提高碰撞检测的速度88815.5.3地形跟踪技术88915.6总结890第16章优化技术89116.1优化技术简介89116.2使用Microsoft Visual C++和Intel VTune剖析代码892 16.2.1使用Visual C++进行剖析89216.2.2分析剖析数据89316.2.3使用VTune进行优化89416.3使用Intel C++编译器89916.3.1下载Intel的优化编译器90016.3.2使用Intel编译器90016.3.3使用编译器选项90116.3.4手工为源文件选择编译器90116.3.5优化策略90216.4SIMD编程初步90216.4.1SIMD基本体系结构90316.4.2使用SIMD90316.4.3一个SIMD 3D向量类91216.5通用优化技巧91816.5.1技巧1:消除_ftol()91816.5.2技巧2:设置FPU控制字91816.5.3技巧3:快速将浮点变量设置为零91916.5.4技巧4:快速计算平方根91916.5.5技巧5:分段线性反正切92016.5.6技巧6:指针递增运算92016.5.7技巧7:尽可能将if语句放在循环外面92116.5.8技巧8:支化(branching)流水线92116.5.9技巧9:数据对齐92116.5.10技巧10:将所有简短函数都声明为内联的92216.5.11参考文献92216.6总结922第六部分附录附录A光盘内容简介CD: 924附录B安装DirectX和使用Visual C/C++CD: 925B.1安装DirectXCD: 925B.2使用Visual C/C++编译器CD: 925B.3编译提示CD: 926附录C三角学和向量参考CD: 927C.1三角学CD: 927C.2向量CD: 929C.2.1向量长度CD: 930C.2.2归一化CD: 930C.2.3标量乘法CD: 930C.2.4向量加法CD: 931C.2.5向量减法CD: 931C.2.6点积CD: 932C.2.7叉积CD: 933C.2.8零向量CD: 934C.2.9位置向量CD: 934C.2.10向量的线性组合CD: 934附录DC++入门CD: 935D.1C++是什么CD: 935D.2必须掌握的C++知识CD: 937D.3新的类型、关键字和约定CD: 937D.3.1注释符CD: 937D.3.2常量CD: 937D.3.3引用型变量CD: 938D.3.4即时创建变量CD: 938D.4内存管理CD: 939D.5流式输入/输出CD: 939D.6类CD: 941D.6.1新结构CD: 941D.6.2一个简单的类CD: 942D.6.3公有和私有CD: 942D.6.4类的成员函数(方法)CD: 943D.6.5构造函数和析构函数CD: 944D.6.6编写构造函数CD: 945D.6.7编写析构函数CD: 946D.7域运算符CD: 947D.8函数和运算符重载CD: 948D.9基本模板CD: 950D.10异常处理简介CD: 951D.11总结CD: 954附录E游戏编程资源CD: 955E.1游戏编程和新闻网站CD: 955E.2下载站点CD: 955E.32D/3D引擎CD: 956E.4游戏编程书籍CD: 956E.5微软公司的Direct X 多媒体展示CD: 956 E.6新闻组CD: 957E.7跟上行业的步伐CD: 957E.8游戏开发杂志CD: 957E.9Quake资料CD: 957E.10免费模型和纹理CD: 957E.11游戏网站开发者CD: 957附录FASCII码表CD: 959。