Cosa significano i componenti di gl_TexCoord [0]?


10

Quali sono le differenze tra gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].pe gl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].z?

Capisco che gl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].zsono le coordinate pixel?

Ma cosa gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].psignifica e dove devo usarli?

Risposte:


15

La differenza è solo semantica . È possibile accedere a qualsiasi vettore GLSL utilizzando x/y/z/w, r/g/b/ao s/t/p/q. L'uso tipico è:

  • xyzwper coordinate spaziali
  • rgbaper i colori
  • stpqper coordinate di trama
  • se non si applica nessuno dei precedenti, è possibile utilizzare qualsiasi sapore, ma quando può essere fonte di confusione, è var[0]/var[1]/var[2]/var[3]possibile utilizzare invece.

Puoi mescolarli in espressioni: foo.x = bar.qo persino foo.xy = bar.gb + baz.st;. La restrizione principale è che lo swizzling può essere fatto solo usando lettere dello stesso gruppo, ad es. nonfoo.xya è valido perché si mescola xyda xyzwe averso rgba.


Non ho familiarità con la notazione stpq per le coordinate di trama (ho sempre visto uv invece). Immagino che p verrebbe usato per le trame 3D, ma in quale situazione verrebbe usato q ? Modifica: Nevermind Ho appena trovato la mia risposta. Sarebbe, con TextureCubeArrays.
David Gouveia,

@DavidGouveia: No, in realtà. Le diverse funzioni di texturing hanno significati diversi. Ad esempio, l'accesso a sampler2DShadowcon texturesignifica che la coordinata p è il valore di confronto. Accedere a sampler2DShadowcon textureProjsignifica che la coordinata p è il valore di confronto e la coordinata q è divisa nelle altre tre ( prima del confronto, quindi p è effettivamente comparison * q). Non hanno alcun significato intrinseco ; il significato cambia a seconda di come vengono utilizzati.
Nicol Bolas,

@Nicol Grazie per averlo chiarito. In realtà ho usato solo HLSL prima e anche lì ho sempre avuto bisogno solo delle intrinseche di base tex2D e texCube. Non ero a conoscenza della moltitudine di funzioni di texturing esistenti. (Non correlato: è il tuo vero nome, o solo il drago di MTG?)
David Gouveia,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.