历史上的今天
返回首页

历史上的今天

今天是:2024年09月25日(星期三)

正在发生

2019年09月25日 | 技术文章—PowerVR平台基于物理渲染技术—模型

2019-09-25 来源:Imagination Tech

Image-BasedLighting 是PowerVR SDK中包含的最激动人心的视觉示例之一,它使用了基于物理渲染技术和基于图像光照技术生成令人非常惊喜的效果,而且能够非常流畅稳定的运行,尤其非常适合移动端PowerVR GPU。

 

我们认为ImageBasedLighting 是一个非常有意思的示例,值得进行深入讨论,因此我们集思广益完成了一个用户指南“PowerVR平台上基于物理光照和图像渲染技术”,用户指南概述了此示例是如何工作的,包括以下几点:

 

对该示例各个模块进行分解介绍

 

讨论使用了哪些assets

 

这些assets是如何处理和应用的

 

为什么需要选择特定的图像格式

 

如何管理高动态范围图像的取值问题

 

该示例中各种着色器是如何工作的

 

如何优化使得实时的物理渲染成为可能

 

PVRTexTool工具功能非常强大

 

当然还有很多其他内容,我们做了很多工作来实现这个示例。

 

这篇文章会让你对整个文档的内容有一定的了解,重点介绍了该Demo中使用了哪些assets以及处理过程,在后续的文章中我们将仔细介绍这些assets以及如何优化着色器使得应用变得更加流畅和稳定。

 

但是在我们进一步讨论之前有一点很重要,即ImageBasedLighting 功能的实现主要是基于Epic Games公司的出版物《虚幻引擎4中的真实阴影》,这本书的作者是布莱恩·卡里先生(Brian Karis),其中介绍的内容可以说是这个示例的理论基础,我们对Epic Games公司表示了感谢。

 

那么事不宜迟,让我们开始吧!

 

等等…基于物理渲染(PBR)?

 

是的,当然可以,我相信你们很多人都听说过基于物理渲染(PBR)和基于图像光照(IBL),但是为了确保每个人都能够有一定的认识下面还是介绍一下:

 

基于物理渲染是一系列技术,它试图基于这些对象的真实材料属性来模拟光与对象的交互。这些材料的属性包括反射率、发射率、粗糙度和金属性等,所有这些都可以改变光从物理表面反射的方式。这些属性通常在纹理映射中设置,纹理映射在处理时会由着色器进行采样,这对于艺术家和设计师来说是非常棒的,他们可以通过调整这些材料的属性从而更直观的方式来呈现对象。

  

基于图像光照(IBL)

 

基于图像光照(IBL)主要用于模拟全局光照,全局光照是基于这样一种概念,即三维场景(以及现实世界)中的所有物体都至少会有一点反射效果,落在物体上的光不仅来自于太阳等直接光源,还有来自于场景中其他物体反射的光。对于基于图像光照

技术全局光照是使用一组图像来近似地捕捉来自各个方向的光。在我们的示例中采用了环境映射的方式,对现实场景中的所有光线信息进行编码,当光线从遥远的地方照射过来时这种方法的处理效果很好,但是代价太大了,而且效果只能是静态的。使用基于静态图像光照的最大优点是使得基于物理渲染功能在各种GPU平台上都能够运行,即使是低端GPU器件。

 

基于物理渲染和基于图像光照在游戏行业中被广泛采用,Unity和虚幻引擎都默认支持基于物理渲染功能。

 

现在大家有了基本的认识和了解,下面我们要介绍一下使用了哪些assets资产使得基于物理光照的示例成为可能。

 

资产(The Assets)

 

Assets-资产指的是那些在运行前就要创建好的内容片段,比如纹理、模型、音频等,如果大家仔细阅读了上文内容,你就会发现我们其实已经介绍了一些重要的assets资产。

 

这个示例中使用到的assetws资产可以分为四类:1. 模型和相关纹理2. 存储在查找表(LUT)中的双向反射分布功能(BRDF)3. 环境地图

 

4. 全局光照地图

 

今天我们重点讨论第一类!

 

模型和纹理

 

模型文件描述的是示例中需要渲染的对象网格,对于Image-Based Lighting 我们使用的是一个破损的头盔模型,取材于glTF样例模型,在GitHub repository库中保存,这个库由Khronos组织来管理维护。

 

 

这个模型非常适合展示基于物理渲染技术,奇妙之处在于它是混合了不同材质和表面的模型,包括轻微弯曲的玻璃表面,不同的金属表面(有一些抛光和损伤的部分),将所有这些不同类型的表面组合在一个紧凑的模型对象中显示了基于物理渲染技术是如何精确的建模来呈现漫反射和镜面反射的效果。

 

