IW4&COD技术简析与不同公司游戏优化思路

1649 篇文章 11 订阅
1623 篇文章 22 订阅
作者:零zXr0
http://hi.baidu.com/h0nker/profile

文章: http://hi.baidu.com/h0nker/blog/item/e4d9102d6d86c23f359bf75d.html

只写了一天,毕竟不是我关注的重点,预计不会有太大更新,稍后将根据BFBC2具体情况更新2月初以来就没更新的寒霜引擎介绍文,将分为两段,寒霜1与寒霜2



IW Engine 4/3
BY Infinity Ward(无限蛋疼)
游戏:

IW3:Call of Duty 4 PC平台低于100万
IW3.5:Call of Duty WAW     PC平台低于100万
IW4:Call of DutyModern Warfare2 PC平台北美大于17万



主要规格
API: Driectx 9.0C    (Driectx 9.0 sm2.0 支持 3)
Texture Resolution(材质解析度) :4096*4096
Quadcore-Multithreading(多核心多线程) ×
Tesselation(曲面细分)         ×
Deferred shading(延迟渲染) ×
Live Create(编辑器动态创建) ×
Ambient Occlusion (环境光遮蔽) ×
Fully-Dynamic Realtime Shadowing(全动态实时阴影)     ×
Direct Illumination(直接光照)    √
Indirect Illumination(印射光)    ×
Global Illumination(全局光)    ×
Local Illumination(局部印射) ×
Photon mapping(光子映射贴图)           ×
Raytracing(光线追踪)            ×
Radiosity(实时辐射度照明)           ×
bouncing light(光子反弹)     ×
sub-surface scatterring(次表面散射)×
Translucency Shader(半透明印射)√
Normal map(法线贴图)            √
parallax occlusion(视差映射贴图) ×
Displacement map(硬件位移置换置换贴图)      ×
megatexture(顶点贴图)        ×
Multi-sample(多重采样)        √
Alpha to coverage(通道印射) √
shadow map(阴影贴图)            √
Instancing(缓存系统)        √
Gizmo particle(容积粒子)     ×
Volume Shader(体积Shader)     ×
Vertex Animation(顶点动画)      √
Bones animation(骨骼动画)     √
Cloth dynamics(布料动力学)      ×
Hydro dynamics(流体动力学)      ×
Character dynamics(角色动力学) √

作为对比的其他图像引擎:

Cryengine 3
BY Crytek
游戏:
CRYSIS2 尚未发售


主要规格    

API: Driectx 11.0 & 10 Driectx 9.0C
Texture Resolution(材质解析度) :16384*16384
Quadcore-Multithreading(多核心多线程) √
Tesselation(曲面细分)        √
Deferred shading(延迟渲染) √
Live Create(编辑器动态创建) √
Ambient Occlusion (环境光遮蔽) √
Soft Shadow (柔化阴影) √
Fully-Dynamic Realtime Shadowing(全动态实时阴影)    √
Direct Illumination(直接光照)   √
Indirect Illumination(印射光)   √
Global Illumination(全局光)   √
Local Illumination(局部印射) √
Photon mapping(光子映射贴图)          √
Raytracing(光线追踪)           ×
Radiosity(实时辐射度照明)          √
bouncing light(光子反弹)    √
sub-surface scatterring(次表面散射)√
Translucency Shader(半透明印射)√
Normal map(法线贴图)           √
parallax occlusion(视差映射贴图)    √
Displacement map(硬件位移置换贴图)      ×
megatexture(顶点贴图)       ×
Multi-sample(多重采样)       √
Alpha to coverage(通道印射) √
shadow map(阴影贴图)           √
Instancing(点缓存系统)       √
Gizmo particle(容积粒子)    √
Volume Shader(体积Shader)    √
Vertex Animation(顶点动画)     √
Bones animation(骨骼动画)    √
Cloth dynamics(布料动力学)     √
Hydro dynamics(流体动力学)     √
Character dynamics(角色动力学) √

Frostbite Engine 2
BY EADICE
游戏: Battlefield 3 尚未发售


主要规格

