着色器Encoding floats to RGBA
前言
先简单记录一下,在cesium中看见一个函数czm_unpackDepth,原码中对于其解释是 ,czm_unpackDepth:将 vec4 深度值解包为 [0, 1) 范围内的浮点数。并给出了一篇博客地址Encoding floats to RGBA - the final?
正文
1. 如何实现编码到RGBA中
inline float4 EncodeFloatRGBA( float v ) {float4 enc = float4(1.0, 255.0, 65025.0, 16581375.0) * v;enc = frac(enc);enc -= enc.yzww * float4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);return enc;
}
inline float DecodeFloatRGBA( float4 rgba ) {return dot( rgba, float4(1.0, 1/255.0, 1/65025.0, 1/16581375.0) );
}
参考文章
2. 为什么要编码到RGBA中
单通道的float为32-bit,
不总是支持浮点纹理格式,要在这些系统上存储深度,必须将它们转换为定点并打包到传统无符号归一化 (UNORM) 纹理的 4 个通道中。
Why encode floats in RGBA?
把float编码到RGBA8
着色器Encoding floats to RGBA相关推荐
- (二)unity自带的着色器源码剖析之——————UnityCG.cginc文件(上篇:数学常数、颜色空间常数和函数、顶点布局格式结构体、进行空间变换的函数、HDR级光照贴图编解码相关函数等)
一.数学常数 unity3D内置着色器定义了一系列的数学常数,如下: 从第3行开始,第13行结束: #ifndef UNITY_CG_INCLUDED #define UNITY_CG_INCLUDE ...
- 几何着色器着色器_使用金属着色器制作第一个圆圈
几何着色器着色器 Metal Shaders? Render Pipeline? Vertex Shaders? Fragment Shaders? If you were anything like ...
- OpenGL ES着色器语言之变量和数据类型
所有变量和函数在使用前必须声明.变量和函数名是标识符. 没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符.变量在声明的时候首先要标明类型,后边可以跟多个变量,之间用逗号隔开.很多情 ...
- opengl着色器shader介绍
1. Shader Shader其实就是一段执行在GPU上的程序,此程序使用OpenGL ES SL语言来编写.它是一个描述顶点或像素特性的简单程序.在opengles中常用的shader有两种:v ...
- 顶点着色器详解 (Vertex Shaders)
顶点着色器详解 (Vertex Shaders) 2014-2-9 20:56| 发布者: 隐龙| 查看: 1631| 评论: 0 摘要: 学习了顶点处理,你就知道固定功能流水线怎么将顶点从模型空间坐 ...
- Learn OpenGL (三):着色器
GLSL 着色器是使用一种叫GLSL的类C语言写成的.GLSL是为图形计算量身定制的,它包含一些针对向量和矩阵操作的有用特性. 着色器的开头总是要声明版本,接着是输入和输出变量.uniform和mai ...
- webgl入门(2)-初识webgl和着色器
前言 原书中第2章非常长,如果整理成一个文档的话,得看好多天.为了浏览方便,我将其拆分成若干小节,方便大家学习. webgl采用HTML5中引入的canvas元素来定义页面的绘图区域.如果没有WegG ...
- opengl 设置每个点的颜色_OpenGL学习笔记(四)着色器
本文为学习LearnOpenGL的学习笔记,如有书写和理解错误还请大佬扶正: 教程链接: 着色器 - LearnOpenGL CNlearnopengl-cn.github.io 一,基础概念 1, ...
- OpenGL着色器基础
前言: 本文翻译自LearnOpengl经典教程,OpenGL着色器基础介绍的比较通俗易懂,特总结分享一下! 为什么要使用着色器? 我们知道,OpenGL一般使用经典的固定渲染管线来渲染对象,但是随着 ...
最新文章
- 学习笔记Kafka(三)—— Kafka安装配置(2)—— Kafka单代理及常用操作
- linux 权限中加号,关于Linux中权限列中的加号及点的深度探索
- 时间串变成Date类型的数据
- C++ 在屏幕上用星号打印菱形
- 解决WCF接口无法传递object参数的问题
- 【离散数学】极小全功能集
- 百度关键词点击ios_百度推广关键词点击价格高,如何处理?
- excel小写转大写公式_喂!这边居然有演示的Excel快捷键!
- 0基础web开发 python_真零基础Python开发web
- linux面试题(填空部分)
- matlab gui怎样将结果保存在excel中_声发射简单使用matlab导入参数波形数据并绘图...
- codeblocks下载安装及问题解决
- IOS音视频(一)AVFoundation核心类
- 软件系统分析与设计 第七节 第八节 制表符
- linux mate主题目录,七大顶级Linux桌面:Cinnamon和MATE_服务器_服务器产业-中关村在线...
- 常用类库之Math类
- 【机器学习】GMM模型的直观推导(含中间步骤)
- 3800 万条敏感记录在“裸奔”!微软这个默认配置把自己都“坑”了
- note10 android10,「上手」都说它是年度Android机皇,Galaxy Note10到底怎么样?
- unity编辑器扩展界面使用 List