MobilePBRLighting优化思路2
在最近的研究工作中,进一步对移动端PBRLighting进行了优化,以下是一些优化截图,由于后续整理文章使用:
PBRLighting(未开启伽马矫正):


MobilePBRLighting(高质量版本,未开启伽马矫正):


MobilePBRLighting开启伽马矫正:



可以看到,MobilePBRLighting在大部分渲染上表现得跟标准PBRLighting非常接近,但是这是一种快速方案,意味着有一些需要我们调整的参数,对于这个场景,使用PATTENR5模式,并使用关闭SpecularModel1或SpecularModel2。

对于其他情况,如下图:

左边是MobilePBRLighting,右边是PBRLighiting。从上往下,第一个和最后一个使用PATTERN1模式,并且使用SPECULARMODE1模式,表现和PBRLighting很接近。第二个和第三个需要环境反射,所以使用PATTERN5,并且使用SPECULARMODE1模式,同时设置RoughnessLod为8和16,表现非常接近PBRLighting。红色的球,使用PATTERN5模式,开启SPECULARMODE1模式,跟标准PBRLigiting表现差距比较大,我们关闭SPECULARMODE1,选择开启SPECULARMODE2模式或使用默认Specular模式,如下:

使用PATTERN5+SPECULARMODE2模式。
对于PATTERN1和PATTERN5的区别,PATTERN1性能最好,但是适合那些类似上面第一个和最后一个不需要镜面反射的粗糙物体。对于PATTERN5,根据金属度,RoughnessLod和SpecularMode来调整效果,其中默认的SpecularMode模式最快(即同时不勾选SpecularMode1和SpecularMode2)。
对于某些情况下,开启SpecularMode1或SpecularMode2才是正确的接近PBRLighting的效果,至于为何有这种区别,原因在于使用了近似BRDF和IBL算法。不能顾全所有情况,所以需要根据不同情况调整参数。但需要调整的也仅仅只是这几个开关参数。不需要动材质的其他参数。
还有一个低质量模式,勾选LowQuality即可,如下:



如果你追求性能的话,可以开启这个模式。
MobilePBRLighting优化思路2的更多相关文章
- mysql优化思路
/* mysql优化思路 1.数据库设计 2.sql语句优化 3.数据库参数设置 4.恰当的硬件资源和操作系统 数据库设计 数据的3NF( ...
- redis在实践中的一些常见问题以及优化思路
1.fork耗时导致高并发请求延时 RDB和AOF的时候,其实会有生成RDB快照,AOF rewrite,耗费磁盘IO的过程,主进程fork子进程 fork的时候,子进程是需要拷贝父进程的空间内存页表 ...
- 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)
注:本文仅用于在博客园学习分享,还在随着项目不断更新和完善中,多有不足,暂谢绝各平台或个人的转载和推广,感谢支持. 一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是 ...
- Spring配置表友好性优化思路
Spring配置表需要尽量保证对程序员的友好性,一下提供一种优化思路. 中途未保存,心态炸了,只贴图了,fuuuuuuuuuuuuuck 第一种(最烂,最不友好):以Json的格式保存在配置表中,程序 ...
- PHP优化思路
想起来记录一下自己对PHP的优化思路 针对Nginx和 PHP-FPM进行优化 首先应该分为代码层面.配置层面.架构层面 代码层面 参见了https://segmentfault.com/a/1190 ...
- 转:使用RNN解决NLP中序列标注问题的通用优化思路
http://blog.csdn.net/malefactor/article/details/50725480 /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author ...
- 【58沈剑架构系列】mysql并行复制优化思路
一.缘起 mysql主从复制,读写分离是互联网用的非常多的mysql架构,主从复制最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重. 为什么mysql主从延时这么大? 回答:从 ...
- MySQL order by的一个优化思路
最近遇到一条SQL线上执行超过5s,这显然无法忍受了,必须要优化了. 首先看眼库表结构和SQL语句. CREATE TABLE `xxxxx` ( `id` ) NOT NULL AUTO_INCRE ...
- spark(二)优化思路
优化思路 内存优化 内存优化大概分为三个方向 1.所有对象的总内存(包括数据和java对象) 2.访问这些对象的开销 3.垃圾回收的开销 其中Java的原生对象往往都能被很快的访问,但是会多占据2-5 ...
- Nginx优化思路
对于高性能网站 ,请求量大,如何支撑? 1方面,要减少请求 对于开发人员----合并css, 背景图片, 减少mysql查询等. 2: 对于运维 nginx的expires ,利用浏览器缓存等,减少查 ...
随机推荐
- 区块链特辑——solidity语言基础(七)
Solidity语法基础学习 十.实战项目(二): 3.项目实操: ERC20 代币实战 ①转账篇 总发行量函数 totalSupply() return(uint256) ·回传代币的发行总量 ·使 ...
- liunx系统安装Redis详细步骤
liunx系统安装Redis详细步骤 官网下载Redis安装包 使用工具将redis安装包拖入liunx系统 创建Redis存放目录 mkdir /usr/local/redis 解压到redis存放 ...
- 简述 JavaScript 的执行机制
一.单线程 为了解决这个问题,防止下一个任务等待上一个任务等待太长的时间,所以提出了 Web Worker标准,允许 JS 创建多个线程,于是JS出现了同步 和 异步 ,异步就是可以同时进行多个任务, ...
- Node.js学习笔记----day05(在Node中操作MySQL)
认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.安装 初始化项目 安装mysql(这里的mysql是node用来操作mysql的一个第三方包,包的名字就叫mysql) 安装mysql包的 ...
- VisionPro学习笔记(1)——软件介绍和基本使用
前言 自己使用visionPro已经有段时间了,最近也一直在研究其算子的理论,为了加深印象,计划将自己的学习笔记整理在博客园,当然其官方文档对如何使用及其各种算子都有详细的介绍,所以这里的笔记仅仅为个 ...
- .NET Core项目部署到Windows系统Docker
1.新建一个ASP.NET Core Web应用(模型-视图-控制器) 2. 项目启动Docker.Docker OS选择Windows 3.系统默认的dockerfile文件如下 #See http ...
- SpringMVC的表单组件、国际化
spring mvc 的表单标签库 1.Student实体类 package com.southwind.POJO; import lombok.Data; @Data public class St ...
- Spring(IOC实际开发使用、底层原理)
实际开发的使用 实际开发中会将程序分为3层: Controller Servlet Repository(DAO) 关系Controller 调运Servlet 调运 Repository(DAO) ...
- 国外的SRE都是干啥工作的?薪资如何?
本文翻译自:https://www.flagship.io/glossary/site-reliability-engineer/,意译~ 众所周知,开发和 IT 运营之间因为屁股决定脑袋,存在巨大的 ...
- 开源项目推荐:3D点云处理软件CloudCompare,
3D point cloud and mesh processing software,Open Source Project,Based on Qt5. CloudCompare是一款基于GPL开源 ...