서의 공간

32. Glass and Ice 본문

Graphics API/DirectX 11 - Rastertek

32. Glass and Ice

홍서의 2021. 1. 30. 23:25

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