关于模型不同区域的反射性、金属性以及粗糙度的信息存储在纹理映射中,这些纹理映射由模型资源来提供,这个模型附带了所有你可能需要的纹理从而产生更加逼真的效果。

 

如下所示:

 

反射率映射

 

反射率反映的是物体正常基色或漫反射的颜色,这意味着这个纹理不包含任何阴影或方向光信息,你可以把它想象成物体在正常白光下的颜色。

 

 

 

金属性和粗糙度映射

 

粗糙度是不可避免的,它表示的是物体表面光滑或粗糙的程度,对于基于物理渲染(PBR)方式,粗糙度决定了镜面反射如何在表面上产生,在像镜子一样光滑的表面上光线反射的角度与入射的角度相同,这意味着外部世界将在表面上得到完美的反射。对于非常粗糙的表面入射光以不同的角度散射,几乎接近漫反射,导致非常模糊的反射效果,粗糙度的取值范围是0.0到1.0.

 

在不深入研究材料物理的前提下,金属的属性决定了材料应该被识别是绝缘体还是导体,像木头或陶瓷这样的绝缘体倾向于吸收和散射光,产生漫反射,而像金属这样的导体产生镜面反射,因此金属的属性决定了漫反射光和镜面光的计算应该如何结合。

 

金属度为0.0可以认定为绝缘体,因此我们将只使用漫反射对颜色产生一定的影响,对于金属度为1.0的材料可以认为是导体,所以我们只使用镜面反射。现在虽然一种材料不能单单的认为是半导体或半绝缘体,但物体可以用不同的材料进行分层处理,所以对于金属度在0.0和1.0之间的材料散射和反射效果是结合在一起的。

 

金属度和粗糙度的取值范围都在0.0到1.0之间,这意味着它们只需要一个纹理的单一通道来存储所有的信息,然后将这两个映射参数封装到一起,每个颜色通道代表不同的属性,大家可以参看下图,蓝色通道反映的是金属度,绿色通道反映的是粗糙度。

 

 

 

 

放射性映射

 

纹理表面包含所有自发射光源信息,这些特性与LED或LCD显示器类似,在着色器完成所有PBR的计算之后,放射性映射效果会被添加到最终的像素颜色中,从下图你可以看到只有一小部分区域会有亮光,这是头盔面板上设计了一个HUD装置。

 

 

 

法线映射

 

法线映射表示的是物体表面的中等尺度结构,关于物体上任何凸起或凹痕的信息都会反应在法线映射图中。

 

法线映射图可以用于帮助计算漫反射光对物体表面产生的效果。

 

 

环境遮挡映射

 

环境遮挡映射图反应的是渲染器对于物体不同区域在环境光下的亮度效果。

 

 

环境遮挡效果可以根据模型的几何形状预先计算,如果同等强度的光从四面八方照射到物体上,物体暴露的部分则越亮,而封闭或遮挡的部分则越暗。阴影的数量通常是通过从物体表面的点向四面八方投射的光线来计算的,这些光线照射物体某一部分的比例越大,那么这一部分在环境遮挡映射图中的颜色就越深。

 

 

纹理的处理

 

在将这些材质用于演示之前我们还需要作一些准备,大部分工作只是简单的将原始jpeg文件压缩为Imagination专有的纹理压缩格式PVRTC,这只需要使用PVRTexTool工具点击几下鼠标就可以完成了,这意味着纹理在保持较高图像质量的同时占用更少的磁盘空间。

 

我们也做了一些纹理封装,如前文所述金属度和粗糙度映射贴图已经被打包成一个单独的纹理,分别存储在纹理的蓝色和绿色通道中。这种方式很好但仍然有改进空间,因为纹理可以通过使用空的红色通道进一步填充,我们选择将环境遮挡映射贴图也封装到纹理中,因为和金属度和粗糙度一样,它的值也是只在0.0到1.0之间,所以可以将所有的数据放在一个通道中,实现这个功能的是PVRTexTool工具,可以使用PVRTexTool CLI(命令行工具)的一个命令来完成,这样的封装减少了运行时必须从内存中检索纹理数量的操作,这样有助于提升系统整体的性能。

推荐阅读

史海拾趣

Hilscher Gesellschaft für Systemautomation mbH公司的发展小趣事

随着在高压电源领域的深入发展,HVPSI逐渐参与到行业标准的制定工作中。公司凭借其在技术上的深厚积累和市场经验,为行业标准的制定提供了宝贵的建议和数据支持。这些标准的出台不仅规范了市场秩序,也进一步巩固了HVPSI在行业内的领先地位。

