DiRT2 DirectX 11 Technology

 

http://www.gdcvault.com/free/category/280/conference/

codemaster真是不错的。

之前ps3上的dirt2的品质着实让我吓了一跳。

 

这个文章从engineering角度来展示了dx11,虽然tesselation炒得是比较热的,可能这个和玩家比较容易介绍有关,但是我觉得真正dx11变态的地方是direct shader, local store data这些带来更大算法空间的部分。

 

这些必将很大程度上革新gpu编程,同时也会拖缓larabee的到来,囧。

直接进入主题:

 

1,abstract rendering layer可以抽象的一些资源,一般都是抽象出跨平台(dx version)的一票api。

可抽象的东西可以覆盖如下部分:

  • buffers
  • shaders
  • textures
  • render states
  • rendering call

 

2,使用hash来manage state----这个的确是不错,这样系统内部资源就只用一份就好,然后用hash值来操作。

 

 

 

3, tesselation部分:

  • pn-triangle来做细分多边形
  • normalmap来做displacement map来进一步增加细节度

tesselation部分带入lod,根据camera距离来确定tesselation的factor。

而且人物的skinning在cpu上做----觉得也是比较合理的,否则1k到10k的triangle,vertex shader skinning多做太多计算了,skinning的index和weight也占用太多memory。

 

原本tesselation(progressive mesh)都是cpu做的,gpu发展发展就自己来处理了,呵呵。

 

 

 

4, cloth tesselation

这部分有点意思,cloth在cpu端做cloth simulation没问题。

还加了一个scrolling normal map,这样风吹得时候就会有褶皱滚动的效果,nice!

pn-triangle tesselation+displacement map.

 

 

 

5, water

dx9下面只有normalmap的变化。

dx11下变成displacement map,效果当然赞的多,水直接能漫过轮胎了。

 

 

 

6, 性能方面

dx11和console某些方面走类似路线,就是不是单纯要消耗更多资源,而是提供更多的硬件级的算法空间,可以在同样计算能力下,通过算法的使用,取得更好的performance。

 

6.1 compute shader postprocess

看到这里无语了,太tmd high了,dx11快来吧。

 

计算的时候是用local data store,在compute shader里面做postprocess,这样sample的texture就放在local store里面,可以大幅度减少sample的次数和cache performance。

对比性能:

DiRT2 DirectX 11 Technology_第1张图片

 

6.2 shadow和hdao,

知道有这个事情就好,到时候查下api就够了

 

6.3 multithreading

最大的优势就是loading快了很多,可以不同thread操作资源了。

 

 

 

 

 


原文链接: http://blog.csdn.net/ccanan/article/details/5651676

你可能感兴趣的:(DiRT2 DirectX 11 Technology)