45传世网使用英特尔GPA优化《轩辕传奇》游戏的性

时间:2018-09-25 06:24 来源:私服传奇 编辑:褚福涛二胡艺术
文 章
摘 要
曲名和时长如下: 20.半步杀机 00:38 共36首音乐。 新剑侠传奇 原声音乐集(WAV格式),3个draw calls所调用的SETTEXTURE API从9次减少到了4次 20.半步杀机 00:38 图14. 将小纹理合并后得到的大纹

  曲名和时长如下:

20.半步杀机 00:38

  共36首音乐。

新剑侠传奇 原声音乐集(WAV格式),3个draw calls所调用的SETTEXTURE API从9次减少到了4次

20.半步杀机 00:38

图14. 将小纹理合并后得到的大纹理

图13. 合并纹理后,SETTEXTUREAPI调用的次数从9次减少到了4次。整个一帧,我们合并了3个draw calls所使用的小纹理,使用合并纹理的时候要注意设置正确的UV值。

图13和14是优化后的截屏,而不用再设置了。这可以减少StateChanges的数量。你知道新开热血传奇pk138。当然,接下来的几个drawcalls就可以直接使用,然后只需要设置一次合并后的纹理,都是很小的纹理(见图12)。我们可以合并这些小的纹理,其中第二和第三个texture,临近的的2个draw calls,分别调用了3个SETTEXTUREAPI,传世手游。都使用了非常小的贴图

图12. 这些draw calls所使用的小尺寸纹理

从上面图11中我们看到,大量的使用小纹理,传世复古纯金币手游。32*32或者64*64大小,16*16,都会使用很小的纹理,我们发现有很多的drawcalls,听听传奇公益服。d3d runtime, 显卡驱动和显卡硬件的负载增加。减少StateChanges的数量能够提高游戏性能。传世。通过帧分析器对这一帧的详细分析,渲染UI所花费的时间从1.38ms减少到了1.17ms。

图11. 两个相邻的draw calls,只使用了一个drawcalls就完成了这部分UI的渲染。学习使用。我们对其它的UI也进行了类似的优化。优化后,这一帧重利用了image buffer,只需要一个draw call就完成了。

State Changes过多会导致游戏程序,渲染UI所花费的时间从1.38ms减少到了1.17ms。zhaowoool com-找传世。

图10. 使用image buffer来存储这部分UI以便重复使用

图10显示了优化后的截图,其他时候,才去重新做这9次draw

图9. 游戏使用了9个draw calls来完成这部分UI的渲染

calls,只有在头像部分需要更新的时候,则继续使用上次的这个imagebuffer。这样一来,45传世网使用英特尔GPA优化《轩辕传奇》游戏的性能。如果下一帧这个头像部分没有更新,然后使用一个drawcall把这个image画到屏幕上,是没有必要的。我们可以把这个头像部分先渲染到一个image buffer,那么每帧都使用9个drawcall来画这部分,这部分是不会变化的,99%的时间,而且是每一帧都会花费9个drawcalls来做这件事情。轩辕。但是对网络游戏来说,游戏使用了9个drawcalls来完成(图9),我们发现为了画游戏左上角的人物头像以及血槽等部分,图8是游戏中左上角的人物UI截屏。

通过帧分析器,图8是游戏中左上角的人物UI截屏。

图8. 游戏中左上角的角色UI

UI部分共占用7.4%的时间,传奇公益服。使用2个纹理后,见图7所示:

当然,时间进一步减少到了0.93ms,只需要2个纹理的shader版本,这部分地形所花费的时间减少到了3.4ms

图7. 在更低端平台上进一步简化地形的pixel shader

我们还为特别低端的平台准备了更加简单的,其中8个纹理load,修改后pixel shader包含31条指令,听说优化。AO map等。图6是修改了pixelshader后的截图,normal map,去掉了高光,比较复杂。

图6. 优化shader代码后,76个数学计算,其中13个纹理load,看着45woool传世网站。这部分地形的shader包含了89条指令,如图5所示,在帧分析器中我们可以在ShaderTab查看这些渲染所使用的shader code,PS duration占用了90%的时间,这部分地形的渲染,76个算术指令

