LUT材质组件 (LUT Material)
LUT材质组件 (LUT Material)
LUT(查找表)是一种通过采样带有StaticTexture3D组件的Texture3D(3D纹理)来将输入值映射到输出值的方法。这个三维数值表允许对输入应用任意函数。其采样工作原理是:获取其背后的颜色(例如洋红色),将该颜色的RGB值作为0-1范围的Float3(XYZ坐标),然后在提供的3D纹理上根据纹理尺寸缩放后的XYZ坐标进行采样,并将采样得到的像素颜色作为最终结果应用到用户透过此材质看到的内容上。
关于像素如何在3D纹理上排列以及如何使用Int3进行检索的更多信息,请参阅3D纹理导入。
字段列表 (Fields)
| 字段名 (英文) | 类型 | 描述 (中文) |
|---|---|---|
| HighPriorityIntegration | Bool | 高优先级集成:是否将此材质标记为高优先级渲染,可能用于特殊效果或性能优化。 |
| Rect | Rect | 矩形:定义材质的渲染区域(位置和尺寸),常用于UI或局部特效。 |
| RectClip | Bool | 矩形裁剪:是否将渲染内容裁剪到Rect定义的区域内。 |
| ColorMask | ColorMask | 颜色掩码:控制哪些颜色通道(R,G,B,A)会被写入渲染目标。 |
| StencilComparison | StencilComparison | 模板比较函数:定义模板测试的比较方式(如等于、小于等)。 |
| StencilOperation | StencilOperation | 模板操作:指定模板测试通过或失败时对模板缓冲区的操作(如保留、增加等)。 |
| StencilID | Byte | 模板参考值:用于模板测试的参考值。 |
| StencilWriteMask | Byte | 模板写入掩码:控制模板值写入时的位掩码。 |
| StencilReadMask | Byte | 模板读取掩码:控制模板值读取时的位掩码。 |
| RenderQueue | Int | 渲染队列:指定材质的渲染顺序(数值越小越早渲染)。 |
| _shader | AssetRef<Shader> | 着色器:当前材质使用的着色器资产。 |
| LUT | AssetRef<Texture3D> | 查找表纹理:主要的3D纹理,用于颜色映射。 |
| SecondaryLUT | AssetRef<Texture3D> | 辅助查找表纹理:第二个3D纹理,可与主LUT混合使用。 |
| UseSRGB | Bool | 使用sRGB:是否对颜色应用sRGB色彩空间校正。 |
| Lerp | Float | 混合系数:在主LUT和辅助LUT之间进行线性插值的系数(0=完全主LUT,1=完全辅助LUT)。 |
| BlendMode | BlendMode | 混合模式:定义材质如何与背景混合(如Alpha混合、叠加等)。 |
| Sidedness | Sidedness | 渲染面:指定渲染正面、背面或双面。 |
| ZWrite | ZWrite | 深度写入:是否将片元的深度值写入深度缓冲区。 |
| ZTest | ZTest | 深度测试:深度测试函数(如小于等于、始终通过等)。 |
用法 (Usage)
LUT的映射函数接收输入RGB值,然后在对应的坐标上对3D纹理进行采样,以找到输出RGB值。此过程使用StaticTexture3D组件的Filter Mode(过滤模式)和Wrap Mode(包裹模式)来决定中间值的计算方式。
示例 (Examples)
此章节尚不完整,需要补充。 我们需要以下示例(包括一个场景在平面后方以及所使用的3D纹理立方体的图像):
- LUT材质对后方物体实现Gameboy效果的示例。
- LUT材质对后方物体实现灰度效果的示例。
- LUT材质对后方物体实现颜色反转的示例。
- LUT材质使后方物体表面红色调根据亮度输出随机颜色的示例(是的,LUT可以实现此效果)。

No comments to display
No comments to display