API: Driectx 11.0&10 & Driectx 9.0C
Texture Resolution(材质解析度) :16384*16384
Quadcore-Multithreading(多核心多线程) √ (16)
Tesselation(曲面细分)        √
Deferred shading(延迟渲染) √
Live Create(编辑器动态创建) √
Ambient Occlusion (环境光遮蔽) √  
Soft Shadow (柔化阴影) √
Fully-Dynamic Realtime Shadowing(全动态实时阴影)    √
Direct Illumination(直接光照)   √
Indirect Illumination(印射光)   √
Global Illumination(全局光)   √
Local Illumination(局部印射)    √
Photon mapping(光子映射贴图)             √
Raytracing(光线追踪)            ×
Radiosity(实时辐射度照明)             √
bouncing light(光子反弹)        √
sub-surface scatterring(次表面散射)√
Translucency Shader(半透明印射)√
Normal map(法线贴图)            √
parallax occlusion(视差映射贴图)    √
Displacement map(硬件位移置换贴图)      √
megatexture(顶点贴图)           ×
Multi-sample(多重采样)          √
Alpha to coverage(通道印射)     √
shadow map(阴影贴图)            √
Instancing(点缓存系统)          √
Gizmo particle(容积粒子)        √
Volume Shader(体积Shader)       √
Vertex Animation(顶点动画)      √
Bones animation(骨骼动画)    √
Cloth dynamics(布料动力学)      √
Hydro dynamics(流体动力学)      √
Character dynamics(角色动力学) √

Cryengine 2
BY Crytek
游戏:
Crysis PC独占 150万
Crysis:Warhead Crysis:Wars PC独占 单作低于 100万,尚未记录 3款总合200万以上


主要规格    

API: Driectx 10.0 & Driectx 9.0C
Texture Resolution(材质解析度) :8192*8192
Quadcore-Multithreading(多核心多线程) ×
Tesselation(曲面细分)        ×
Deferred shading(延迟渲染) ×
Live Create(编辑器动态创建) ×
Ambient Occlusion (环境光遮蔽) √ (SS)
Soft Shadow (柔化阴影) √
Fully-Dynamic Realtime Shadowing(全动态实时阴影)    √
Direct Illumination(直接光照)   √
Indirect Illumination(印射光)   √
Global Illumination(全局光)   √
Local Illumination(局部印射) √
Photon mapping(光子映射贴图)          √
Raytracing(光线追踪)           ×
Radiosity(实时辐射度照明)          √
bouncing light(光子反弹)    √
sub-surface scatterring(次表面散射)√
Translucency Shader(半透明印射)√
Normal map(法线贴图)           √
parallax occlusion(视差映射贴图)    √
Displacement map(硬件位移置换贴图)      ×
megatexture(顶点贴图)       ×
Multi-sample(多重采样)       √
Alpha to coverage(通道印射) √
shadow map(阴影贴图)           √
Instancing(点缓存系统)       √
Gizmo particle(容积粒子)    √
Volume Shader(体积Shader)    √
Vertex Animation(顶点动画)     √
Bones animation(骨骼动画)    √
Cloth dynamics(布料动力学)     √
Hydro dynamics(流体动力学)     √
Character dynamics(角色动力学) √

Frostbite Engine 1.5
BY EADICE
GAME:
Battlefield:BadCompany 2 发售首周
(1.0 for Battlefield 1943& Battlefield BadCompany 无PC版)


主要规格

API: Driectx 11.0 & Driectx 9.0C
Texture Resolution(材质解析度) :16384*16384
Quadcore-Multithreading(多核心多线程) √ (4)
Tesselation(曲面细分)        √
Deferred shading(延迟渲染) √
Live Create(编辑器动态创建) √
Ambient Occlusion (环境光遮蔽) √ (HB)
Soft Shadow (柔化阴影) √
Fully-Dynamic Realtime Shadowing(全动态实时阴影)    √
Direct Illumination(直接光照)   √
Indirect Illumination(印射光)   √
Global Illumination(全局光)   √
Local Illumination(局部印射)    √
Photon mapping(光子映射贴图)             √
Raytracing(光线追踪)            ×
Radiosity(实时辐射度照明)             √
bouncing light(光子反弹)        √
sub-surface scatterring(次表面散射)   ×
Translucency Shader(半透明印射) √
Normal map(法线贴图)            √
parallax occlusion(视差映射贴图)    √
Displacement map(硬件位移置换贴图)      ×
megatexture(顶点贴图)           ×
Multi-sample(多重采样)          √
Alpha to coverage(通道印射)     √
shadow map(阴影贴图)            √
Instancing(点缓存系统)          √
Gizmo particle(容积粒子)        √
Volume Shader(体积Shader)       √
Vertex Animation(顶点动画)      √
Bones animation(骨骼动画)    √
Cloth dynamics(布料动力学)      √
Hydro dynamics(流体动力学)      √
Character dynamics(角色动力学) √

