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)