textureBicubic
textureBicubic
对给定的纹理采样节点应用带 Mipmap 的双三次(Bicubic)过滤。可用可选参数 strength(0–1)按最大 Mip 级别进行模糊强度控制:0 保留细节,1 近似使用最低分辨率层以获得强模糊。
核心优势
在缩小采样、远距离/斜视角时显著降低锯齿与闪烁,相比双线性/三线性具有更高的保真度;基于纹理的最大 Mip 级别自适应工作,集成简便。
常见用途
远处或小比例物体的贴图反闪烁与去锯齿
根据粗糙度/景深等参数做屏幕空间友好的柔化采样
做 UI/字体/标识等纹理的高质量缩放与柔化
如何调整
第二个参数 strength 建议范围 0–1:0 近似不增加模糊,1 取向最大 Mip 层获得强模糊。内部使用 maxMipLevel(textureNode) 计算可用 Mip 上限并调用 textureBicubicLevel(textureNode, lod)。若纹理无 Mipmap,maxMipLevel≈0,强度影响将减弱。注意:双三次过滤比双线性更耗采样,按需使用。
代码示例
1// 基本用法:对一次标准纹理采样结果做双三次过滤
2const tex = texture( myMap, uv() );
3const filtered = textureBicubic( tex, 1.0 );
4material.colorNode = filtered;
5
6// 将模糊强度与粗糙度联动(0–1)
7const base = texture( baseMap, uv() );
8const smooth = textureBicubic( base, materialRoughness.saturate() );
9material.colorNode = smooth;
10
11// 与普通采样对比后混合
12const raw = texture( baseMap, uv() );
13const bic = textureBicubic( raw, 0.7 );
14material.colorNode = mix( raw, bic, 0.5 );