hdr rt format对颜色的影响
我刚刚终于理解为什么rendertarget的format对颜色的影响为什么那么大了
r8g8b8a8 这种会有band artifacts
rgbafloat 这种浮点rt 的色带变化更为连贯(R11G11B10Float 里面有指数位 rgba16half这个也是有指数位的 RGBE R9G9B9E5这个E也是指数位
这几张都是hdr的rt
那上面的rt和下面rt相比 缺少的就是 让颜色看起来更为连贯的那些中间过渡的颜色
还有srgb空间在总的颜色空间占一部分那幅图可以辅助理解这个事情
要注意 两个空间 0 和1 是重合的 缺的是中间的 过渡地带
我以前总觉得这些事情 比如一个后处理我能抄出来就可以了 因为我没见过能很好的理解的人
也没有谁对我有这样严格的要求 其实存在很多对它们的原理理解很深刻的人 我见到一些 我平时见不到
是因为我水平不行 接触不到。。。。。就在那里洋洋自得很多年
============
开hdr 要给相机加tonemap才可以
不然我估计在linear space下开关hdr没效果 只是换rt最后又采样回去 精度仍然丢失
https://unity3d.com/cn/learn/tutorials/topics/graphics/high-dynamic-range-hdr
===============================
今天做了精确的测试 以及分析
总体看下来 在unity管线里面 一种正确的 hdr的pipeline是 开hdr 最后加tonemap
前面开hdr做的事情是 rendertarget的format变成 float 存储更高精度的数据
但如果不开tonemap 这些高精度数据没有办法remap会argb32或者srgb32 直接四舍五入了。。。都丢了
如果开tonemap的话 这个pass的位置 比较。。不正确 场景artists和ui和特效artists要的可能不一样 但是放多个colorgrading太费 放最后不能满足三个角色
所以放在前面 场景transparent之后是比较合理的
这样的问题就是后面在tonemap remap之后 如果太亮 接近1 颜色会丢 再加tonemap可以拿回来这样又会对前面调好的场景颜色叠加一层影响
====================
在线性空间下测试只开关hdr (无bloom和tonemap) 透明会有变化 其它颜色没有变化----这说明只开hdr的hdr是不对的(unity的hdr开关 只控制了rt format)
开了bloom或者tonemap再开关hdr才会有颜色变化
==================
linear+hdr的管线
srgb read float float float srgb write
这是原本的 为什么中间不用encode decode因为中间原本就是float 是线性空间 但最后因为有displaygamma所以最后一个pass要用srgb再压回去
在线性空间做正确的计算
---------
ui pass 可以不需要float rt
hdr rt format对颜色的影响的更多相关文章
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
首先对吞吐量().QPS.并发数.响应时间(RT)几个概念一直比较模糊,也不知道哪些指标可以较好的衡量系统的性能.今天特意查了些资料做一些记录:首先看一些概念(来自百度百科) 1. 响应时间(RT) ...
- OpenGL中旋转平移缩放等变换的顺序对模型的影响
l 前提: 0x01. 假设绘制顶点的语句为Draw Array,变换的语句(旋转.平移.缩放)为M,而 M0; M1; M2; Draw Array; 则称对Array先进行M2再进行M1.M0 0 ...
- format——MATLAB
format:设置输出格式 对浮点性变量,缺省为format short. format并不影响matlab如何计算和存储变量的值.对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变 ...
- 修改UISearBar的文字颜色,placehoder颜色及输入框颜色
UISearchBar是我们经常会用到的一个控件-- 它由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField UITextField默认输入字体 ...
- 在 html 中用加色法混合颜色
概要 本文通过解决一个假想的问题介绍了 css screen 混合模式,并介绍了如何用 svg 滤镜.canvas 2d.canvas webgl 实现相同的效果. 问题 下面的图片演示三种颜色光叠加 ...
- [Swift实际操作]七、常见概念-(14)使用UIColor设置界面组件的颜色属性
打开移动应用程序,不可避免的需要和颜色打交道.本文将为你演示颜色对象的使用. 首先导入需要使用到的界面工具框架 import UIKit 通过UIColor的属性,可以获得橙色.右侧的实时反馈区,显示 ...
- 使用CSS3创建文字颜色渐变(CSS3 Text Gradient)
考虑一下,如何在网页中达到类似以下文字渐变的效果? 传统的实现中,是用一副透明渐变的图片覆盖在文字上.具体实现方式可参考 http://www.qianduan.net/css-gradient-te ...
- IT兄弟连 HTML5教程 CSS3属性特效 新增颜色模式
对于设计人员和开发人员来说,CSS一直是web设计过程中重要的一部分.网页外观主要由CSS控制,编写CSS代码可以任意改变我们的网页布局以及网页内容的样式.随着CSS3的出现以及越来越多的浏览器对它的 ...
- OpenGL光照1:颜色和基础光照
本文是个人学习记录,学习建议看教程 https://learnopengl-cn.github.io/ 非常感谢原作者JoeyDeVries和多为中文翻译者提供的优质教程 的内容为插入注释,可以先跳过 ...
随机推荐
- poj-1113
Wall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 31419 Accepted: 10619 Descriptio ...
- Valid Number——分情况讨论最经典的题(没细看)——这题必须静下心来好好看看
Validate if a given string is numeric. Some examples: "0" => true " 0.1 " =&g ...
- Letter Combinations of a Phone Number——简单的回溯算法
Given a digit string, return all possible letter combinations that the number could represent. A map ...
- ffmepg的基本使用
基本使用命令 ffmpeg -i input.mp4 output.avi //视频格式转换 ffmepg -i input.mp4 -r fps image%3d.jpg //视频转成图片 //fp ...
- flex布局各种情况总结分析及实例演示
2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. 通过笔者大量实践,发现 ...
- vue实现简单在线聊天
vue实现简单在线聊天 引用mui的ui库,ES6的 fetch做网络请求 //html <!DOCTYPE html> <html> <head> <met ...
- Java容器类解析
1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,默认长度是十 查询快,增删慢 add()时判断是否数组越界,数组扩容为原来的1.5倍 线程 ...
- ESLint 使用入门
在团队协作中,为避免低级 Bug.产出风格统一的代码,会预先制定编码规范.使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量. 在以前的项目中,我们选择 JSHint 和 ...
- Qt应用如何发布
原文请看:http://www.cnblogs.com/ungshow/archive/2010/10/10/1847082.html 通常情况下,使用Qt开发应用都是采用动态编译的方式来进行发布,发 ...
- 【Bzoj3527】【Luogu3338】[Zjoi2014]力(FFT)
题面 Bzoj Luogu 题解 先来颓柿子 $$ F_i=\sum_{j<i}\frac{q_iq_j}{(i-j)^2}-\sum_{j>i}\frac{q_iq_j}{(i-j)^2 ...