http://www.gdcvault.com/free/category/280/conference/
这里的一个。
基本上是介绍directcompute的东西。
原本gpu是并行计算processor典型代表,处理流数据,像vertex,fragment这种independent的数据上的计算。
可以说processor上并行的极致。
原本的cpu上也是以逻辑计算为代表,计算模型上可以做复杂的交互。
然后但是cpu和gpu端都是渴望对方的优势,更好的逻辑能力和更好的性能。
因此cpu开始多核,超线程,vector processor,大幅度提高计算能力。
gpu端开始摆脱vertex/fragment计算模型,向更好的逻辑上发展----开始有能力去做物理,raytracing等复杂计算。
direct compute就是gpu向复杂逻辑运算进化的结果,在并行基础上,提供了general computing的东西,包括:
- thread&thread groups
- thread group shared memory
- barriers, atomic operations
除了physx,raytracing(indirect lighting shadow)的计算可以直接从中获益之外,hdrtonemapping和order independent translucency rendering也可以从中获益。
细节属于撂爪就忘的,就skip掉。
个人看法,direct compute(DS---direct shader)可能会和geometry shader类似,在cpu端的快速发展下,扩展到rendering以外的部分的速度会比较慢。
能跑到directcompute的时候(nv4系列左右了),cpu端应该也是i7 4核8硬件线程这个级别了,那么大部分游戏的simulation部分都是cpu端搞定绰绰有余了。
倒是和rendering关系紧密的一些phyx之外的东西,类似vegetation,water,complex lighting&shadowing会有越来越高的要求,这个部分走向direct compute是非常有意义的。