繁体   English   中英

Apple Metal中的PBR渲染

[英]PBR rendering in Apple Metal

我想主要在金属级别上工作,但是我的某些对象需要PBR。 我认为在SceneKit(基于Metal)中应该没有什么可以做的,而在Metal本身中不能完成。 但是现在我对PBR渲染感到困惑,因为它似乎是SceneKit的独有功能。 如何运作? 是否有一些众所周知的着色器或其他东西,可以在金属级上复制吗?

PBR不仅仅与着色器有关; 这是代表和近似物理现象的整体,经验性方法。

SceneKit的PBR实现只是将PBR技术整合到渲染引擎中的一种方法。 Metal不明确支持PBR,因为Metal是底层API,并且与渲染技术无关。

如果希望“ SceneKit外观”,可以假设转储SceneKit用于实现其渲染的Metal着色器 ,但这只是图片的一部分。 您需要了解如何从这些着色器函数构造渲染管道对象,以及如何构建一个使用它们渲染网格的多遍渲染器(不仅是绘制到HDR渲染目标中的初始遍,还包括执行后处理效果的后续遍,例如花朵,小插图,色调映射等)。 您还需要确保要渲染的资产具有物理上合理的材料,这本身就是一门艺术。

我的GLTFKit框架包括一个Metal PBR渲染器示例实现。 它更多地用于指导而非生产用途,但是您可能会发现阅读PBR着色器源很有趣。

关于同一问题的另一种见解 ,请参阅Apple的具有功能专长LOD示例。 它具有一些漂亮,干净的PBR金属着色器。

如果您想进入并真正了解这里发生了什么,我鼓励您阅读有关该主题的许多论文和示例。 一些最基础的是Burley 2012Karis 2013Lagarde 2015 另请参阅Joey de Vries关于该主题的文章 在过去的几年中已经取得了很多进步,但是这些东西对于入门非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM