wooseokyourself / shmup

OpenGL based game
MIT License
0 stars 0 forks source link

Lighting #39

Open wooseokyourself opened 3 years ago

wooseokyourself commented 3 years ago

Phong Light

vertex shader input

vertex shader output

in vertex shader..

  1. modelPos 의 최종 변환 (gl_Position = MVP * modelPos)
  2. modelPos 의 월드 변환으로 frag pos in world coord 출력 (fragPos = modelViewMat * modelPos)
  3. modelNormalVec 의 월드 변환으로 normal vector of frag in world coord 출력 (normalVec = modelViewMatForVec * modelNormalVec)

fragment shader input

fragment shader output

in vertex shader..
지지고 볶아서 phong 계산한 뒤 fragColor 출력

wooseokyourself commented 3 years ago

Directional Light
어플리케이션에서 light.pos의 이동을 관리하고, 셰이더에는 light.pos - vec3(0.0f) 벡터를 light direction으로 보냄