我刚刚终于理解为什么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对颜色的影响的更多相关文章

  1. 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响

    首先对吞吐量().QPS.并发数.响应时间(RT)几个概念一直比较模糊,也不知道哪些指标可以较好的衡量系统的性能.今天特意查了些资料做一些记录:首先看一些概念(来自百度百科) 1. 响应时间(RT) ...

  2. OpenGL中旋转平移缩放等变换的顺序对模型的影响

    l 前提: 0x01. 假设绘制顶点的语句为Draw Array,变换的语句(旋转.平移.缩放)为M,而 M0; M1; M2; Draw Array; 则称对Array先进行M2再进行M1.M0 0 ...

  3. format——MATLAB

    format:设置输出格式 对浮点性变量,缺省为format short. format并不影响matlab如何计算和存储变量的值.对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变 ...

  4. 修改UISearBar的文字颜色,placehoder颜色及输入框颜色

    UISearchBar是我们经常会用到的一个控件-- 它由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField UITextField默认输入字体 ...

  5. 在 html 中用加色法混合颜色

    概要 本文通过解决一个假想的问题介绍了 css screen 混合模式,并介绍了如何用 svg 滤镜.canvas 2d.canvas webgl 实现相同的效果. 问题 下面的图片演示三种颜色光叠加 ...

  6. [Swift实际操作]七、常见概念-(14)使用UIColor设置界面组件的颜色属性

    打开移动应用程序,不可避免的需要和颜色打交道.本文将为你演示颜色对象的使用. 首先导入需要使用到的界面工具框架 import UIKit 通过UIColor的属性,可以获得橙色.右侧的实时反馈区,显示 ...

  7. 使用CSS3创建文字颜色渐变(CSS3 Text Gradient)

    考虑一下,如何在网页中达到类似以下文字渐变的效果? 传统的实现中,是用一副透明渐变的图片覆盖在文字上.具体实现方式可参考 http://www.qianduan.net/css-gradient-te ...

  8. IT兄弟连 HTML5教程 CSS3属性特效 新增颜色模式

    对于设计人员和开发人员来说,CSS一直是web设计过程中重要的一部分.网页外观主要由CSS控制,编写CSS代码可以任意改变我们的网页布局以及网页内容的样式.随着CSS3的出现以及越来越多的浏览器对它的 ...

  9. OpenGL光照1:颜色和基础光照

    本文是个人学习记录,学习建议看教程 https://learnopengl-cn.github.io/ 非常感谢原作者JoeyDeVries和多为中文翻译者提供的优质教程 的内容为插入注释,可以先跳过 ...

随机推荐

  1. Python 面向对象的三大特性

    面向对象的三大特性:继承,封装,多态 什么时候用封装: 同一种功能的时候, 譬如:把一部分数据或方法,封装到同一个类的中 PS:在构造方法中,原始数据中....

  2. (翻译)在 Xamarin 应用中使用 MongoDB

    原文地址:https://blog.xamarin.com/write-apps-using-mongodb-xamarin/ 在设计应用时,最重要的决定之一就是要使用什么类型的数据库. 不久之前,这 ...

  3. 搭建owncloud私有云

    参考:教程1,教程2,教程3,教程4 硬件:raspi 3b+ 系统:UbuntuMate 步骤: 1.安装Apache2 sudo apt-get install apache2 完成后访问服务器地 ...

  4. gulp-connect插件浏览器实时同步刷新

    1.在站点路径里打开cmd控制台. 输入:cnpm install gulp-connect --save-dev 2.编辑gulpfile.js 3.控制台执行gulp任务 输入gulp serve ...

  5. vue-music 关于基础组件 (Tab组件)

      定义在项目的基础组类别的 tab组件中,定义一个tab切换数量的数组 和一个currentIndex 当前高亮索引 的props,当前高亮(active)的类等于currentIndex === ...

  6. vue-music 关于playlist (底部播放列表组件)

    建立playlist.vue 组件,在player.vue 组件中引用,点击迷你播放器的播放列表按钮由下至上弹出这个层,所以在player.vue 播放器组件中引用 在playlist.vue 组件中 ...

  7. Python BeautifulSoup 简单笔记

    Beautiful Soup 是用 Python 写的一个 HTML/XML 的解析器,它可以很好的处理不规范标记并生成剖析树.通常用来分析爬虫抓取的web文档.对于 不规则的 Html文档,也有很多 ...

  8. thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成

    目录 1.案例 1.1图片上传  1.2进行图片木马检测   1.3缩略图生成   1.4控制器中调用缩略图生成方法 1.案例 前言:在thinkphp框架的Thinkphp/Library/Thin ...

  9. npm 安装或更新模块失败的解决办法

    头一次关注npm,在刚刚安装的机子上使用更新指令却报错,我还以为是SHA512有什么问题,后来发现是因为一些网络原因,所以,如果出现错误,务必修改默认配置为国内镜像,但是在publish之前,记得要改 ...

  10. Container With Most Water(LintCode)

    Container With Most Water Given n non-negative integers a1, a2, ..., an, where each represents a poi ...