0305 법선을 만드는 정도의 능력
http://www.gisdeveloper.co.kr/?p=14159
정점셰이더 - aPos, aNormal, aTexCoord 에서
정점을 조정해버리면 aNormal이 의미가 없게 됨.
아니 그러면 fs에서 NdotL같은건 어케 하라고?
-> FS 내에서 편미분함수(dFdx 와 dFdy) 로 '스크린 픽셀' 에 대한 '모델 스페이스의 정점' 의 변화량을 알아내면 됨.
// frag.glsl
...
in vec3 vPosition;
...
vec3 normal = normalize(
cross(
dFdx(vPosition.xyz),
dFdy(vPosition.xyz)
)
);
...
vPosition out은 '각 픽셀마다 계산' 되기 때문에 옆에 픽셀에 해당하는 vPosition 도 얻는 게 가능함ㅇㅇ
참고로 계산은 이렇게 된단다
A B
C D
dFdx -> (B - A)
dFdy -> (C - A)