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。
对比性能:
6.2 shadow和hdao,
知道有这个事情就好,到时候查下api就够了
6.3 multithreading
最大的优势就是loading快了很多,可以不同thread操作资源了。
原文链接: