Advertisement

在OpenGL框架下完成基于PBR技术的着色器开发

阅读量:

背景

初入公司参与的第一个项目即为通过OpenGL技术加载汽车的3D模型,UI设计团队提供了基础颜色(Base_Color)、粗糙度(roughness)以及金属度(metallic)等参数,这些参数正是基于PBR材质体系所设定的。此前在加载鞋子模型时采用的是Blinn-Phong光照模型,该模型同样可以用于呈现汽车3D模型的效果,但在实现过程中需要对漫反射与高光参数进行细致调整,以期达到较为理想的效果。然而,与真实渲染效果相比,这种方案仍难以令人完全信服。因此,在此次汽车3D模型的开发中决定采用PBR技术进行实现。接下来将简要介绍Android平台下PBR着色器的具体实现方式。由于PBR相关的理论知识较为复杂,本文仅针对带有贴图的PBR实现方式进行说明,对于文中涉及的其他相关概念,建议读者自行查阅相关资料进一步了解。

PBR基本原理和实现

唯有同时符合以下三项特征的光照模型,方可被认定为PBR光照模型:

  • 以微平面表面模型作为理论基础。
  • 具备能量守恒的特性。
  • 采用符合物理规律的BRDF函数。

微平面模型

当前主流的PBR技术大多建立在微平面理论的基础之上。根据该理论,所有材质的表面在微观层面均可视为由大量方向各异的微小平面构成,其中部分材质表面较为光滑,而另一些则相对粗糙。
当光线照射到这些微小平面上时,通常会引发

全部评论 (0)

还没有任何评论哟~