textureLoad
textureLoad
使用精确的整数坐标,从纹理中抓取单个像素(Texel)的原始、无过滤数据,并绕过任何插值或滤波处理。
核心优势
它保证了从特定像素中检索到精确、未经修改的数据,这对于将纹理用作数据查找表(例如在GPU模拟中)和实现清晰的“像素完美”渲染风格至关重要。
常见用途
读取数据纹理(如用于GPU粒子)
渲染清晰、无过滤的像素艺术
自定义图像处理算法
如何调整
通过改变整数坐标 `uvNode` 来读取不同的像素,这会导致输出值发生离散的“跳变”。你也可以改变 `levelNode` 来从不同的 Mipmap 中读取,从而有效地从一个更低分辨率的纹理版本中进行采样。
代码示例
1
2// 定义像素的精确整数坐标(第15列,第22行)
3const texelCoord = ivec2( 15, 22 );
4
5// 从Mip层级0中,抓取该单个像素的精确、无过滤颜色
6const pixelColor = textureLoad( myDataTexture, texelCoord, int( 0 ) );