opengl - hashtags - como usar el arroba en instagram
En los sombreadores de vértices de OpenGL, ¿qué es w y por qué lo divido? (1)
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 de 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 tienes 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:
void main(void)
{
vec4 clipCoord = glModelViewProjectionmatrix * gl_Vertex;
gl_Position = clipCoord;
gl_FrontColor = gl_Color;
vec3 ndc = clipCoord.xyz / clipCoord.w;
Entonces, el clipCoord
solo está haciendo transformaciones estándar de tubería fija. ¿Por qué divido por w
, y qué obtengo de esto?