gl_TexCoord [0]의 구성 요소는 무엇을 의미합니까?


10

의 차이점은 무엇입니까 gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].p와는 gl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].z?

gl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].z픽셀 좌표 라는 것을 알고 있습니까?

그러나 무엇을 gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].p의미하며 어디에서 사용해야합니까?

답변:


15

차이점은 시맨틱 입니다. 모든 GLSL 벡터를 사용하여 액세스 할 수 있습니다 x/y/z/w, r/g/b/a또는 s/t/p/q. 일반적인 용도는 다음과 같습니다.

  • xyzw대한 공간 좌표
  • rgba색깔을 위해
  • stpq대한 텍스처 좌표
  • 위의 사항 중 어느 것도 해당되지 않으면 어떤 풍미도 사용할 수 있지만 혼동 var[0]/var[1]/var[2]/var[3]될 수있는 경우 대신 사용할 수 있습니다.

표현식을 foo.x = bar.q, 또는으로 혼합 할 수 있습니다 foo.xy = bar.gb + baz.st;. 주요 제한 사항은 스위 즐링은 같은 그룹의 문자를 통해서만 수행 할 수 있다는 것 입니다. foo.xya이다 무효 가 혼합 때문에 xy에서 xyzwa에서 rgba.


텍스처 좌표에 대한 stpq 표기법에 익숙하지 않습니다 (항상 uv 를 보았습니다 ). 나는 p 가 3D 텍스처에 사용될 것이라고 추측 하지만, 어떤 상황에서 q 가 사용될 것입니까? 편집 : 방금 내 대답을 찾았습니다. TextureCubeArrays를 사용하면됩니다.
David Gouveia

@DavidGouveia : 아뇨. 실제로 요. 다른 텍스처링 기능 은 다른 의미를 갖습니다. 예를 들어 sampler2DShadowwith로 액세스 texture하면 p 좌표가 비교 값 임을 의미합니다 . sampler2DShadowwith로 액세스 textureProj하면 p 좌표가 비교 값이고 q 좌표가 다른 세 가지로 나뉘어집니다 ( 비교 전에 p 는 실제로 comparison * q). 그들은 본질적인 의미 가 없습니다 . 사용 방법에 따라 의미가 달라집니다.
Nicol Bolas

@Nicol 정리해 주셔서 감사합니다. 나는 실제로 이전에 HLSL을 사용했으며 심지어 기본 tex2D 및 texCube 내장 함수 만 필요했습니다. 나는 다수의 기존 텍스쳐링 기능을 알지 못했다. (관련없는 : 그 실명 또는 MTG에서 불과 용?)
데이비드 Gouveia의
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.