답변:
차이점은 시맨틱 입니다. 모든 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
에서 xyzw
와 a
에서 rgba
.
sampler2DShadow
with로 액세스 texture
하면 p 좌표가 비교 값 임을 의미합니다 . sampler2DShadow
with로 액세스 textureProj
하면 p 좌표가 비교 값이고 q 좌표가 다른 세 가지로 나뉘어집니다 ( 비교 전에 p 는 실제로 comparison * q
). 그들은 본질적인 의미 가 없습니다 . 사용 방법에 따라 의미가 달라집니다.