与对手共享?寒霜3引擎开发者Mantle解析

2013-11-26 11:32:52 来源:硬派网 作者:未知 编辑:听风飞舞 浏览:loading

  现在的GPU不仅有图形渲染功能,还具备GPGPU(通用计算)、显存与系统内存之间的传输处理「DMA」(Direct Memory Access)的执行部分。这些执行部分,毫无疑问同样是通过指令缓存所存储的指令来执行的。

游民星空
现代GPU包含图形渲染(图形)与GPGPU(运算)、DMA这些功能

游民星空
Mantle的GPU处理优化,是通过CPU方面应用程序的协调运作实现的

  Mantle实现了让应用程序管理指令缓存,不再需要中间层,应用程序可以直接控制GPU的各执行部分运作。「GPU的运作将变得与黑盒式的DirectX或OpenGL大大不同」,Andersson这样描述道。

  有了Mantle,应用程序则可以实现「某一图形渲染工作正在执行的其间,DMA得到命令,将下一个渲染所需要的数据从系统内存传输至显存」这样的协调动作,也就是减少了等待时间。

  再或者,GPGPU方面一边运算光照,着色器则同时生成阴影,最终两方面的结果加以合成,这样也可是可以做到的。

游民星空
协调工作优化的实例。这里图形方面处理渲染的途中,DMA方面复制接下来需要的数据

游民星空
其他的优化实例。GPGPU方面处理光照,同时图形方面处理阴影

  可能有人觉得GPGPU理应是用作图形以外的用途,作为图形使用这一点比较奇怪。但这正是 PlayStation 4与Xbox One这一代游戏主机在游戏图形上所使用的手段。寒霜3引擎就使用了这一模式,利用GPGPU处理culling与后期效果。

  回到Mantle。Andersson称,应用程序获得了控制图形渲染与GPGPU、DMA的各执行部分的权限,为了使应用程序可以做到适宜地覆盖并行处理,Mantle「对渲染管线进行了革新」。

游民星空

  通过Mantle,可以实现GPGPU进行几何处理与栅格化,与图形渲染同时协调工作,这是至今为止无法实现的。

  比如,有了Mantle,可以通过GPGPU执行几何处理与光栅化处理,仅将最后的像素着色任务交给着色器,这样的话就可以得到相当实用的处理速度。

  具体的,Mantle可以在游戏图形中处理庞大的顶点数据「点云(point cloud)」或皮克斯在CG动画爱用的「微多边形化(其实就是曲面细分?)」手法。也就是说,Mantle可以实现不需要三角形(多边形)网格3D模型的游戏图形。

游民星空

  PlayStation 3游戏图形流行利用Cell CPU内的协处理器进行特殊的顶点着色,这一类似通用计算的手法,Mantle使用起来也是毫无问题的。将不需要描绘的多边形进行废弃的culling操作、判定可否遮蔽的「Occlusion Query(遮蔽探査)」这些任务,可以通过GPGPU进行处理。

  这样一来,GPGPU与着色器并用的手法,达到了GPU与CPU充分利用,「支持Mantle的应用程序中,可能会实现全新的渲染机制」,Andersson对此表示期待。

游民星空

上一页 1 2 3 4 下一页
友情提示:支持键盘左右键“← →”翻页
人喜欢
游民星空APP
随时掌握游戏情报
code
休闲娱乐
综合热点资讯
单机游戏下载
好物推荐
游民星空联运游戏