Study/Graphics

일정한 크기의 빌보드.

붕대마음 2010. 5. 18. 20:30
반응형

너무 오래동안 삽질했다..젝1.!!!!!!!

카메라 거리에 따른 스케일량 공식
(카메라 FOV * 0.5f) * 카메라와의 거리


카메라와의 거리
D3DXVECTOR3 vLen = D3DXVECTOR3(m_pkRenderer->GetEyePos()->x - pkEntityFont->GetFontPos()->x,
      m_pkRenderer->GetEyePos()->y - pkEntityFont->GetFontPos()->y,
      m_pkRenderer->GetEyePos()->z - pkEntityFont->GetFontPos()->z);
float fLen = D3DXVec3Length(&vLen);

스케일 값
float scale = tan(m_pkRenderer->GetFov()/2)*fLen*0.4f;

가장 끝에 있는 상수는 원하는 크기를 위한 임의의 값.

빌보드에 곱해줄 스케일 행렬
D3DXMATRIX matBillScale;
D3DXMatrixScaling(&matBillScale, scale, scale, 1 );      
D3DXMatrixScaling(&m_matScale, pv3DScaling->x, pv3DScaling->y, 1 );

이런식으로 하면 된다..ㅜㅜ.
문제를 한번 복잡하게 생각하면 끝도없이 복잡해진다.
처음부터 차근차근 생각해보는 습관을 가져야 할 터인데...에휴...