[OpenGL 超级宝典][笔记] 8.1 纹理缓冲区(TBO)
来源:互联网 发布:数据侠客行txt网盘 编辑:程序博客网 时间:2024/06/10 20:00
纹理缓冲区(TBO)
当一个缓冲区对象绑定GL_TEXTURE_BUFFER绑定点时,我们称之为纹理缓冲区(TBO).
作用:
- 能够直接直译来自其它渲染结果如变换反馈,像素读取操作,顶点数据,提高性能。
- 宽松的大小限制,比1D纹理大64倍。
- 用来对片段着色器和顶点着色器顶点数据访问。
使用方法:
Step1: 创建并绑定到GL_TEXTURE_BUFFER上。
glBindBuffer(GL_TEXTURE_BUFFER, texBO[0]); glBufferData(GL_TEXTURE_BUFFER, sizeof(float)*count, fileData, GL_STATIC_DRAW);
Step2: TBO绑定到纹理单元上
glActiveTexture(GL_TEXTURE);glBindTexture(GL_TEXTURE_BUFFER, texBOTexture);glTexBuffer(GL_TEXTURE_BUFFER, GL_R32F, texBO[0]);
step3: Shader中使用新的采样器SampleBuffer采样texelFetch.
uniform samplerBuffer lumCurveSample;void main(void){ ... int offset = int(vColor.r * (1024-1)); lumFactor.r = texelFetch(lumCurveSampler, offset).r;}
采样时,传统的Texture1D的坐标域是(0,1);但是,TBO中texelFetch的坐标域是从0到缓冲区大小值的整数索引。注意,需要减去1;
总结:
TBO相比传统的纹理方式,可以大大的提高性能。
阅读全文
0 0
- [OpenGL 超级宝典][笔记] 8.1 纹理缓冲区(TBO)
- [openGL超级宝典][笔记][8.1缓冲区]
- OpenGL超级宝典笔记——纹理映射Mipmap
- OpenGL超级宝典笔记三 - 基础纹理1
- OpenGL超级宝典笔记四 - 基础纹理2
- OpenGL超级宝典笔记——纹理高级(一)
- OpenGL超级宝典笔记——纹理映射
- OpenGL超级宝典笔记——深度纹理和阴影
- OpenGL超级宝典笔记——其他缓冲区技巧
- [OpenGL 超级宝典][笔记] 8.2 帧缓冲区(FBO)
- 《OpenGL超级宝典》笔记(一)
- OpenGL超级宝典笔记(三)
- OpenGL超级宝典笔记4
- OpenGL超级宝典笔记5
- OpenGL超级宝典笔记6
- OpenGL超级宝典笔记7
- OpenGL超级宝典笔记8
- [OpenGL 超级宝典][笔记] 8.1 PBO介绍与用法
- jQuery选择器
- 简单布局
- C语言指针总结
- Struts2之拦截器相关内容
- 关于OC-Runtime的一些见解
- [OpenGL 超级宝典][笔记] 8.1 纹理缓冲区(TBO)
- C++中Template
- dos操作命令
- CIL之——初识CIL
- xgboost的模型推导
- ROS安装教程
- Python例题3-4~3-7 邀请嘉宾名单
- C 中 static 的常见作用
- 结巴详解