Texture+PBR两种工作流程
一、导入Texture
1.Inpspector
TextureSize
2的n次幂,底层图形学需要,计算更快;不使用2的倍数,系统也会添加像素补全2n;
有最大尺寸限制8k,cubemap最高4k;
Mipmap
图像逐渐减小版本的列表;纹理远离摄像机时,Unity 会自动使用较小版本的纹理;LOD
内存增加33%;
WarpMode
循环模式:平铺,拉伸,镜像,一次镜像回退到拉伸,Per-Axis(uv轴不同循环模式);
FilterMode
滤波模式;采样方式:
Point:点插值,拉伸块状化(锯齿);
Bilinear:双线性插值,拉伸模糊;
Trilinear:三线性插值,除了Bilinear,在不同mipmap等级进行模糊;
AnisoLevel
各项异性过滤,掠射角观察提高纹理质量,非常消耗显卡资源,一般禁止;
2.导入器规范资源格式
Unity导入资源有默认格式,Texture导入默认type是Deafult;如果是2D游戏要求都是Sprite;每次导入都需要修改类型非常麻烦;
Unity提供了导入资源设置资源属性的接口;
这段代码可以实现导入图片资源默认格式为Sprite;
using UnityEditor;
public class PreTexture : AssetPostprocessor
{
void OnPreprocessTexture()
{
TextureImporter tImporter = (TextureImporter)assetImporter;
tImporter.textureType = TextureImporterType.Sprite;
}
}
包含UnityEditor继承AssetPostprocessor,实现以下方法:
OnPreprocessTextureOnPreprocessModelOnPreprocessAnimationOnPreprocessAudio
导入资源可以修改格式,压缩大小,禁用mipmaps,wrapmode等;
具体看官方文档,自定义需求;
3.Format
带不带透明通道内存占用相差1/3左右;
PC
DirectX 11:
RGB 纹理 - DXT1 4 位/像素;
RGBA 纹理 - BC7(质量更高,压缩速度较慢)或 DXT5(压缩速度较快);
HDR 纹理 - BC6H;
DirectX 10: DXT5(GPU不支持BC7);
IOS
A8 芯片以上:RGB 和 RGBA 纹理 - ATSC (纹理质量粒度可选);
A7或更低:PVRTC;
Android
OpenGL ES 3.0/Vulkan - ETC2 / ATSC
OpenGL ES 2 - ETC
HDR 纹理 - ASTC HDR(需要Vulkan 或GL-hdr支持)
画质:RGB(A)32 > ASTC4X4 > ASTC6X6 > ETC2 ≈ PVRTC > ETC1
国内TOP600机型情况分布:OpenGL ES 3.1以下覆盖用户占0.2%,设备数量占比6.3%;
所以其实其实移动平台统一用ASTC完事;
二、两种PBR workflow
F0:入射角为0 ° 0\degree0°时的反射光线radiance占入射光线radiance的比例;
漫反射高光都收到F0影响;
1.金属粗糙度(M/R)
BaseColor:RGB贴图,表示金属的F0;
Metallic:灰度图,金属占比遮罩;100%金属为1白色;0%金属为0黑色;
Roughness:灰度图,数值越大越粗糙;
优缺点:非金属的F0固定为0.04,无法调整;主要workflow;
2,。镜面反射光泽度(S/G)
- Diffuse/Albedo:RGB贴图,表示非金属颜色,金属0纯黑;
- Specular:RGB贴图,定义金属非金属的F0;
- Glossiness:灰度图,数值越大越光滑;
优缺点:F0自由调整(可能做出反能量守恒定律的材质);两张RGB图,性能要求高;

