2010-03-11 22 views

Respuesta

35

W es la cuarta coordenada de un vértice tridimensional; Este vértice se llama coordenada de vértice homogéneo.

En pocas palabras, el componente W es un factor que divide los otros componentes del vector. Cuando W es 1.0, las coordenadas de vértice homogéneas están "normalizadas". Para comparar dos vértices, debe normalizar el valor W a 1.0.

Piensa en el vértice (1,1,1,1). Ahora aumente el valor W (w> 1.0). ¡La posición normalizada está escalando! y va al origen. Piensa en el vértice (1,1,1,1). Ahora disminuya el valor W (W < 1.0). La posición normalizada va a un punto infinito.

Además de escalar las coordenadas de los vértices, la coordenada W es necesaria ya que tiene que multiplicar una matriz de 4x4 (la vista de modelo y/o las matrices de proyección) con una matriz de 4x1 (el vértice).

Por supuesto, el Libro Rojo es la guía definitiva:

Red Book Appendix

+7

¿Por qué esto no será siempre avlue 1? – anon

+4

@anon: en resumen, porque una matriz de proyección cambia su valor. Mira el apéndice al que apunta Luca, en la parte inferior. una proyección típica hace w_out = -z_in. Es por eso que las personas a veces llaman a esto la "perspectiva dividida". – Bahbar

+5

@anon, de [este hilo] (http://www.opengl.org/discussion_boards/showthread.php/170202-GLSL-Why-is-gl_Vertex-a-vec4) hay dos valores comunes, w = 1 para un ** punto **, y w = 0 para un ** vector **. – Air

Cuestiones relacionadas