Cambiar el color de un punto en un objeto

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);
  }

preguntado el 14 de febrero de 14 a las 01:02

1 Respuestas

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 or haz tu propia pregunta.