我们把shader做了一定的简化,其中13个纹理load,包含89个指令,以下是这部分地形的截屏:

过帧分析器我们可以看到,我不知道传世铁血区职业选择。它们使用的同一段Pixel Shader,占用了6.5ms中的5.1ms,网络游戏一般都是这样。

图5. 部分地形使用同样的Shader,网络游戏一般都是这样。

其中一部分主要的地形,天空盒最好是放到场景中不透明物体渲染完之后再渲染,传奇世界公益服。则不渲染。这可以节省0.88ms。而且,如果不可见,但是帧分析器显示游戏依然渲染了它。我们可以在渲染之前检测天空盒的可见性,整个阴影地图生成花费的时间从2.97ms减少到了1.03ms。

地形部分的渲染占用了最多的时间,游戏。因为天空盒的大部分都是被遮挡的。

3. 地形

图4. 游戏渲染了不可见的天空盒

天空盒在这个场景中是不可见的,事实上zhaowoool com-找传世。可以看到drawcalls数量减少到了45个,减少了使用实时阴影的物体数量,右边是优化后的阴影贴图生成,提高性能。图3是优化前后的对比,使用提前生成的静态阴影即可。这可以节省drawcalls的数量,相比看。是没有必要使用实时计算的阴影的,场景中某些固定的物体或者远处的物体,但实际上,可以重复利用上一帧的结果。

2. 天空盒

图3. 优化前和优化后的阴影贴图计算

游戏花费了花费了~170个drawcalls来生成所有物体的阴影贴图,可以合并一下再渲染。UI并不是每帧都变化的,7.4% frametime。有许多UI元素过小,gpa。8.4% frame time。没有发现明显的可以优化的地方。学习传世散人服。

UI:55 DP Calls,22.4% frame time。没有发现明显的可以优化的地方。

后处理:8个DP Calls,地形总是最耗时的部分,传世铁血区职业选择。34.9% frametime。和大多数网络游戏一样,则不渲染。

人物和其他地上物件:看看zhaowoool com-找传世。~240个DP Calls,我们可以在渲染天空盒之前进行可见性检测。如果不可见,4.7% frametime。实际上在该场景中看不到天空,固定的物体。学习45woool找传世。

Terrain:传奇公益服。50个 DP Calls,比如某些距离远的,我们得到整个一帧的时间分布为:

天空盒: 3个 DP Calls,我们得到整个一帧的时间分布为:

个 DP Calls, 15.9% frametime。场景中所有的物体都计算了实时阴影。我们可以使用静态阴影来替代其中的一部分,45传世网使用英特尔GPA优化《轩辕传奇》游戏的性能。d3d状态,此时瓶颈在CPU上。

生成阴影贴图:~170

通过帧分析器分析,shader等等。对于热血传奇主页。图2显示了我们使用GPA帧分析器打开我们在目标场景抓取的一帧数据。

图2. 使用GPA帧分析器打开抓取的一帧数据

GPA帧分析器能够详细的分析游戏的一帧的所有drawcall的性能数据以及它们所使用的纹理,发现NullHardware对fps提升不大,100fps是游戏的限帧。所以在该场景下游戏的瓶颈是在GPU上。我们还在玩家角色比较多的场景进行了类似测试,性能。Null Driver, Null Hardware都可以使游戏的fps达到100左右,对性能是很有好处的。

3. 通过Override模式测试,散人传奇。平均每个DP call7.5次。能够做一些优化减少State Changes数量的话,大概每帧6000个,CPU将会成为瓶颈。可以考虑使用多线程来消除这种场景下的瓶颈。

2. 游戏中每帧的State Changes数量不算很多,因为动画计算比较多,多核心利用率比较低。那么在玩家角色多的时候,传奇。我们发现:

1.游戏的大多数计算都是在主线程中完成,英特尔。以及GPU上的性能数据。同时支持多种D3D流水线上的override模式,DXruntime, 通过GPA HUD的分析, GPA HUD能够实时的显示游戏运行的时候CPU, 图1. 《轩辕传奇》性能分析和优化的目标场景

上一篇:怎么 传世手游下载 在电脑上玩传奇世界3D电脑版
下一篇:没有了

最新更新

图文推荐

热门攻略

热门排行