我对WEBGL中的着色器很新,我的webgl场景中有一个对象(.Json)。当我用鼠标点击对象时,我希望点击的点将其颜色更改为蓝色。我可以用x,y,z格式(称为mouseclicks)获取对象上的点击位置,我知道我需要使用着色器,这是我到目前为止在着色器中所拥有的。
varying vec3 mouseclick;
attribute mouse;
//vertex shader
void main()
{
vec4 mouse =(mouseclick,1.0);
}
//fragmant shader
void main()
{
colorout = vec3(0.0f,0.0f,1.0f);
gl_FragColor =vec4(0.0,0.0,1.0,1.0);
}
答案 0 :(得分:1)
提供的着色器不起作用 - 变化和制服的使用不正确。此外,在着色器本身中很难做到这一点。您可以按照以下步骤操作:
使用机制找出被点击的对象(这很棘手,你需要熟悉模型到世界空间,转换)
对于此对象,将颜色设置为根据需要更改(在应用程序代码中)。将此作为此对象的属性发送
着色器可以是通用着色器,将颜色设置为变化,并且frag着色器可以使用它来插入颜色