首先请看视频:

光影与Shader:
cod系列不存在太阳实体这个东西,也没有全局光系统,一切关于光影的效果都是静态的,主要使用了下面几种技术:

envmap环境反射贴图
这是COD4之后的IW引擎游戏使用的伪镜面贴图技术,原理是为每张地图制作一个envmap贴图,在进入游戏之后,瞄准镜便可以反射,所以并不是真正的实时反射.例如,你走进屋内或同伴身前,瞄准镜中就不会反射出同伴或屋内的画面.

Bloom
按照游戏内图像的对比度,色阶等信息调整曝光过度,在IW的游戏的很多关卡都可以领略到

静态景深
和Crysis,Badcompany2等游戏采用的游戏内动态景深不同,IW采用了固定XX米范围外开始模糊,屏幕边缘XX区域模糊的设定.

贴图阴影
游戏中的阴影大致分为两种,动态阴影和贴图阴影,前者主要运用于一些场景大需要昼夜动态交替的游戏或追求细节效果的游戏.如网游类的WOW:巫妖王毁灭,射击类的Crysis,Stalker,Badcompany,COJ等.,IW采用的是后者

贴图滤镜:
IW中渲染气氛的最佳也是唯一工具,被击中/濒死时屏幕出现的血色,游戏的整体色调等都是靠调用不同的贴图滤镜,

MW2


去掉blend



去掉无顶点贴图


除此之外漫反射贴图,lightmaping等dx8,dx7时代的技术当然也可以支持,IW支持的技术太少也太老我就不一一介绍了,上面的已经是最高端的技术了,而且也没有其他同时代图像引擎不支持的.

这里有一个好玩的:

直接画在普通UV贴图上的凹凸感

-_-|||别笑,确实有这样的事情

MW2: 看起来好像是有凹凸的吧?


嘿嘿,其实只是在贴图上画点黑色

高技术效果的欠缺造成游戏的最低效果与最高效果区别不大:

最高效果



最低效果

那么为什么区别不大呢?因为这款游戏大多数效果都是靠贴图实现,而不是sharder.所以无论你开啥效果也没太大区别.

现在让我们去掉带有LOD属性的近距贴图

.........

物理与破坏:

整体Hitbox
Hitbox系统是传统的游戏伤害和物理运算判定系统,每个物体都是一个整体,整体内划分几个区块,2007年之前的游戏全部采用该系统。

而现在的新一代Havok Destruction游戏已经采用模块化分区碰撞检测系统替代整体hitbox,游戏每个物体可以由多个模块组成。可以通过击毁物体的某一部分(如履带)造成物体部分功能缺失。 也可以根据碰撞力值演算生成不同程度的全地形破坏效果

碰撞检测终极版:

碰撞检测与Hitbox混用系统的破坏效果(早期碰撞检测):
Crysis:

整体Hitbox的破坏效果

战地2:

场景渲染规划:

整个地图设计:

地图尺寸:
IW Engine支持1024 *1024的地图,不过在游戏实际运用中不总是这么高,大部分时候都只有256*256甚至在室内/船上等情况是128*128及128*256. 这点像CE2引擎和Frostbite引擎一样,本身支持很大的地图规格,实际却只使用2048*2048规格.

所以只能靠假门遮挡和限制玩家行动路线,来让玩家误判地图大小.
(荒野大嫖客,crysis,bc2等游戏中,所有房屋都可以进去)

COD地图设计

注:方块=假房屋,有门窗,不能进
















LOD:
大多数游戏中LOD的作用是根据距离在远景中调用更低的贴图分辨率和更低精度的模型,并且停止渲染某些物体,而COD系列比较特殊,只有一两百米之内的物体会运用到LOD.最远的"物体"和贴图丝毫不降低精细度,因为它不存在模型






