shader_enable_corner_id

此函数允许在着色器中使用角ID。

它为所有正在使用的着色器设置一个全局状态,当启用时,着色器从输入颜色值中"窃取"2位;一个来自红色值的最低位,一个来自蓝色值的最低位。然后可以在着色器中恢复这些值,以确定您正在处理的顶点(即哪个角落)。

注意 当使用 顶点缓冲区和基元 时,此功能将不起作用,因为每个顶点的颜色数据均由用户处理。

蓝色分量的最低位存储最高有效位红色分量的最低位存储最低有效位。您可以通过执行以下操作来计算顶点着色器中的角ID:

vec2 rem = mod(in_Colour.rb * 255., 2.);
int corner_id = int(dot(vec2(1., 2.), rem));

下表列出了可能的值及其对应的角点位置:

着色器角ID
红色最低位蓝色最低位角ID位置
000Top-left
101Top-right
012Bottom-right
113Bottom-left

注意 角 ID 按顺时针方向连续编号,左上角从 0 开始编号。

 

语法:

shader_enable_corner_id(enable);

参数类型描述
enableBoolean启用(true)或禁用(false)此函数。

 

返回:

N/A

 

例子:

shader_enable_corner_id(true);

上面的代码将启用所有着色器的角点ID的颜色位。