历史上的今天

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

正在发生

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

发布者:BoldDreamer 来源: Imagination Tech关键字:PowerVR  GPU 手机看文章 扫描二维码
随时随地手机看文章

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(命令行工具)的一个命令来完成,这样的封装减少了运行时必须从内存中检索纹理数量的操作,这样有助于提升系统整体的性能。

关键字:PowerVR  GPU 引用地址:技术文章—PowerVR平台基于物理渲染技术—模型

上一篇:机器人清道夫真的能实现吗
下一篇:AWTK能为行业应用带来何种改变?

推荐阅读

光热发电系统示意图   去青海旅行,好多人会建议一定要带好防晒霜,因为实在是太晒了。   确实,青海省拥有丰富的太阳能资源,年太阳总辐射量在2000kWh/m2以上,年日照时数在3200小时以上,也就是每天太阳照射平均约9小时,青海省还具备电网接入、冷却水源、大量的荒漠化土地等条件,所以十分适合建设大型太阳能光热发电站。   作为太阳能光热...
  大众集团(Volkswagen Group)已经开始在德国萨尔茨基特开发、测试和生产尖端电池技术,到2024年将创造1000多个就业岗位。   这些电池将在大众汽车的研发中心和下萨克森州萨尔茨基特(Salzgitter)的试点生产线上进行开发,同时还将通过该公司与诺斯奥尔特的一家新合资企业建设一座新的电池工厂。   萨尔茨基特工厂于今天开业,约有300名专家...
据国外媒体报道,在连续5年增长之后,全球纯晶圆代工市场的规模在去年有下滑,但研究机构预计,今年又将恢复增长。 从研究机构的预计来看,全球纯晶圆代工市场的规模在今年将达到677亿美元,较去年的570亿美元增加107亿美元,同比增长19%。 研究机构预计全球纯晶圆代工市场今年增至677亿美元,也就意味着在他们看来,这一市场在今年将恢复增长。 2019年,...
据新华社9月25日消息:经中国政府不懈努力,当地时间9月24日,孟晚舟女士已经乘坐中国政府包机离开加拿大,即将回到祖国,并与家人团聚。孟晚舟(资料图 来源:央视新闻)孟晚舟在中国政府包机上发布的感言:月是故乡明,心安是归途舷窗外一片漆黑,机翼上的航行灯闪烁不停,在寂静的夜空中,这些许的微光显得格外温暖。此刻,我正飞越北极上空,向着家的...

史海拾趣

问答坊 | AI 解惑

第四讲 利用Boost和Buck-Boost实现LED驱动

不管我们是否要控制输出电压或输出电流,Boost调节器都要比Buck调节器更难设计。持续导通状态(CCM)Boost转换器中的平均感应电流等于负载电流(LED电流)乘以1/(1-D),这里D是占空度。Boost电压调节器需要设计者考虑到输入电压的限制来保证电感的 ...…

查看全部问答∨

运放设计宝典

这是我在网上收集的一些好的运放方面的资料,共享一下!…

查看全部问答∨

如何在WINCE下禁用DHCP?

最近公司在做个项目,需要能修改IP,SUBMASK,NETWAY,这个修改的程序是写出来了,但是因为系统默认的是使用DHCP来分配IP的,所以就算修改了IP,下次系统再启动的时候IP又变了,等于没有修改,本来想修改系统对DHCP的默认设置的,但是还是希望能通过程序来对 ...…

查看全部问答∨

ucos ii 下GPRS模块通过拨号方式进行tcp连接,不知如何下手?

    现在mcu是stm32 芯片,gprs模块是华为gtm900 ,通过查找资料如果不用模块内部的协议栈的话,自己得在ucos ii上实现ppp协议与tcp/ip协议栈,现在在网上下载了ucip1-0-3,里面就是src 目录下,有相关代码,里面还有makefile,似乎应该在li ...…

查看全部问答∨

使用OWNER-DRAN方法将BUTTON改为CHECKBOX使用

按扭ID_BTN_CIRCLE和ID_BTN_RANDOM要用图片做成CheckBox功能,分别根据两个全局变量确定选中和未选中状态. 然后在BN_CLICKED事件中分别改变这两个全局变量.         case WM_DRAWITEM:           & ...…

查看全部问答∨

请好心人帮忙下载一下软件,然后发我! 万分谢谢.

http://www.96qd.com/driver/softdown.asp?softid=166173 请哪位好心人帮我下载这个驱动程序,之后压缩打包后发我一下, 万分谢谢! 我的email: hkds2008@163.com 在线等!…

查看全部问答∨

如何对第二代身份证的内部信息进行过读写

请问各位大虾,有没有人对第二代身份证的内部信息进行过读写,或者进行二次开发,如何读写,有没有什么相关的设备。…

查看全部问答∨

新版第一帖:【重要信息】如何查找STM32的官方文档

1)进入ST中文主页:http://www.stmicroelectronics.com.cn/ 2)在“产品”栏目点击“微控制器” 3)在“大中华地区相关信息”栏目点击“中国**地区” 这时你应该看到很多好东西了,我们会把所有翻译出来的中文资料放在那里。 很简单吧~~~ ...…

查看全部问答∨

关于ZIGBEE的组网问题

以前没有接触过zigbee,现在又有一个项目需要用到,所以作为初学者莽撞的问一些问题,还望大家指教: 1)项目中需要将10个节点组成一个类似于串联的线路,以便于首尾可以收发信息。(问题是这样的方法可行吗?怎样组网) 2)ZIGBEE的传送距离是多 ...…

查看全部问答∨

请问audio CODEC 中AGC 跟DRC 有何区别?

请问audio CODEC 中AGC 跟DRC 有何区别?…

查看全部问答∨
小广播
最新物联网文章
换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved