GLSL에서 텍스처를 사용할 때는 꼭짓점 셰이더에서 최종 텍스처 좌표를 계산하고 varying
s를 사용하여 프래그먼트 쉐이더로 넘겨주는 것이 가장 좋습니다 . y 좌표를 간단히 뒤집는 예 :
// Vertex shader
attribute vec2 texture;
varying highp vec2 texCoord;
// ...
void main() {
texCoord = vec2(texture.x, 1.0-texture.y);
// ...
}
// Fragment shader
varying highp vec2 textureCoordinates;
uniform sampler2D tex;
// ...
void main() {
highp vec4 texColor = texture2D(tex, texCoord);
// ...
}
y 좌표에서의 반전 또는 vec2(0.5)
텍스처 좌표에 추가와 같은 훨씬 간단한 작업 이 프래그먼트 쉐이더에서 수행되면 텍스처 액세스가 훨씬 느려집니다. 왜?
참고로, 가중 합을 사용하여 두 개의 텍스처를 혼합하는 것은 시간면에서 훨씬 저렴하며 각 픽셀에 대해 수행되어야하므로 텍스처 좌표 자체의 계산은 그렇게 많은 비용이 들지 않습니다.