当前位置: 首页 > news >正文

OpenGL3.3_C++_Windows(29)

Demo

exposure = 0.1f
exposure = 5.0f

HDR色调映射

  • 问题:有多个亮光源使这些数值总和超过了1.0,颜色值会被约束在1.0,从而导致场景混成一片,难以分辨:
  • 色调映射:用更大范围的颜色值渲染从而获取大范围的黑暗与明亮的场景细节,最后将所有HDR(High Dynamic Range, 高动态范围)值转换成在[0.0, 1.0]范围的LDR(Low Dynamic Range,低动态范围)。
  • 帧缓冲使用了(像GL_RGB)为其颜色缓冲的内部格式,OpenGL会在将这些值存入帧缓冲前自动将其约束到0.0到1.0之间。
  • 当一个帧缓冲的颜色缓冲的内部格式被设定成了GL_RGB16FGL_RGBA16FGL_RGB32F 或者GL_RGBA32F时,这些帧缓冲被叫做浮点帧缓冲(Floating Point Framebuffer)浮点帧缓冲可以存储超过0.0到1.0范围的浮点值,所以非常适合HDR渲染。
  • 但是如果直接转换HDR值到LDR值,这就像我们根本就没有应用HDR一样
  • Reinhard色调映射(非线性):hdrColor / (hdrColor + vec3(1.0));对于亮部,映射到小的LDR范围中,会有更多的细节变化
  • 利用曝光参数模拟人眼调节方式:vec3(1.0) - exp(-hdrColor * exposure);白天使用低曝光(exp后底e的函数曲线,亮部映射范围更小),在夜间使用高曝光(人眼会自动适应黑暗),
  • 分数次方:这个数的分子次乘方后开分母次方
  • 负数次方:一个数的负次方即为这个数的正次方的倒数

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • a+=1和a=a+1的区别
  • 多标签问题
  • 施罗德数列SQL实现
  • Mysql5.7并发插入死锁问题
  • #### golang中【堆】的使用及底层 ####
  • 【机器学习】机器学习与时间序列分析的融合应用与性能优化新探索
  • python库 - sentencepiece
  • 漏洞挖掘 | 记某证书站任意账号接管漏洞
  • 鸿蒙语言基础类库:【@ohos.util.TreeSet (非线性容器TreeSet)】
  • react根据后端返回数据动态添加路由
  • ElasticSearch集群
  • 【React Native优质开源项目】
  • 32位版 C 库函数time 将在 2038 年溢出,那到时候,它该何去何从
  • Mosh|初学者SQL教程第二弹
  • js原型和类---prototype,__proto__,new,class
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Android开源项目规范总结
  • ES6 ...操作符
  • gulp 教程
  • Netty源码解析1-Buffer
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Quartz初级教程
  • 产品三维模型在线预览
  • 基于遗传算法的优化问题求解
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 浅谈Golang中select的用法
  • 算法之不定期更新(一)(2018-04-12)
  • 我看到的前端
  • 异常机制详解
  • 用Visual Studio开发以太坊智能合约
  • HanLP分词命名实体提取详解
  • # Panda3d 碰撞检测系统介绍
  • (¥1011)-(一千零一拾一元整)输出
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (javaweb)Http协议
  • (poj1.2.1)1970(筛选法模拟)
  • (web自动化测试+python)1
  • (六)vue-router+UI组件库
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (四)Linux Shell编程——输入输出重定向
  • (译)计算距离、方位和更多经纬度之间的点
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)德国人的记事本
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net FrameWork简介,数组,枚举
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .sh
  • .vue文件怎么使用_vue调试工具vue-devtools的安装