[3D Graphics] Skybox
Reflection

- V - View로 향하는 벡터
- R - Reflection 벡터
-
N - 법선 Vector (normalized)
- R = N * cos(a) + S
- cos(a) = (N * V)이고, (N * V) / magnitude(V) = V 벡터가 N으로 투영된 벡터
- 위의 (N * V) / magnitude(V) 식에서 N은 정규화되지 않은 상태
- (N * V)에 단위벡터 N을 곱하면 법선 N 벡터를 구할 수 있다
- cos(a) = (N * V)이고, (N * V) / magnitude(V) = V 벡터가 N으로 투영된 벡터
- S = N * cos(a) - V
- R = 2 (N * cos(a)) - V
- R = 2*(norm(N) * N * V) - V
Refraction
스카이박스(Skybox)
- 씬에서 제일 먼저 렌더링된다
- DepthTest는 하지 않음
- 카메라의 viewpoint를 항상 따라다닌다
Dynamic Environment Mapping
- environment mapping을 위해 드로잉을 각 시면의 개수(cubemap일 경우 6회)만큼 해야함
- 한번은 인게임 업데이트, 다른 하나는 텍스처에 입힐 스크린 버퍼
- 텍스쳐가 실시간으로 업데이트 되면서 Dynamic Reflection/Dynamic Refraction 가능ㅉ