서의 공간
32. Glass and Ice 본문
Camera view 행렬 구축 방법
카메라의 업벡터는 항상 (0, 1, 0)
카메라 위치는 외부에서 설정함.(월드기준 위치)
카메라가 바라보는 방향 벡터는 월드기준으로 표현되며, 공식은
// Calculate the rotation in radians.
radians = mRotationY * 0.0174532925f;
// Setup where the camera is looking by default.
lookAt.x = sinf(radians) + mPositionX;
lookAt.y = mPositionY;
lookAt.z = cosf(radians) + mPositionZ;
XMVECTOR lookAtVector = XMLoadFloat3(&lookAt);
mViewMatrix = XMMatrixLookAtLH(positionVector, lookAtVector, upVector);
여기서 lookAt 벡터의 길이는 1이므로 sinf(radians) 값은 카메라의 z축으로부터 x축 방향으로 얼마나 더 떨어져 있는지를 알려준다. cosf(radians) 값 역시 마찬가지이다.
반사평면을 구하기 위한 반사 view 행렬은 카메라의 위치를 xz평면 기준으로 대칭시킨다. (y 위치 반전)
그러면 y축이 반전된 공간에서의 물체를 그리게 된다 즉, 물체의 반사상을 그릴 수 있다.
'Graphics API > DirectX 11 - Rastertek' 카테고리의 다른 글
29. Water (0) | 2021.01.21 |
---|---|
7. 3D Model Rendering (0) | 2021.01.07 |
6. Diffuse Lighting (0) | 2021.01.07 |
5. Texturing (0) | 2021.01.07 |
4. Buffers, Shaders, and HLSL (0) | 2021.01.07 |
Comments