大型场景:
游戏中无论远景近景,都只是一个纸片,纸片分半立体2.5D贴图和平面2D贴图两种

同时要注意到,IW连2D和2.5D贴图都只做了一面,另一面是透明的(卧槽,下个葫芦娃还是有码的)

一款07年的伪MMOFPS游戏-穿越火线使用的纸片技术还略显稚嫩,只用了2D贴图

COD采用2D贴图技术的纸片远景




采用2.5D纸片技术的:








这些意味着地图大小不够而且离开地面会露馅,无法实现玩家自由驾驶飞行载具(如直升机,固定翼飞机,无人机).

什么样的地图能飞起来呢:

Crysis:















战地2











上图中的MSL寺


对比COD4的:





战地:叛逆连队2:









以上几款游戏的多边形数量与执行效率:

然后就是执行效率低下,COD优化很差. 多边形生成率等参数惨不忍睹




多边形生成率=当前帧多边形数量X每秒帧数

通常在同样场景空间下,多边形数量更多意味着场景内的图像复杂度更高,表现更精细.或者同样精细度下场景空间更大.
而多边形生成率是3D图形业界衡量软硬件渲染性能的重要指标.

很多著名射击游戏都是执行效率差优化差,靠小场景,纸片贴图远景充数的典型


以下是各图像引擎在我同一台机器上的执行效率(多边形生成率)

1. CryEngine2 (Crysis)
多边形数量:2,300,392个/帧
帧率:28.8帧/秒
多边形生成率:66,251,289个/秒

2. Frostbite 1.5 Engine (BFBC2 beta)
多边形数量:1,496,398个/帧
帧率:37.0帧/秒
多边形生成率:55,366,726个/秒

3. Chrome4 Engine      (COJ:BB)  
多边形数量524,186个/帧
帧率:61.2帧/秒
多边形生成率:32,080,183个/秒


4. Unreal Engine 3 (镜之边缘)
多边形数量:177,517个/帧
帧率:52.0帧/秒
多边形生成率: 9,230,884个/秒

5. IW4 Engine (现代战争2)
多边形数量:99,411个/帧
帧率:70.4帧/秒
多边形生成率: 6,998,534个/秒


其实以UE3,source,IW4等引擎的厂商也很有自知之明.会对场景进行简化,例如像一开始那样使用纸片贴图代替模型. 减小地图大小.

结语:

IW自知没有核心技术,也就是尖端图像引擎的自主研发能力,不愿意在这里浪费金钱的投入

且自己只持有一套2001年的ID Tech 3引擎的授权,只能以此为基础加入SM2.0/SM3.0的部分支持,所以执行效率非常低,图像引擎的优化很差。

所以经过多年的修炼,掌握了一套独有的2D/2.5D贴图运用本领,设法以更低的多边形数量达到较理想的效果,把仅有的那点运算能力放在枪模,人物上,不过由于图像引擎的缺陷,始终无法再大场面上有所作为,像孤岛危机,战地:叛逆连队2等游戏的过场全都使用自己图像引擎即时演算的过场方式,已经超过了很多游戏的CG,而COD系列一直在播放预先制作好的CG。

IW的CEO和首席技术官被开除之后闲下来了有空可以去参加代表世界最尖端游戏技术的GDC2010(Game Developers Conference/游戏开发者大会)多学习学习DICE,Crytek,GSC,顽皮狗,Techland等公司的讲课

上课的都是希德梅尔,卡马克等大师

最上面的就是世界第一游戏制作人 席德梅尔, 下面的那个是EA DICE做战地英雄/战地OL的Ben Cousins,做的演讲是关于游戏盈利方式转变的。 再下面的是EA Bioware的Ben Cloward 他是HLSL渲染函数方面的大师,包括DICE在内使用HLSL渲染的制作组都在学习他的课程,为质量效应2做了很多贡献。 右下角的MM是负责升级EA从Valve代理的L4D的Source2007图像引擎。


GDC2010大会将于3月9号-13号在旧金山举行,VIP票价2000美元,大概会有200场以上的游戏制作教学。

类似GDC的活动还有Graphics Hardware和SIGGRAPH

GDC售票相关查询:
http://gdconf.com/attend/passes.html?cid=GDC10PGWP

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值