基于物理的照明、基于物理的渲染和基于物理的材质之间有什么区别?它们与延迟渲染和前向渲染有何不同?电影中使用基于物理的渲染,游戏中使用延迟渲染?
1 回答
看起来“基于物理的渲染”(PBR)、“基于物理的材质”和“基于物理的着色”是创建具有着色的材质的相同一般概念的不同名称,这使得它们看起来更“真实”或在渲染时基于物理。
PBR 可用于电影(离线渲染系统,Pixar 有论文)和游戏(实时:Unity和Unreal有文档)。它也可以在 WebGL 中完成,查看 Marmoset支持 PBR 的 WebGL 查看器,找到相机镜头的图片,然后尝试旋转它。另一个 WebGL 示例可以在OpenSceneGraphJS 的 PBR Demo中找到。
不同的 PBR 实现具有不同的参数,但大多数都围绕指定特定材质的“金属”和“粗糙”程度的概念,并允许渲染引擎确保材质不会以不切实际的方式反射光线,或反射的光比接收的光多,等等。例如:
此示例是来自上面 OSGJS 演示的屏幕截图的合成,并显示了具有不同程度的金属和粗糙度的单一基色。这个想法是,艺术家可以改变每种材料甚至每个纹素的这些参数,并且在涉及照明时不会出现违反物理定律的东西。这被认为比更传统的渲染技术更好,在传统渲染技术中,您可以创建镜面高光,即使在低光照条件下也会过度曝光对象。
免责声明,我自己还在学习 PBR。我最近一直在阅读它,希望能够为当前正在进行的将 PBR 添加到 glTF 3D 模型规范的努力做出贡献。Khronos(OpenGL 和 WebGL 背后的标准组织)正在创建一种开放的标准 3D 模型交付格式,该格式最终将支持 PBR,并且可以将 PBR 材料传送到 Web、移动设备和桌面上的各种渲染引擎。但是,目前 PBR 部分仍是扩展草案(截至撰写本文时),仍处于开发阶段。
我不是延迟/前向渲染专家,也许其他人可以在那里提出差异。同时,我建议从 Marmoset 阅读更多关于PBR 的理论和PBR in practice 的内容。祝你好运。