游戏架构面试高频问题及答案_第1页
游戏架构面试高频问题及答案_第2页
游戏架构面试高频问题及答案_第3页
游戏架构面试高频问题及答案_第4页
游戏架构面试高频问题及答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

游戏架构面试高频问题及答案考试时间:______分钟总分:______分姓名:______一、选择题(每题只有一个正确答案)1.在游戏渲染管线中,将顶点数据从应用层传递到图形处理单元(GPU)的主要方式通常是什么?A.直接写入显存B.通过顶点着色器接口C.利用图形API(如DirectX,OpenGL)的缓冲区对象D.由CPU实时计算并推送2.对于需要频繁触发、具有独立功能的操作,哪种设计模式通常比较适合用于游戏逻辑中?A.策略模式B.观察者模式C.命令模式D.工厂模式3.在多人在线游戏中,为了减少网络带宽占用,哪种状态同步策略通过只发送玩家输入或预测结果,而由服务器计算最终状态来实现?A.快照同步B.增量同步C.滑动窗口同步D.基于预测的同步4.如果一个游戏需要支持同时处理数以万计的NPC的简单行为和环境交互,而不需要精确的物理碰撞,哪种物理系统设计可能更合适?A.使用复杂的刚体动力学引擎B.实现轻量级的基于规则的行为树系统C.集成完整的商业物理引擎D.依赖渲染管线进行简单的遮挡剔除5.游戏中加载大量纹理资源导致DrawCall过多,以下哪种技术不能有效减少DrawCall?A.纹理图集(TextureAtlas)B.实例化(Instancing)C.层次细节(LOD)技术D.统一着色器(UnifiedShading)6.在设计一个可扩展的音频系统时,为了允许不同音效和音乐在运行时动态添加或修改而不需要重启游戏,通常会采用哪种设计?A.预先编译所有音频资源并静态加载B.使用单例模式管理所有音频资源C.采用发布-订阅模式处理音频事件D.将所有音频逻辑封装在单一类中7.游戏引擎中,资源管理系统负责管理游戏资源(如模型、纹理、音频)的加载、卸载和访问,以下哪项通常不是资源管理系统的核心职责?A.资源的内存分配与回收B.资源格式转换与解码C.游戏关卡的数据加载D.资源依赖关系的解析8.在客户端-服务器架构的多人游戏中,为了减少玩家感受到的输入延迟,客户端通常会采用什么技术来预测角色的下一步动作?A.物理同步B.插值(Interpolation)C.预测(Prediction)D.回滚(Reconciliation)9.以下哪种架构原则强调一个类或模块应该对扩展开放,对修改关闭?A.单一职责原则(SingleResponsibilityPrinciple)B.开闭原则(Open/ClosedPrinciple)C.依赖倒置原则(DependencyInversionPrinciple)D.接口隔离原则(InterfaceSegregationPrinciple)10.当一个游戏需要在PC、主机和移动设备上运行,且不同平台的硬件性能差异很大时,架构设计中通常会在哪个层次进行平台抽象以隔离平台差异?A.渲染管线底层API调用B.核心游戏逻辑C.设备输入处理D.平台特定的驱动层二、多选题(每题有两个或两个以上正确答案)1.以下哪些属于现代游戏引擎中常见的渲染后处理效果?A.色彩校正(ColorGrading)B.运动模糊(MotionBlur)C.超级采样抗锯齿(SupersamplingAnti-Aliasing)D.环境光遮蔽(AmbientOcclusion)E.顶点动画(VertexAnimation)2.设计一个高性能的物理系统时,以下哪些策略是重要的?A.使用空间数据结构(如四叉树、八叉树)优化碰撞检测查询B.减少物理计算在主线程的执行时间C.为不同的物理对象类型预定义复杂的碰撞形状D.启用尽可能多的物理效果以增强视觉表现E.合理配置物理步长(PhysicsTimeStep)3.在游戏架构中,为了实现高内聚和低耦合,以下哪些做法是推荐的?A.将功能相关的代码逻辑封装在同一个模块或类中B.通过接口和抽象类定义模块间的交互契约C.避免类之间直接引用,而是通过参数传递或事件传递D.将游戏状态管理集中在单一的全局状态机中E.鼓励类之间进行深层次继承4.多人在线游戏网络架构设计需要考虑的方面包括哪些?A.带宽效率和数据压缩B.延迟(Latency)和抖动(Jitter)的处理C.数据同步的可靠性和一致性D.客户端安全与反作弊机制E.服务器负载均衡与扩展性5.资源管理系统为了高效运行,可能会采用哪些技术或设计?A.异步加载资源以避免阻塞主线程B.使用内存池管理资源内存分配C.缓存常用资源以减少重复加载时间D.基于资源依赖关系进行优化加载顺序E.为不同类型的资源采用不同的加载策略6.游戏架构中,输入系统需要处理哪些功能?A.捕获来自各种输入设备(键盘、鼠标、手柄等)的数据B.解析和映射输入按键或命令到具体的游戏操作C.处理输入事件的优先级和冲突D.实现输入数据的预测和网络同步(如果需要)E.提供平滑的输入响应和防抖动处理7.以下哪些设计模式通常与解耦和事件处理相关?A.观察者模式(Observer)B.发布-订阅模式(Pub/Sub)C.命令模式(Command)D.工厂模式(Factory)E.单例模式(Singleton)8.性能优化是游戏架构的重要组成部分,以下哪些属于常见的性能优化方向?A.优化CPU计算密集型任务,如物理模拟、AI寻路B.利用多线程技术分担渲染和逻辑计算负载C.优化内存访问模式,减少缓存未命中D.减少渲染管线的状态切换和DrawCallE.压缩资源数据,减少磁盘读取和内存占用9.为了支持游戏的可扩展性,架构设计中通常会考虑哪些方面?A.模块化设计,将功能划分为独立的模块B.提供插件或脚本接口,允许扩展功能C.使用配置文件管理游戏行为和参数D.设计灵活的数据结构以适应未来需求E.将所有逻辑硬编码在核心引擎中,避免扩展10.针对不同平台(如PC,主机,移动端)进行游戏开发时,架构设计需要考虑哪些差异和适配?A.硬件性能差异(CPU,GPU,内存,存储)带来的优化需求B.操作系统和图形API的差异C.输入设备的不同(手柄vs键盘鼠标)D.屏幕分辨率和显示比例的适配E.各平台特定的功能支持和限制(如在线服务集成)三、填空题1.游戏引擎的__________负责处理玩家输入,将其转换为游戏内的动作或事件。2.在deferredshading(延迟着色)渲染管线中,光照计算通常在光栅化阶段之后,在__________阶段进行。3.设计良好的游戏架构应该遵循__________原则,使得模块之间耦合度低,便于独立修改和扩展。4.为了在网络上同步玩家的动作,通常会记录输入或状态变化,并使用__________协议进行传输。5.游戏资源管理系统中,__________用于跟踪一个资源被哪些其他资源所依赖,以避免错误卸载。6.观察者模式允许对象在状态改变时自动通知一组__________它关注的对象。7.在多线程游戏架构中,访问共享资源必须使用__________机制,如互斥锁(Mutex)或读写锁(RWLock),以防止数据竞争。8.对于需要精确物理模拟的场景,如车辆动力学或软体效果,通常会使用专业的__________引擎。9.游戏性能分析中,__________是一种通过图形API提供的机制,可以追踪和可视化渲染管线的各个阶段和绘制调用。10.为了减少网络同步的频率,提高响应性,游戏架构中常采用__________策略,允许客户端在接收到服务器确认前进行预测性渲染。四、简答题1.请简述游戏渲染管线(RenderingPipeline)的主要阶段及其基本功能。2.解释发布-订阅模式(Pub/Sub)在游戏架构中如何实现模块间的解耦,并举例说明其应用场景。3.在设计一个支持大规模开放世界的游戏时,网络架构需要面对哪些主要挑战?请列举至少三种挑战并提出相应的架构设计考虑。4.描述一下资源管理系统(AssetManagementSystem)在加载一个游戏资源(例如,一个复杂的3D模型)时,通常需要经历的步骤。5.什么是单例模式(Singleton)?在游戏架构中,它通常用于实现哪些功能?请讨论其优缺点。五、设计题1.假设你需要设计一个允许玩家自定义武器技能效果的游戏系统。请简述该系统的架构设计思路,包括主要模块、它们之间的交互方式以及可能采用的设计模式。2.描述一下为一个支持多人协作(Co-op)的游戏设计其核心架构需要考虑的关键点,例如玩家状态同步、交互逻辑处理、游戏世界一致性保证等方面。试卷答案一、选择题1.C解析:图形API(如DirectX,OpenGL)提供的缓冲区对象(如VertexBufferObject,VBO)是CPU将顶点数据上传到GPU并供渲染管线使用的标准方式。2.C解析:命令模式将请求封装成对象,从而允许用户使用不同的命令、队列或日志请求,并支持可撤销的操作。这对于游戏中的离散动作(如攻击、使用技能)非常适用。3.B解析:增量同步只发送自上次同步以来发生变化的数据或输入,相比发送完整状态(快照同步)更高效,常与客户端预测结合使用。4.B解析:轻量级的基于规则的行为树系统足以模拟简单的AI行为,且计算量远小于完整物理引擎,适合大规模场景。复杂物理引擎和完整商业引擎对于“简单行为和环境交互”可能是过度设计。5.C解析:层次细节(LOD)技术是通过使用不同精细度的模型来优化渲染效果和性能,它不直接减少单个DrawCall的数量,反而可能增加。其他选项(纹理图集、实例化、统一着色器)都是减少DrawCall的有效手段。6.C解析:发布-订阅模式允许事件的发布者和订阅者解耦,事件发生时系统会自动通知所有订阅了该事件的模块,非常适合动态、灵活地处理音频事件和触发音效。7.C解析:游戏关卡的数据加载通常由场景管理系统或关卡编辑器相关模块负责,而资源管理系统更侧重于资源本身的管理(加载、缓存、卸载、访问等)。其他选项都是资源管理系统的核心职责。8.C解析:预测是指客户端根据玩家输入和本地状态预测角色的未来动作,即使服务器尚未确认,也能提供较流畅的体验。插值是平滑显示服务器确认的状态变化,回滚是纠正预测错误。9.B解析:开闭原则是软件设计的基本原则之一,指软件实体(类、模块)应该对扩展开放(可以通过继承或修改配置来扩展功能),对修改关闭(通过新增代码而非修改现有代码来适应变化)。10.B解析:核心游戏逻辑需要适应不同平台的输入、性能和功能差异,因此应该与平台特定的实现细节相隔离。通过在核心逻辑之上构建抽象层或使用跨平台框架,可以隔离这些平台差异。二、多选题1.A,B,C,D解析:这些都是常见的渲染后处理效果,用于增强图像质量和视觉体验。顶点动画是模型动画技术,不属于渲染后处理。2.A,B,E解析:优化物理系统需要关注空间数据结构以提高效率、多线程以避免卡顿、以及合理的物理步长设置以保证稳定性和准确性。复杂的碰撞形状、过多物理效果和硬编码逻辑通常会增加不必要的复杂度和性能开销。3.A,B,C解析:高内聚意味着一个单元(类、模块)内部的功能紧密相关,低耦合意味着单元之间依赖关系少。封装相关代码、通过接口交互、避免直接依赖都是实现低耦合和高内聚的有效方法。避免深继承和集中状态机有时反而会导致耦合增加。4.A,B,C,D,E解析:这些都是设计高性能、稳定、可扩展的多人在线游戏网络架构时必须考虑的关键方面,涵盖了从数据层面到服务层面的各种挑战。5.A,B,C,D,E解析:异步加载、内存池、缓存、依赖关系管理和针对性策略都是现代资源管理系统为了提高效率和性能常用的技术。6.A,B,C,D,E解析:输入系统需要完成从捕获、解析、处理到响应的全过程,并可能涉及网络同步和防抖动等高级功能。7.A,B,C解析:观察者模式和发布-订阅模式都是典型的解耦模式,允许对象或模块通过事件/消息进行通信而不直接引用对方。命令模式将操作封装成对象,也可以间接实现一定程度的解耦。工厂模式和单例模式主要与创建对象或保证唯一实例有关。8.A,B,C,D,E解析:这些都是游戏性能优化的常见方向,涵盖了CPU、GPU、内存、多线程、资源等多个层面。9.A,B,C,D解析:模块化、插件/脚本接口、配置文件、灵活数据结构都是提高软件可扩展性的常用架构设计手段。将所有逻辑硬编码会严重牺牲扩展性。10.A,B,C,D,E解析:跨平台开发需要考虑硬件性能、图形API、输入方式、显示特性以及平台特定功能等所有这些方面,以确保游戏在不同平台上都能良好运行和体验。三、填空题1.输入系统(InputSystem)解析:负责接收、处理和映射玩家或其他输入设备的指令。2.片段处理(FragmentProcessing/PixelShaderStage)解析:在deferredshading中,几何信息和光照信息分开处理,光照计算发生在光栅化之后、片段处理阶段。3.开闭(Open/Closed)解析:这是SOLID原则之一,指软件实体对扩展开放,对修改关闭。4.实时(Real-time)/UDP(或其变种如UDP-Lite)解析:为了低延迟,通常使用实时传输协议。UDP因其无连接和低延迟特性常被游戏网络使用,尽管需要开发者处理可靠性问题。5.依赖关系图(DependencyGraph)/资源依赖管理(ResourceDependencyManagement)解析:系统需要记录资源间的依赖,确保在卸载资源时不会破坏依赖它的其他资源。6.相关者(ConcernedParties)/订阅者(Subscribers)解析:观察者模式允许一个对象的状态变化时,自动通知所有对其状态感兴趣的“相关者”。7.同步(Synchronization)/锁(Locking)解析:在多线程环境下,共享资源的访问必须进行同步,使用互斥锁等机制防止数据竞争和错误。8.物理引擎(PhysicsEngine)解析:对于需要高精度和复杂物理模拟的场景,通常依赖专业的第三方或自研物理引擎(如PhysX,Havok,Bullet)。9.渲染分析器(RendererAnalyzer)/FrameDebugger解析:这是图形API提供的工具,可以追踪渲染命令的执行顺序、耗时以及绘制调用,是调试渲染性能的关键工具。10.延迟补偿(LagCompensation)/权重混合(WeightedBlending)解析:这是一种在存在网络延迟的情况下,通过结合预测和实际同步数据来减少可见延迟的技术。四、简答题1.游戏渲染管线(RenderingPipeline)的主要阶段及其基本功能:渲染管线是将3D场景或2D图像从应用描述转换为最终像素显示在屏幕上的过程。主要阶段包括:*顶点处理(VertexProcessing):处理每个顶点的数据,执行顶点着色器(VertexShader),计算顶点位置(包括变换、投影)、光照初步计算、纹理坐标等。*图元组装(PrimitiveAssembly):将顶点数据组装成图元(如三角形、线段、点)。*光栅化(Rasterization):将图元转换为屏幕上的像素片段(RasterizedFragments/Pixels)。这个过程判断每个图元覆盖的像素,并生成片段,计算屏幕坐标、插值顶点着色器的输出到片段级别。*片段处理(FragmentProcessing):对每个片段执行片段着色器(FragmentShader/PixelShader)。主要计算像素的颜色(包括纹理采样、光照计算、阴影、后处理效果等)。*输出合并(OutputMerging):将片段处理的结果(颜色、深度、模板等)写入到帧缓冲区(FrameBuffer),最终形成可见的图像。2.解释发布-订阅模式(Pub/Sub)在游戏架构中如何实现模块间的解耦,并举例说明其应用场景。发布-订阅模式通过引入一个中心化的消息总线或事件中心,使得事件的发布者(Producer)只需将事件发布到特定的主题(Topic),而事件的订阅者(Subscriber)则向中心订阅自己感兴趣的主题。发布者和订阅者之间没有直接的知识或依赖关系,它们通过事件和主题进行间接通信。这种模式实现了模块间的解耦,因为:*发布者不需要知道哪些模块会使用这个事件,只需发布即可。*订阅者不需要知道事件的来源,只需关心事件内容是否对自己有用。*可以随时添加或移除订阅者,不影响发布者或其他订阅者。*发布者和订阅者都可以独立地扩展或修改,只要遵循事件/主题的约定。应用场景举例:*游戏逻辑与UI交互:当玩家角色死亡时,游戏逻辑发布一个“角色死亡”事件。UI系统订阅此事件,并在收到事件后更新UI显示(如显示死亡菜单)。音频系统也可能订阅此事件以播放死亡音效。它们都响应同一事件,但实现各自逻辑,互不影响。*AI行为触发:一个AI实体感知到玩家时,发布“发现玩家”事件。周围的其他AI(如巡逻兵、敌人)可以订阅此事件,并据此改变自己的行为(如转向、攻击)。AI实体本身不需要知道有哪些具体的AI会响应它的发现。3.在设计一个支持大规模开放世界的游戏时,网络架构需要面对哪些主要挑战?请列举至少三种挑战并提出相应的架构设计考虑。主要挑战及架构设计考虑:*挑战1:海量数据同步与带宽压力。大规模世界包含大量对象、地形细节,每次状态更新都需要传输大量数据。*设计考虑:使用高效的数据表示和压缩算法;采用分层同步策略(如只同步关键状态、使用增量同步);利用预测、插值、回滚技术减少需要同步的数据量;实现动态LOD(LevelofDetail)网络同步,远距离对象使用低精度数据。*挑战2:网络延迟(Latency)与数据传输延迟。地理范围广阔导致物理距离远,往返延迟高,影响交互响应性。*设计考虑:实现客户端预测和服务器同步机制,平滑延迟影响;采用延迟补偿(LagCompensation)技术处理交互(如战斗);优化同步频率,平衡实时性与带宽;对于非关键操作,允许一定的延迟。*挑战3:服务器负载与可扩展性。整个开放世界的状态需要服务器管理,大量玩家同时在线会带来巨大的计算和存储压力。*设计考虑:采用分布式服务器架构(如基于地理位置的分片Sharding或动态分片DynamicSharding);实现区域加载/卸载,只加载玩家附近区域的数据和逻辑;将部分逻辑下放到客户端(需保证安全性和一致性);利用云服务实现弹性伸缩。4.描述一下资源管理系统(AssetManagementSystem)在加载一个游戏资源(例如,一个复杂的3D模型)时,通常需要经历的步骤。加载复杂3D模型资源通常涉及以下步骤:*资源标识与查找:根据资源名称或ID,在资源缓存或资源数据库中查找该模型资源。如果未找到(缓存未命中),则需要进行加载。*解析文件头/元数据:读取模型文件(如FBX,OBJ,GLTF)的头部信息或元数据,了解模型包含的组件(顶点、面、材质、骨骼等)及其格式。*异步加载请求:将加载任务放入异步加载队列,避免阻塞主线程。加载器开始从磁盘或其他存储介质读取文件数据。*数据解析与转换:解析文件中的具体数据。对于3D模型,这包括:*顶点数据(位置、法线、纹理坐标、颜色等)的解析和内存复制。*索引数据(构成三角形网格的面索引)的解析和内存复制。*骨骼数据的解析(骨骼矩阵、骨骼hierarchy)。*材质数据的解析(着色器着色器、纹理引用)。*纹理资源的解析(解码、内存加载)。*可能需要进行格式转换或优化(如合并Mesh、计算Tangent空间)。*资源内存分配与管理:为解析出的数据分配内存,并更新资源管理系统的内存统计信息。*建立资源内部结构:根据解析的数据,构建模型在内存中的表示结构,如VertexBuffer,IndexBuffer,BoneStructure,MaterialInstance等。*依赖关系处理:检查模型是否依赖其他资源(如纹理、着色器),如果依赖资源尚未加载,可能需要等待或优先加载依赖项。*资源就绪通知:当加载和解析完成,模型资源在内存中准备就绪后,通知请求加载的模块(如场景系统、动画系统),资源可以开始被使用。*缓存管理:将加载完成的资源放入内存缓存中,以便后续快速访问。根据缓存策略(如LRU)管理缓存大小。5.什么是单例模式(Singleton)?在游戏架构中,它通常用于实现哪些功能?请讨论其优缺点。单例模式是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点来获取该实例。通常通过在类中实现一个静态方法或属性,该方法/属性负责检查实例是否已存在,如果不存在则创建它,如果存在则返回现有实例。在游戏架构中,单例模式通常用于实现:*全局配置管理器:管理游戏的全局设置、常量、资源路径等。*核心服务:如日志系统(统一记录日志)、资源管理系统(全局资源访问)、音频系统(全局音频播放和控制)、输入系统(统一处理输入)、网络管理器(全局网络连接)。*游戏状态机:全局管理游戏的主循环状态(如菜单、加载、游戏、暂停、结束)。*设备管理器:管理对屏幕、渲染设备等硬件的访问。优点:*全局访问点:提供了一个明确的、全局一致的访问方式,方便在不同模块间引用。*资源控制:可以有效控制共享资源的访问,例如只创建一次数据库连接或只加载一份核心配置。缺点:*违反封装:单例的全局状态可以被任何代码修改,增加了代码的耦合度和维护难度,隐藏了状态变化。*多线程问题:如果在多线程环境下不加处理地使用,可能导致线程安全问题。*测试困难:由于其全局性和潜在的副作用,对包含单例的模块进行单元测试可能比较困难,需要模拟(Mock)或依赖注入(DependencyInjection)。*过度使用:过度使用单例模式可能导致架构变得僵化,降低系统的灵活性和扩展性。五、设计题1.假设你需要设计一个允许玩家自定义武器技能效果的游戏系统。请简述该系统的架构设计思路,包括主要模块、它们之间的交互方式以及可能采用的设计模式。架构设计思路:*主要模块:*技能配置管理器(SkillConfigManager):负责加载、解析和管理所有内置的技能模板数据(效果类型、触发条件、参数范围、图标、音效等)。使用资源管理系统获取配置数据。*技能效果执行器(EffectExecutor):负责根据技能指令执行具体的效果逻辑。这是核心执行模块。*技能效果库(EffectLibrary):封装各种可自定义的效果逻辑,如伤害计算、状态附加(中毒、减速)、范围效果、视觉特效(VFX)、音效(SFX)等。每个效果实现一个统一的接口。*玩家技能界面(PlayerSkillUI):(可选,如果涉及UI交互)负责展示可自定义的技能列表、效果选项,接收玩家输入。*玩家状态/属性管理器(PlayerState/AttributeManager):提供技能执行器所需的相关玩家信息,如当前属性值、持有的资源(法力、能量)、施加的状态效果等。*交互方式:1.玩家通过UI界面选择要自定义的技能。2.UI将玩家选择发送给游戏逻辑层。3.游戏逻辑层调用`SkillConfigManager`获取该技能的模板数据。4.玩家在UI中选择或修改技能的效果组合和参数(如选择伤害效果类型、设置伤害数值、选择范围VFX)。5.UI将自定义结果(包含选择的效果ID和参数)发送给游戏逻辑层。6.游戏逻辑层将自定义的技能配置存储在玩家数据中(如PlayerSkillData)。7.当玩家使用该技能时,`SkillConfigManager`从玩家数据中读取该技能的自定义配置。8.根据配置,`SkillConfigManager`调用`EffectExecutor`。9.`EffectExecutor`遍历配置中的效果列表,对于每个效果,根据其ID从`EffectLibrary`中查找对应的效果实例。10.`EffectExecutor`调用找到的效果实例的执行接口,传入必要的参数(如目标、技能源、自定义参数等)。11.各效果实例根据自身逻辑和参数执行具体效果(如调用伤害计算逻辑、调用VFX系统播放特效、调用SFX系统播放音效、调用状态管理器修改目标状态)。12.`EffectExecutor`完成所有效果的执行。*可能采用的设计模式:*工厂模式(FactoryMethod/AbstractFactory):用于`EffectLibrary`。可以定义一个效果接口`IEffect`,然后为每种具体效果(如`DamageEffect`,`SlowEffect`,`VFXEffect`)创建一个实现类。工厂类根据传入的ID或类型参数,创建并返回对应的具体效果实例,封装了实例化的细节。*策略模式(Strategy):每个具体的效果类(如`DamageEffect`,`SlowEffect`)可以看作是实现特定“行为”的策略。技能可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论