버텍스 쉐이더는 버텍스 당 3 번 (삼각형에서 3 번) 실행되기 때문에, 가변 변수는 모든 파편에 대해 어떻게 계산됩니까? (예에서와 같이) 세 번만 할당됩니다.OpenGL은 버텍스 쉐이더에서 세 번만 설정 되었더라도 조각 쉐이더에서 다양한 변수를 어떻게 보간합니까?
조각 쉐이더 :
precision mediump float;
varying vec4 v_Color;
void main() {
gl_FragColor = v_Color;
}
버텍스 쉐이더 :
attribute vec4 a_Position;
attribute vec4 a_Color;
varying vec4 v_Color;
void main() {
v_Color = a_Color;
gl_Position = a_Position;
}
그래서, 질문은, 어떻게, 방법이 있기 때문에, 모든 조각에 변수 v_Color을이 알고 뒤에 시스템 계산 하는가 셰이더는 v_Color를 세 번만 (삼각형으로) 할당합니다.
가변 변수 인 것을 의미하는 세 정점 사이의 값을 보간합니다. –
내부 프로세스가 어떻게 진행되는지 말해 주시겠습니까? 거리를 어떻게 측정할까요? (지식이 부족해서 미안하지만 인터넷에서 다른 것을 찾을 수 없었습니다.) – ViliX64
GLSL에 익숙하지 않아서 다른 사람이 질문에 대답하기를 바랍니다. 그러나 기본적으로 정점이 서로 10 픽셀 떨어져 있으면 정점 사이의 각 픽셀은 다른 색상으로 1/10, 2/10, 3/10 등의 보간 된 색상을 얻게됩니다. –