影视和引擎当中的PBR材质和线性色彩空间

2023-12-01 03:38

本文主要是介绍影视和引擎当中的PBR材质和线性色彩空间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pbr

Pbr材质应该都熟悉吧,就是如今游戏影视广泛应用的物理材质,pbr有很多种实现方式,而且不同的pbr有不同的特点。如今pbr总是和线性空间联系在一起,虽然两者并不是绝对依赖,但都是为了让渲染更加真实更加理性化的方式。

pbr在非固有色贴图上需要更明确定义贴图是是线性的,原因是一般固有色贴图需要人的感知,而且因为历史遗留问题,大多数固有色贴图都是需要人眼感知的,人眼感知就会产生gamma校正问题,技术就不细说了,因为很多技术博客都提到了,通俗点的说法就是人眼看到物体的颜色其实已经经过视觉和大脑的处理了,并不是物体以前的颜色了。

Untiy3d默认使用左侧gamma方式容易曝光,右侧是线性的,不容易曝光

 

线性空间下物体效果,最大的优势就是光照的自然,特别是在光影在物体表面的衰减上

下面是对比图

离线渲染下也是非线性空间下的物体容易过度曝光,或者灰蒙蒙的

 

 

所以固有色通常标记为srgb,表示这是人眼里看到的颜色,这样计算机就能将这类图片在内部转换成线性的,来让整个场景贴图计算更符合自然

而非srgb贴图,通常是可视化制作出来的(比如如今的substance painter之类),

实时渲染

Unity3d总的线性空间和图片srgb设置

Unity3d默认是gamma空间,这是因为线性空间需要支持OpenGL ES 3.0,部分手机和苹果机不支持

Unreal4当中的默认就是线性空间,这也是为什么很多ue4项目质感很不错的

贴图处理格式还是要制作者根据实际情况调整

离线渲染

(这里以maya2016 arnold4为例)

以前老版本设置比较繁琐,这也是为什么以前很多渲染项目中效果不如引擎中的,不仅需要自己改色彩空间,设置图片是否是线性还需要再连节点(因为以前版本arnold不能识别maya中的贴图信息)。但是2017以后arnold5已整合如maya默认即线性空间,只需要关系图片是raw还是srgb了。

 

可以看出线性空间和PRB都是必要的。

 

制作环节

这里要说下一般有颜色的贴图都是srgb的

法线贴图是线性的,但以前软件一般都能自动把法线贴图认对,很多制作人员可以手绘法线贴图,这是为什么呢,因为熟练...

还有以前使用的HDR环境贴图其实也是线性的,有人问那么mask贴图或者3s贴图等是线性的吗?答案就要看你的制作环境了,如果如今在pbr相关dcc软件中制作,那么这些贴图都是线性的,如果是以前的素材,那八成都是srgb的了,因为以前软件多为非线性空间,贴图效果都靠对着凑,所以如今在线性空间里都是可以算srgb的,虽然大多数贴图还是要重新凑。

 

一般制作人除非项目指定某种金属(或者高精度项目),其实并不需要关心哪种颜色代表的是金属度多少多少,粗糙度多少多少,因为我们只需要在相关软件里观察调整质感导出贴图,在其他软件里放上,或渲染或实时,整体效果是对的就可以了。现在相关贴图软件比如sp,sd之类直接就能在正确的线性空间下预览pbr材质的效果。

 

 

这篇关于影视和引擎当中的PBR材质和线性色彩空间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/439644

相关文章

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主