Cambiar el color de un punto en un objeto
Frecuentes
Visto 254 equipos
0
Soy bastante nuevo en los sombreadores en WEBGL, tengo un objeto (.Json) en mi escena webgl. Cuando hago clic en el objeto con el mouse, quiero que el punto en el que se hizo clic cambie su color a azul. Puedo obtener las ubicaciones de clic en el objeto en formato x, y, z (llamados clics del mouse), y soy consciente de que necesito usar los sombreadores, esto es lo que tengo hasta ahora en los sombreadores.
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);
}
1 Respuestas
1
El shader provisto no funcionará - el uso de variantes y uniformes es incorrecto. Además, es bastante difícil hacerlo en el mismo shader. Puede seguir los siguientes pasos:
Use un mecanismo para encontrar el objeto en el que se hace clic (esto es complicado, debe estar familiarizado con el modelo en el espacio mundial, las transformaciones)
Para este objeto, configure el color para cambiar según sea necesario (en el código de la aplicación). Enviar esto como un atributo para este objeto
El sombreador puede ser un sombreador genérico, que establece el color como variable, y el sombreador de fragmentos puede usar esto para interpolar los colores.
Respondido 14 Feb 14, 05:02
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas colors webgl or haz tu propia pregunta.