版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3D 游戏引擎中的室外大场景渲染技术研究和实现3D 游戏特别是网络在线游戏中,室外大场景渲染是一块非常重要的内容,它也是 3D 图形 引擎的核心。 它是图形学和图像处理理论最直接的使用, 其涉及的技术还可以使用于其它领 域,比如虚拟现实、 3D GIS 、数据可视化等,其重要性不容置疑。随着硬件的不断发展, 行业对渲染场景的规模和真实感提出了更高的要求。第四章 场景的真实感渲染技术第三章讨论了怎样有效绘制地形的三角形面片,关于怎么在面片上表现真实的地表(草地、沙粒 ),以及怎么表现光照、天空、植物等,这一系列问题涉及的就是场景的真实感渲 染技术。纹理映射技术4.1.1 概念在游戏设计中, 由于
2、客观世界千变万化、 错综复杂, 要把真实世界的各种细微结构直接 用几何模型表示出来,不仅模型难以建立,而且计算量庞大, 难以满足实时显示的需要,比 如一张曲面可以用许多微小的多边形 (或曲面片 )表示其表面细节,假定每个微小多边形具有 近似相同的表面特征,要显示这样一个曲面,就必须对这些微小多边形(或曲面片 )进行分别处理, 这将需要大量的存储空间和处理时间, 因此在实际使用中, 为了获得比较高的显示速 度,往往以牺牲图形的真实感为代价。 尽管这样, 显示一幅比较复杂的图像仍然需要很长时 间。于是,人们就想象是否可以用 “贴墙纸 的方法将反映物体表面的细节的图案贴到物体表 面,从而开辟了一个新
3、的研究领域一纹理映射 (Texture Mappirig) 。处理过程如下图:纹理映射的方式主要分为三种:颜色纹理映射: 最简单和最基本的使用是将一幅花纹图案映射到物体表面, 采用和表面 上点的位置有关的值 (如:参数曲面上一点的参数值 )来确定纹理坐标并采样包含图案的纹 理,采样值用定义该点的颜色。 通过此类方法在图案和表面点之间建立的固定联系, 不会因 视线的改变而改变。 当花纹或图案绘上之后, 表面仍光滑如故,这种纹理称为颜色纹理,形 如在物体表面绘制了一些花纹图案。凸凹纹理映射:根据粗糙表面的光反射原理,通过一个扰动函数扰动物体表面法向量, 使光滑表面得到调制,并在光线下呈现出凸凹不平
4、的形状,这种纹理称为凸凹纹理(或几何纹理 )。利用扰动函数可以很好的模拟皮毛、头发、衣服之类的物体。过程纹理映射: 过程纹理映射属于三维纹理, 它就是将三维的纹理函数映射到三维物体 上。也就是说在物体的内部也会受到纹理的影响。 例如, 木材和大理石的纹理,需要考虑每 一个相邻面的纹理映射, 通常每个面分别进行颜色纹理映射时, 由于面的边界处纹理不连续, 往往难以表现出自然的纹理,这种场合定义三维的纹理函数进行立体纹理映射是非常有效 的。用过程纹理模拟物体表面细节, 能够在非常复杂的曲面上表现连续的纹理, 且纹理效果 不受物体表面形状的影响,可以很大程度的解决纹理走样问题。4.1.2 OpenG
5、L 实现纹理映射的步骤(1)指定纹理在最简单的情况下,纹理是单个图像。利用称为 MipMap 的技术,程序员可以指定同一纹理的多级分辨率图像, 在进行纹理映射过程中, 该技术可以按照景物表面在屏幕上所占区域分大小, 自动选择合适分辨率的纹理图像对景物表面进行映射,以避免因纹理映射中的点采样方式所导致的纹理走样。 另外, 图像的定义可以包括边界值,以防止物体的纹理坐标超出有效区域。 边界值允许程序员把多个纹理映射平滑的粘贴在一起,从而增加最大可用纹理的有效尺寸。相关函数:glTexImage2D() , glTexGen() 。(2)纹理如何作用于每个像素点RGBA 值。程序员可OpenGL 根
6、据片元的颜色和纹理图像数据中的颜色来计算最终的 以选择下面三种功能中的一种: a. 可以简单的使用纹理颜色作为最终的颜色, 这种方法如同贴花一样,纹理被粘贴在片元的表面上;术对光照和纹理的综合效果非常有用;b.可以用纹理来调整片元的颜色和颜色比例,该技C.用纹理值将一个固定的颜色和片元的颜色混合在一起。相关函数: glTexParameter( ),glTexEnv( ) 。(3)激活纹理颜色在绘制场景之前需激活纹理映射。相关函数:glEnable() , glDisable() 。(4)利用纹理坐标和几何坐标绘制几何场景在粘贴纹理之前, 必须说明纹理相当于片元是如何排列的。 也就是说, 必须
7、指定场景中 物体的纹理坐标和几何坐标。对于二维纹理图可指定其两个方向上的纹理坐标均为O.0 ,1.0 ,而要粘贴纹理的物体坐标可以是任意的。相关函数: glTexCoord*() 。用多层纹理混合贴图模拟融合性地表4.2.1 纹理混合贴图对于小的地形,我们可以考虑在整个地形上贴一张纹理。比如6565 的地形贴上一张128128 的图片。但是当地形很大时,我们的贴图不可能很小。当贴图很小时,地形会被 拉伸产生失真; 当把贴图选得太大, 显卡会承受不了。于是有人想到了,利用纹理贴图坐标 (texture coordinate) 的设定,我们可以将一张图片一次次的重复贴至地形场景上,也就是所 谓图素
8、纹理 (tile texture) 的方法; 不把 128x1.28 的图片直接映射 (mapping) 至整个地形范围, 而是以每个 128x128 大小为一个单位,将图文件完整贴上,如此反复进行贴图,就像是铺 地板砖一样。 这样的方法, 的确可以大幅减低贴图失真的情形, 可是如果还想进一步实现更 真实的地形场景贴图, 就会发现这个作法还是有不足之处。 一个地形场景通常不会只拥有单 独一种样式的地貌。 举例来说, 可能依照地形高度的不同,在平地上会有草地,高度往上的 山坡会有沙地, 在山顶或陡峭之处可能会有岩地或雪地等等多种可能的组合。 如果想达成这 种形式的地形纹理贴图,就不是简单的使用图
9、素纹理 (tile texture) 可以实现的了。这就需要 纹理混合贴图 (Texture Blending) 技术。两层纹理混合原理公式: C=a*alpha+b*(1-alpha) 。基于索引图的纹理混合贴图在很多游戏中, 地形纹理又分为粗纹理和细节纹理。 粗纹理是指表现地表大致图像的纹 理,比如一片草地, 它的粗纹理就可以是一张绿色的图片。 而细节纹理顾名思义是指表现细 节的纹理, 在例子中,它就可以是一张表现草的细节、沙石细节的图片。一张粗纹理一般映 射得很广,甚至映射到整个地形;而细节纹理一般是反复贴图(铺砖)。室外场景一般 2到 3张细节纹理足以表现出漂亮的结果。 当多张细节纹理
10、混合时, 怎么体现不同纹理间的平滑过 渡呢 可以使用纹理索引图技术。如图 4.2在灰度图表示的纹理混合索引图中每个像素对应地形中的一块区域(不能太大 ),白色像素表示那块区域贴岩石纹理, 黑色像素表示贴草地纹理, 灰色像素即是两种细节纹理的混合。 比如灰度值是 78 ,则在混合过程中岩石纹理的 alpha=78 256100 。同理,我们可以用彩色图来表示更多细节纹理的混合索引。令索引贴图的 R 分量代表 沙滩的纹理, G 分量代表草地, B 分量代表岩石。 如果索引贴图上一个像素的值是 (0,255 , 0) ,即绿色,则这个像素所对应的地形区域的具体纹理就为草地。 如果该像素颜色值是 (1
11、27 ; 127 ,0) ,即黄色, 则该像素所对应的地形区域的纹理为草地和沙滩的混合,看起来既有草,又有沙。这种方法的优点是简单、灵活,方便美工人员设计地表的纹理。4.2.3 纹理混合的 OpenGL 实现在 OpenGL 中,纹理混合有三种方式来实现:多通道多遍渲染,单通道多重渲染,用 GLSL(GL Shading Language) 实现多纹理混合。多通道多遍渲染我们把地形用第一种纹理画出一次, 然后再开启阿尔法混合 (alphablending) 的功能, 用 第二种纹理再画出地形一次, 这样用不同纹理重复多次画出地形。 这种做法适应配置低端的 显卡,但渲染速度会受很大影响。单通道多
12、重渲染这种方法要用到两个 OpenGL 扩展指令 (OpenGL Extensions) ,分别是 GL_ARB_multitexture 和 GL_EXT_texture_env_combine 。GL_ARB_multitexture 可以让我 们一次控制二到多个纹理单元 (texture unit) 的操作。这种技术适合于配置中端的显卡,速度 也很快,但是支持的纹理个数有限。其步骤:地形初始化时,由纹理混合索引图确定每个地形顶点的所有纹理的映射坐标,纹理 间的混合 alpha 值。初始化多重纹理,载入纹理贴图,设置相关参数。渲染时,用 glMultiTexCoord2fARB 设置顶点的
13、纹理映射坐标,关键代码如下:用 shader 实现多纹理混合所谓 shader 是基于显卡的着色器。 OpenGL 和 DirectX 都先后发布了自己的着色器语 言,如 OpenGL 的 GLSL(GL Shader Language) 。这是目前比较新的渲染技术,这种方式 编写程序简单, 速度很快, 支持的纹理也很多, 但显卡必须是比较高阶的支持着色器语言的。 这种方法在下面章节光照贴图中会有相关代码。4.3 室外场景的光影处理要绘制逼真的场景必须做光照处理。没有光照的三维物体模型和二维物体没有任何差 别,没有一点立体感。只有具有光照的物体才是真正的三维物体。 光照射到物体表面时,可 能被
14、物体吸收、 反射或透射。 光的反射和透视部分进入视觉系统使我们能看见物体。 光的颜 色是由其波长决定, 一束白光含有所有可见波长的光。 白光照射物体时, 只有所有可见光被 等量吸收物体才会呈现灰色; 如果被不等量吸收, 物体会呈现其它的颜色。 光的亮度由光强 决定。从物体表面反射出来的光的强度取决于光源的位置、 光强、物体材质、 物体表面位置、 物体表面法线和视点的位置。4.3.1 光照模型介绍光照射到物体表面时,光线可能被吸收、 反射和透射。被物体吸收的部分转化为热,反 射、透射的光进入人的视觉系统,使我们能看见物体。为模拟这一现象,我们建立一些数学 模型来替代复杂的物理模型,这些模型就称为
15、明暗效应模型或者光照模型。在真实感图形学中,我们把仅处理光源直接照射物体表面的光照模型称为局部光照模 型,而和此相对应的,可以处理在物体之间光照的相互作用的模型称为整体光照模型。Phong 光照模型Phong 光照模型综合反映了漫反射、 镜面反射和环境光对表面的作用 1。他属于局部光 照模型,在游戏场景的实时渲染中经常用到。其光照强度方程式如下:式中, M 表示对场景有贡献的点光源的总个数; I 是光照表面点 (x, y)处的光强; Ia 是 入射环境光的光强; Ini 、fi(d)是第 i 个点光源发出的入射光光强和光源强度衰减因子;ka 为景物表面对环境光的漫反射系数; kd 为景物表面的
16、漫反射系数; ks 为景物表面的镜面反射 系数; n 称为镜面高光指数,被用来模拟镜面反射光在空间的会聚程度; Li 为第 i 个点光源 发射方向单位向量; N 是点(x,y)处的表面单位法向量; Hi 为将入射光反射到观察者方向的 理想镜面的单位法向量 Hi=(Li+V) 2, V 为观察者视线单位向量。光线跟踪算法光线跟踪或称光迹追踪是计算机图形学的核心算法之一n。在算法中,光线从光源被抛射出来,当他们经过物体表面的时候,对他们使用种种符合物理光学定律的变换。最终, 光线进入虚拟的摄像机底片中, 图片被生成出来。 由于该算法是全局光照模型, 所以可以模 拟生成十分复杂的图片。光线跟踪算法伪
17、代码:辐射度算法辐射度算法本质是将光看作一种物理辐射, 然后计算辐射的传导就能获得加之于每个对 象物体上的光照强度, 从而获得正确的渲染结果。 和其他渲染方法相比, 辐射度算法更接近 于光的自然传播原理。 辐射度算法解决了光在不同面之间反射的计算技术, 但不分布镜面光, 也不产生聚光 (Caustic) 。辐射度算法也是一种全局光照模型。全局光照虽然渲染效果很好, 但速度很慢, 一般还不能使用在实时渲染中, 它一般使用 在非实时渲染中,比如光照贴图就可以用全局光照算法来生成。室外场景中地形的光照处理室外场景由于涉及多边形面片太多, 如果实时计算光照, 那速度是很慢的。并且, 用局 部光照模型来
18、计算出的效果也不太理想。 由于地形的多边形网格是实时产生的, 它会随着视 点的移动而变化,因此如果直接使用 OpenGL 内置的顶点光照,就会得到极度不稳定的光照效果, 会看到地形表面因为你的移动而不断跳动。 所以目前在游戏引擎中, 关于地形的光 照大多通过光照贴图来实现。这样的实现方法是一种静态光照, 不是实时的。 现在国外最顶级的游戏引擎开始把全局 光照或接近全局光照的模型引入场景的实时渲染中,这是今后的一个发展方向。在本文中, 地形的光照处理通过光照贴图来实现。光照贴图的概念光照贴图顾名思义它是一个覆盖了场景中所有多边形的贴图 n 钔。通过给贴图赋值, 我们可以得到多边形表面复杂的光照效
19、果。 使用好的算法计算出来的光照贴图可以模拟极度 逼真的光影效果。它给我们带来的视觉享受远远地超过了 OpenGL 的局部光照。光照贴图和多细节纹理混合模拟地表首先,我们准备 3 张地表细节贴图, 1 张光照贴图, 1 个纹理索引贴图。把 3 张细节贴 图和光照贴图绑定到相应的纹理通道上。 然后使用 Vertex Shader 为每个顶点计算拉伸后的 索引贴图的纹理坐标。下面是用 GLSL 写的相关 Vertex Shader 代码:在 Fragment Shader 里,对索引贴图进行纹理查找, 使用查找得到的颜色值的 RGB 颜 色信息按比例混合 3 张细节贴图,得到当前像素的颜色。最后还
20、应该把这个颜色和光照贴 图中的值相乘,得到最终的结果。相关的 Fragment Shader 代码如下:光照贴图的生成光照贴图可以用全局光照模型, 比如光线跟踪、 辐射度算法等来预处理得到。 由三个数 据来生成: a. 地形高度图; b.光源位置; C.光照强度。场景中非地形的阴影算法简介地形的光照阴影用上面介绍的光照贴图解决了, 针对树木、 人物的阴影我们必须另外实 现。人物的阴影是动态的,有两种常用的实时阴影生成技术。一种是 ShadowVolume ,还 有一种是 ShadowMap 。ShadowVolume 算法ShadowVolume 基于的是几何体算法,通过延伸光照轮廓区域进行正
21、反面两次渲染, 在屏幕的模板缓冲区内分离出阴影区域, 能够得到十分精确的阴影区域, 画质较好, 而且渲 染流程十分简单, 缺点是建立光照轮廓延伸体十分费时费资源, 另外阴影边缘视觉上比较生 硬。 ShadowMap 算法ShadowMap 基于的是 Shader 技术,通过建立 Z 深度图、逐像素比较深度得到阴影区 域。该算法针对一些固定的建筑物之类的图素形成阴影尤其出色, 对于一些运动物体的阴影 最多只需渲染两次物体即可形成阴影。 缺点是需要显卡对 Vertex Shader 、Fragment shader 的支持, 而且内存消耗较大, 同时只能生成平行光下的阴影, 而且无法做到将阴影投影
22、到所 有的物体。用阴影贴图创建简单阴影可以把物体的阴影通过纹理贴图技术贴在平面上简单模拟阴影。下面描述实现步骤:渲染地形。根据光源方向和物体的位置计算物体的阴影在地形上方的位置,并构成阴影平面面 片。对于要创建阴影的每个物体,使用支持alpha 混合和透明的纹理映射函数在第 (2) 步计算的阴影平面上贴上物体的阴影。天空的渲染天空盒子天空渲染最简单的方法是利用天空盒子 (SkyBox) 。天空盒子几乎在各种室外游戏中都 能被运用,它能完全的描述视点周围 360 度范围内的视野。天空盒子实际上就是一个游戏 三维空间中的立方体。如图 4.4 所示,构建一个天空盒子需要八个顶点和六张天空纹理图, 这
23、六张纹理会被贴在天空盒子的内侧,分别描述从摄像机视点所在位置六个方向看去的天 空,上方纹理贴图描述向上看去的天空, 后方纹理贴图描述向后看去的天空。 对天空盒子的 渲染也就是简单的渲染一个空间立方体的六面。 最主要的是让天空盒子随着摄像机的移动而 移动,保证摄像机一直在盒子的中心。 天空盒子的六张纹理必须被精心设计以使它们看起来 连接得天衣无缝。4.4.2 球形天空和弧度天空天空盒子很简单, 但是离天空边缘近的时候天空会有非常明显的变形。 球形天空和弧度 天空把天空曲面分成一个个三角形, 显然这种方法渲染效果更精细, 但是渲染速度也会有一 些影响。所以本课题最终选用了天空盒子来实现。4.4.3
24、 太阳和光晕的生成4.6 所示:渲染太阳很简单, 在场景的特定位置放置一个圆形物体就能实现, 镜头光晕则需要一些 额外的处理。首先我们来看一个光晕的位置,如图镜头光晕由一系列的光环组成, 所有的光环排列在一条直线上。 这条直线由发光物体位 置和屏幕中心确定。 这些光环的形状则有多种方式, 通常用一张放射线状的图用来作为发光 物体的光芒,另外的则用不同厚度的环状图像。我们组合这些光环的时候需要使用 Alpha Blending 功能把这些光环叠加起来自然的融合到场景中去。所有的光环都是作为二维物体绘制到场景中去的。因此, 发光物体在屏幕上的位置需要通过自己计算得到,在计算发光物体在屏幕上的位置的
25、同时我们还可以得到这个位置的 Z 缓冲 (Z-Buffer) 的信息来判断是否能看到发光物体,当发光物体不可见的时候,光晕自然也 不可见。植物的渲染,雾的生成4.5.1 树草的构成和渲染花草和树是室外场景必不可少的点缀,如果对这些物体的细节都用三角形面片来描述, 在现在的硬件环境下显然是不现实的。因此出现了很多简化、取巧的方法。公告板技术 (BillBoard)公告牌技术,即 BillBoard 技术口 ,在 3D 游戏中有着广泛的使用。它的本质就是用预 先做好的几幅位图来代替 3D 物体,极大地节省资源和提高速度。早期的很多游戏中,它的 精灵、树木、物品通常是二维图象,也就是 BillBoa
26、rd 。由于它始终朝向观察者,你根本看 不到它 “扁平 ”的一面,所以给人一种立体的感觉。这种技术最大的优点是速度快。如果用多 个三角形面片构成 3D 精灵,至少要百余个面片,而用 billboard 技术,只需处理两个多边 形。很多 3D 游戏的爆炸效果,如 “极品飞车 中路旁的树木,都使用了该技术。但这种方法 的缺点也是显而易见的,真实感不强。现在对植物的渲染很少单独用到这种技术。用交叉平面 +alpha 测试渲染花草公告板技术是用一个平面来模拟复杂物体, 交叉平面法的做法是用几个交叉的平面来共 同表现一个物体, 通过 alpha 测试选择要映射的纹理像素, 由于是几个交叉面, 所以玩家从
27、 不同角度都能看到一些贴着纹理的平面。 这种方法运用得好能显出极佳的效果, 关键在于针 对不同的植物选择不同的交叉平面, 同时贴图要很好的和平面配合。 目前大多数游戏的花草 等点缀物体都是这样渲染的, 本课题花草的绘制也是采用的这种方法。 下图 4.7 所示的是一 种可以参考的交叉平面。这种技术在实现的时候还有几点值得注意的地方:选择合适的 AlphaTest 值来消除植物的黑边由于纹理过滤和生成 MipMap 的缘故,渲染一些小物体时会出现淡黑色的边界,这就 需要在实际使用中找到一个比较合适的 AlphaTest 参考值 (一般不要取做 0) 。这个值跟纹理 图、 MipMap 采样方式等很
28、多因素都有关,可以选择一个经验值。用多分辨率纹理 (MipMap) 消除纹理的抖动当同样大小的面片处在远近不同的位置是, 采样算法不能完全模拟物体缩小的贴图效果, 生纹理抖动, 如果这样的面片在场景中很多, 决这个问题。如果贴上同一张纹理, 由于纹理映射默认的 在用高分辨率的纹理给远处面片贴图时就会发 则画面闪动相当明显。 多分辨率技术能很好解多分辨率纹理就是对同一个纹理贴图准备几个不同分辨率的版本, 用于分别对应不同距 离的贴图。在实际的使用上, 一般有两种方式。 第一种是由底层图形库 (比如 OpenGL 、DirectX) 在纹理初始化的时候自动生成不同分辨率的纹理。 另一种方式是设计者
29、用图形编辑软件处理 好不同的分辨率图片, 在程序中由设计者自己控制在什么位置载入什么分辨率的纹理。 后一 种方法的渲染效果更好,但代价显然更大。实现随风摆动的动态效果由于我们的每棵草是通过几个交叉面模拟的, 所以对每棵草几个面的顶点按一定规律调 整位置, 就可以模拟被微风吹动的效果。 这种顶点位置的计算现在一般放在显卡上通过顶点 着色器来完成。 对于复杂建模的草丛或者树木, 可以用关键帧、 骨骼动画技术实现摆动效果。模拟光照效果从每棵草所在位置的地面上取得地面光照亮度信息作为这棵草的基本亮度, 将上面的顶 点随机调亮一个幅度,将下面的顶点随机调暗一个幅度,模拟草光照不均匀的效果。树的渲染树一般
30、比花草等大得多, 复杂得多, 所以要求我们要采用细节表现度更高的方法来渲染 它。图形学理论上高细节度的植物渲染算法, 比如分形算法等复杂度太高, 现在还不能很好 的用在游戏中。一般目前游戏中用的较多方法是:对枝干和树叶分别建模。对枝干完全用比较细致的多边形面片建模, 树叶用交叉面建模加上重复贴图来实现。 这 种方式既避免了完全细致建模造成的面片过多引起的渲染速度问题, 又能达到极好的视觉效 果,是目前广泛采用的折中方法。 此法的难度在于怎么用尽量少的交叉面模拟复杂的树叶细 节。下图 4.8 是一颗树的面片组成:渲染大面积树林的时候, 为了加快速度, 还会根据距离选取不同分辨率的面片模型进行 渲染。太远的甚至可以用前面草丛的交叉面贴图方法渲染。此法最大的好处是简单、高效。但当靠近从不同角度观察它时,还是容易看出 “片状 ”的 缺陷。针对树的渲染,目前游戏使用领域还广泛使用一种才兴起的中间件 SpeedTree 。他 主要的优点是用极少的速度代价实现了树的超高真实感渲染, 细节、光影、 树叶的动态摆动 等都得到很好的表现。国内完美国际公司的 “
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AHP决策分析方法及其应用
- ESD防护基础知识培训教材
- ack麦肯锡降低成本的一些分析方法
- 公司会计实习报告总结
- 2026北师大二下有多少个字游戏课件
- DIALux模拟日光案例斯科肯竖井
- 机械安全生产教育
- 幼儿大班健康课
- 火灾逃生健康课
- 电气系统维护保养标准
- 2026年六安安徽省信用融资担保集团有限公司所属分公司公开招聘14名笔试参考题库及答案详解
- 第四代住宅建安成本精细化管控手册
- 学校教师年度考核工作实施方案(2026新修订)
- 2026年新疆维吾尔自治区法检系统书记员招聘考试参考试题及答案详解
- 医疗护理员试题含答案
- 脑出血诊疗指南(2024 版)
- 2026广西交投集团招聘第三季度招聘188人易考易错模拟试题(共500题)试卷后附参考答案
- 全球与中国高超音速风洞行业监测调研及发展态势展望研究报告
- ktv地震应急疏散预案
- 油井井下作业修井打捞工具
- 食品企业物理危害及控制
评论
0/150
提交评论