Chengdu Sino Microelectronics Technology Co Ltd公司的发展小趣事

随着国内市场的逐渐饱和,成都华微科技开始将目光投向国际市场。公司凭借过硬的产品质量和完善的服务体系,逐渐在国际市场上崭露头角。通过与国外客户的深入合作,华微科技不仅提升了自身的国际影响力,也为中国集成电路设计行业在国际市场上赢得了更多的话语权。

Elpress AB公司的发展小趣事

Elpress AB始终将质量管理作为公司发展的核心。公司建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。为了进一步提升产品质量和管理水平,Elpress AB于1992年获得了ISO 9001认证,成为电气连接领域的领军企业之一。此后,公司还通过了ISO 14001:2015环境管理体系认证,积极履行环保责任。

EM Devices Corporation公司的发展小趣事

随着公司的发展,EM Devices Corporation不断加大对研发的投入,致力于推出更具创新性的产品。一次偶然的机会,公司的研发团队发现了一种新型材料,它具有优异的电气性能和稳定性。经过数月的艰苦研发,公司成功将这种材料应用于产品中,并推出了一款性能卓越的新型电子元件。这一创新产品不仅为公司带来了丰厚的利润,还进一步巩固了公司在行业内的领先地位。

Curtis Industries公司的发展小趣事

Curtis Industries公司在发展的同时,也积极承担社会责任。公司关注环保问题,采用环保材料和节能技术生产产品,减少对环境的影响。此外,公司还积极参与公益活动,支持教育事业和社会福利事业的发展。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

Ceratech Corporation公司的发展小趣事

随着全球化进程的加速推进,Ceratech Corporation公司意识到要想在激烈的国际竞争中立于不败之地,必须实施全球化战略。公司开始积极拓展海外市场,通过建立海外分公司、参加国际展会等方式,加强与国际同行的交流与合作。同时,公司还积极引进国际先进的技术和管理经验,不断提升自身的创新能力和管理水平。通过全球化战略的实施,Ceratech Corporation逐渐成为了国际电子行业中的佼佼者。

问答坊 | AI 解惑

单身男女找缘份

看看你的缘份是谁,预定你后面的楼位,不要定从复了啊。 我先来定108号了。 不过要定位子先要发点东西 来啊。 …

查看全部问答>

单片机解密,芯片解密PCB抄板,烧录IC

深圳市南源电子科技有限公司 芯片解密/单片机解密/IC解密/PLD解密/CPLD解密: (慎重声明:仅限合法研究用途) 单片机(MCU)解密、IC解密 、PLD解密、CPLD解密、鉴定芯片型号;成功率高,周期短,费用合理. 大量供应PIC/EMC兼容IC,性能稳定, ...…

查看全部问答>

红外发光二极管的接收头主要用什么?

红外发光二极管的接收头主要用什么?外发光二极管又是用什么样的二极管? [ 本帖最后由 冷枫yj 于 2009-5-15 10:37 编辑 ]…

查看全部问答>

wince 5.0 如何加载touch驱动

各位大侠,我在wince5.0的PB中搞了好久加载touch驱动就是没有搞出来,各位帮帮忙了,告诉小女子怎么加载?…

查看全部问答>

想买一块嵌入式开发板,大家有什么好的建议?

请推荐一款嵌入式开发板子,可以移植uclinux,wince,arm 平台的,其他平台也ok了.基本的 usb device .LCD 触摸屏的最好 了,LAN interface.....大家有什么好介绍..…

查看全部问答>

请问QV2 D极为何会发黑,而且QV2零件还是好的

请教各位大侠以下问题:  以下图中QV2 N-MOS的D极在线路板上为何会有烧黑的痕迹,而且该MOS管用万用表量测还是好的, 这应该是个利用电感 升压的电路,输入是+12v ,输出为-52v左右,是共Voip电压使用的, 电感LV4=6.8uH +/-20% -4.5A ...…

查看全部问答>

发现SM32的STOP休眠模式很难适用实时低功耗应用!

STM32有三种休眠模式:SLEEP、STOP、STANDBY;休眠层次依次加深,功耗越来越低。SLEEP 模式最容易使用,任何中断或事件都可以唤醒CPU。但低功耗的表现不尽如意。STANDBY 模式下对于实时采集系统来说,几乎没法用。STOP 模式怎么 ...…

查看全部问答>

请教,怎样对STM32FARM中Flash的某一位擦除?

    想把数据分块存储在Flash中,想单独对Flsh中某一部分进行擦除和写入,而不是对整个业擦除。     看了Flash.c文件中的选择擦除函数,没看懂什么意思,这个函数没有指定擦除地址竟然能实现擦 ...…

查看全部问答>