调色板与查找表
在真实项目中,我们经常希望“把一个标量映射为颜色”:高度 → 颜色,速度 → 颜色,噪声值 → 颜色,温度 → 颜色……本节我们用一个 1D 查找表(LUT)来完成这件事。
目标
- 理解“标量 → 颜色”的映射思想
- 用
DataTexture生成一张 1D 调色板纹理 - 在片元着色器里用
texture2D查询颜色
思路
- 在 JavaScript 中生成一张宽为
N、高为1的纹理,每个像素是一种颜色。 - 在片元着色器里,把标量
t(0~1)当作横坐标去采样调色板:
glsl
vec3 color = texture2D(uPalette, vec2(t, 0.5)).rgb;动手练习
- 改调色板生成逻辑(例如增加更多颜色段),观察整体风格变化
- 把输入标量从
vUv.y改成噪声或距离值,得到不同的“上色方式”
小结
你已经掌握了 LUT 的基本用法。下一节我们将把光照结果做“分段量化”,实现卡通渲染(Toon Shading)。
