2011년 1월 10일 월요일

내가 생각하는 조명벡터의 방향

빛의 벡터를 그리는 방법에는 사실 두가지가 있다.
  • 정점를 밑둥으로 하여 빛의 위치를 가리키는 벡터
  • 빛의 위치를 밑둥으로 하여 정점을 가리키는 벡터
난 개인적으로 빛의 위치를 밑둥으로 두는 걸 선호하는데 그게 상식적으로 맞아서 일뿐 특별한 이유는 없다. 정점을 밑둥으로 하면 난반사광(diffuse lighting) 계산을 할 때 부호를 뒤집어 줄 필요가 없으니 속도가 빨라질 수도 있다는 주장도 있는데.. 쉐이더에선 아마 거의 차이가 없을거고.. CPU에서 차이가 있더라도 거의 미미한 수준... 이런 자잘한 최적화 때문에 상식을 깨는걸 별로 안좋아하기에 난 여전히 빛의 위치를 밑둥으로 밀고 나갈 예정..

이걸 그림으로 표현하면(벡터 반사를 보여주긴 하지만) 대충 이런 그림...(출처 위키피디아)




댓글 2개:

  1. 음... 한쪽이 상식적으로 맞는다기 보다는 그때그때 다르다는게 맞겠죠.

    말씀하신건 1번이라 하고 반대 방향을 2번이라고 했을때
    일단 정의로 봤을 때 빛의 방향을 2번이라고 말한다면 틀린거고, 2번이 빛을 향하는 방향이라고 하면 맞겠죠.

    그러면 난반사 공식에서 '빛을 향하는 방향'과 노말벡터를 내적 하는 것이 상식을 깨는 것이냐, 분면 그건 아닌 것 같습니다.

    결국은 선호의 차이인데, 상식 얘기까지 나온...;;

    -Hybrid

    답글삭제
  2. 상식적으로 맞다고 한건... 입사광의 벡터가 L이니까 입사광이라 하면 빛에서 시작해서 정점으로 향하는게 상식적으로 맞다고 한 것이에요.. 수학적으론 둘다 옳다고 생각...

    답글삭제