贴图分辨率和纹素密度太低会出现白边和黑边,由于贴图之间误差;
Texture+PBR两种工作流程的更多相关文章
- FTP协议的两种工作模式简单解析!
转载自百度百科:http://baike.baidu.com/link?url=KaBZmDM4IZ2v56MyoOnpjqKr0gADv_BRbgjlscYdyvh3-zDwINOHNPSi9Jlp ...
- Vue路由器的hash和history两种工作模式 && Vue项目编译部署
1 # 一.Vue路由器的两种工作模式 2 # 1.对于一个uri来说,什么是hash值? 井号及其后面的内容就是hash值. 3 # 2.hash值不会包括含在HTTP请求中,即:hash值不会带给 ...
- 一步一步学FRDM-KE02Z(一):IAR调试平台搭建以及OpenSDA两种工作模式设置
摘要:FRDM-KE02Z是飞思卡尔公司较为新的微控制器,学习和开发资料较少.从本篇开始会陆续介绍其相关的开发流程,并完成一个小型的工程项目.这是本系列博客的第一篇,主要介绍开发环境IAR for A ...
- (转载)关于Apache 的两种工作模式
今天在查看服务器的时候,发现服务器http请求数 每天增长越来越多,在优化集群服务器的时候,查看到Apache 的工作模式是prefork,于是想到了worker 模式, 想暂时的把当前运行模式改成w ...
- epoll的两种工作模式
epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在採用这两种模式时要注意的是,假设採用ET模式,那么仅当状态发生变化时才会通知,而採用L ...
- apache常用的两种工作模式 prefork和worker
apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多中,目前主要有两种模式:prefork模式和worker模式 一.两种模式 prefork模式: prefork是 ...
- FTP两种工作模式:主动模式(Active FTP)和被动模式
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令.服务器接收到命令后,会用其本地的FTP数据端口 ...
- Golang两种执行流程以及区别
Go语言的执行方式有两种,一种是编译后再执行,另一种直接go run执行. 一.先编译后执行 .go文件(源代码)--->go build指令把源代码编译(如果是windows下会编译出一个.e ...
- android(十五) FTP的两种工作模式
(一)PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链 当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了 ...
随机推荐
- Fiddler抓包ios设备
Fiddler绝对称得上是"抓包神器", Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求. Fiddler能捕获ISO ...
- Kubernetes-API Server
前言 本篇是Kubernetes第十四篇,大家一定要把环境搭建起来,看是解决不了问题的,必须实战. Kubernetes系列文章: Kubernetes介绍 Kubernetes环境搭建 Kubern ...
- LuoguP3932 浮游大陆的68号岛 题解
Content 在一个无限长的数轴上有 \(n\) 个点.第 \(i\) 个点上面有 \(a_i\) 件物品,且第 \(i\) 个点到第 \(i+1\) 个点的距离为 \(b_i\). 定义从第 \( ...
- CF1492B Card Deck 题解
Content 有 \(n\) 张纸牌组成的一个牌堆,每张纸牌都有一个价值 \(p_1,p_2,\dots,p_n\).每次选出最顶上的几个牌放到另外一个一开始为空的牌堆里面.定义一个牌堆的总值为 \ ...
- .NET 云原生架构师训练营(对象过程建模)--学习笔记
目录 UML OPM OPM优化 UML 1997年发布UML标准 主要域 视图 图 主要概念 结构 静态视图 类图 类.关联.泛化.依赖关系.实现.接口 用例视图 用例图 用例.参与者.关联.扩展. ...
- Centos使用kafka自带zookeeper安装kafka
首先要安装jdk环境 可以参考:https://www.cnblogs.com/pxblog/p/10512886.html 下载kafka 地址:http://kafka.apache.org/do ...
- 使用.NET 6开发TodoList应用(7)——使用AutoMapper实现GET请求
系列导航 使用.NET 6开发TodoList应用文章索引 需求 需求很简单:实现GET请求获取业务数据.在这个阶段我们经常使用的类库是AutoMapper. 目标 合理组织并使用AutoMapper ...
- c++内存分布之虚函数(多继承)
系列 c++内存分布之虚函数(单一继承) c++内存分布之虚函数(多继承) [本文] 结论 1.虚函数表指针 和 虚函数表 1.1 影响虚函数表指针个数的因素只和派生类的父类个数有关.多一个父类,派生 ...
- 【LeetCode】362. Design Hit Counter 解题报告 (C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典 日期 题目地址:https://leetcode ...
- 【LeetCode】983. 最低票价 Minimum Cost For Tickets(C++ & Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetco ...