¿ì¼± Ä«¸Þ¶ó¸¦ ÃʱâÈ­ ÇÒ¶§ ÇÊ¿äÇÑ, ±âº»ÀûÀÎ º¯¼öÀÇ Çü¿¡ ´ëÇؼ­ ¾Ë¾Æ º¸°Ú½À´Ï´Ù.

º¯¼ö¸¦ ±ä¸»·Î ¼³¸íÇÏ´Â°Í º¸´Ù´Â »ó¼Ó¿¡ ´ëÇÑ Äڵ带 º¸¿©µå¸®´Â°Ô ÁÁ°Ú±º¿ä 

D3DXMATRIX´Â 4 X 4Çà·ÄÀ» ³ªÅ¸³»´Â º¯¼ö·Î D3DMATRIX¸¦ »ó¼Ó ¹Þ¾Ò½À´Ï´Ù.

typedef struct D3DXMATRIX : public D3DMATRIX 
{
  ........
  ........
  ........
}

typedef struct _D3DMATRIX {
    union {
        struct {
            float        _11, _12, _13, _14;
            float        _21, _22, _23, _24;
            float        _31, _32, _33, _34;
            float        _41, _42, _43, _44;

        };
        float m[4][4];
    };
} D3DMATRIX;

D3DXVECTOR3´Â 3Â÷¿ø¿¡¼­ °ø°£ÁÂÇ¥¸¦ Ç¥½ÃÇÏ´Â º¯¼ö·Î D3DVECTOR¸¦ »ó¼Ó ¹Þ¾Ò½À´Ï´Ù.

typedef struct D3DXVECTOR3 : public D3DVECTOR 
{
  ........
  ........
  ........
}

typedef struct _D3DVECTOR {
    float x;
    float y;
    float z;
} D3DVECTOR;

void SetupCamera ()¿¡¼­ Ä«¸Þ¶ó ºä¿Í ÇÁ·ÎÁ§¼ÇÀ» ¼³Á¤ÇÕ´Ï´Ù.

1) Ä«¸Þ¶ó ºä ¼³Á¤ 
D3DXMATRIX *D3DXMatrixLookAtLH(
                   D3DXMATRIX *pOut,
                   CONST D3DXVECTOR3 *pEye,
                   CONST D3DXVECTOR3 *pAt,
                   CONST D3DXVECTOR3 *pUp)

ù¹ø° ÀÎÀÚ´Â ÇÔ¼öÀÇ °á°ú°ªÀ» ¹Þ½À´Ï´Ù.
µÎ¹ø° ÀÎÀÚ´Â Ä«¸Þ¶óÀÇ ¿øÁ¡À» ³ªÅ¸³À´Ï´Ù.
¼¼¹ø° ÀÎÀÚ´Â Ä«¸Þ¶óÀÇ Å¸°Ù À§Ä¡¸¦ ³ªÅ¸³À´Ï´Ù.
³×¹ø° ÀÎÀÚ´Â Ä«¸Þ¶óÀÇ ¿ùµå °ø°£ÀÇ À§ÂÊ ¹æÇâÀ» ³ªÅ¸³»´Âµ¥ ÀϹÝÀûÀ¸·Î (0, 1, 0)À» ³ªÅ¸³À´Ï´Ù.

Ä«¸Þ¶ó ¸ÞÆ®¸¯½º¸¦ È°¼ºÈ­ ½ÃÅ°±â À§Çؼ­ SetTransform()ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.

HRESULT SetTransform(
  D3DTRANSFORMSTATETYPE State,
  CONST D3DMATRIX* pMatrix
);

ù¹ø° ÀÎÀÚ¿¡´Â D3DTS_VIEW¸¦ ³Ö¾î Ä«¸Þ¶óºä¸¦ ¼³Á¤ÇѴٴ°ÍÀ» ¾Ë¸³´Ï´Ù.
µÎ¹ø° ÀÎÀÚ¿¡´Â D3DXMatrixLookAtLH()ÇÔ¼öÀÇ °á°ú°ªÀ» ³Ö½À´Ï´Ù.

2)ÇÁ·ÎÁ§¼Ç ¼³Á¤
°ø°£ÀÌ Ä«¸Þ¶ó ºä¸¦ ÅëÇؼ­ ¾î¶»°Ô º¸À̴°¡¸¦ ¼³Á¤ÇÏ´Â ÇÔ¼öÀÔ´Ï´Ù.
D3DXMATRIX *D3DXMatrixPerspectiveFovLH(
              D3DXMATRIX *pOut,
              FLOAT fovy,
              FLOAT Aspect,
              FLOAT zn,
              FLOAT zf);

ù¹ø° ÀÎÀÚ´Â ÇÔ¼öÀÇ °á°ú°ªÀ» ¹Þ½À´Ï´Ù.
µÎ¹ø° ÀÎÀÚ´Â Ä«¸Þ¶ó ºäÀÇ º¸ÀÌ´Â ¿µ¿ª(fov)À» ¶óµð¾ÈÀ¸·Î ³ªÅ¸³À´Ï´Ù. ÀϹÝÀûÀ¸·Î D3DX_PI/4¸¦ Àû½À´Ï´Ù.
¼¼¹ø° ÀÎÀÚ´Â °¡·Î ¼¼·Î È­¸é ºñÀ²À» ³ªÅ¸³À´Ï´Ù.
³×¹ø° ÀÎÀÚ´Â Ä«¸Þ¶ó ºäÀÇ NEAR ÀÎÀÚ¸¦ ³ªÅ¸³»´Âµ¥, ´õ °¡±îÀÌ ÀÖ´Â ¹°Ã¼´Â º¸ÀÌÁö ¾Ê½À´Ï´Ù.
´Ù¼¸Â° ÀÎÀÚ´Â Ä«¸Þ¶ó ºäÀÇ FAR ÀÎÀÚ¸¦ ³ªÅ¸³»´Âµ¥, ´õ ¸Ö¸® ÀÖ´Â ÀÎÀÚ´Â º¸ÀÌÁö ¾Ê½À´Ï´Ù.

ÇÁ·ÎÁ§¼Ç ¸ÞÆ®¸¯½º¸¦ È°¼ºÈ­ ½ÃÅ°±â À§ÇØ SetTransform()ÇÔ¼ö¸¦ ½ÇÇàÇÕ´Ï´Ù.
ù¹ø° ÀÎÀÚ¿¡ D3DTS_PROJECTION, µÎ¹ø° ÀÎÀÚ¿¡  D3DXMatrixPerspectiveFovLH() ÇÔ¼öÀÇ °á°ú°ªÀ» ³Ö½À´Ï´Ù.



    ¼Ò½ºº¸±â     DOWNLOAD     È¨À¸·Î     À妽º·Î