일반 토론 dda1

  • 2012년 4월 24일 화요일 오전 6:15
     
     

    벡터를 구하는 함수

    D3DXVECTOR3 u(x.0f,y.0f,z.0f);

    길이를 구하는 함수

    float length = D3DXVec3Length(&u)

    노멀라이즈 해주는 함수

    D3DXVec3Normalize(&out,&u)

    내적을 구하는 함수

    D3DXVec3Dot(&out,&out2)

    나온 값이 0 이면 직각

    0보다크면 90보다 작다

    0보다 작으면 90보다 크다

    외적을 구하는 함수

    D3DXVec3Cross(&out,&u,&v)

    전치행렬 구하는 함수

    D3DXMATRIX out

    d3dxmatrixtranspose(&out,&A)

    역행렬구하는 함수

    D3DXMatrixInverse(&out,0,&A):

    다이렉트 프로그램 구조

    윈도우의 클래스 등록 : RegisterClassEx()

    윈도우 생성 : CreateWindow()

    Direct3D 의 초기화 : InitD3D() 함수에서

    윈도우 화면에 표시 : ShowWindow(), UpdateWindow()

    메시지 루프 수행 : GetMessage(), TranslateMessage(), DispatchMessage()

    렌더 함수를 통해 화면에 그려준다.

    화면에 그리기전에 행렬설정과 라이트 설정을 해서 화면에 그려줄수있다.

    D3D 객체 소거 : 메모리에서 해제

    프로그램 종료

    파이프라인

    정점을 월드행렬을 통해 로컬좌표계를 월드좌표계에 넣어주고 카메라 행렬을 통해

    카메라 위치를 바꿔주고 투영행렬까지 해주면 변환된 정점이 나와서 화면에 그려주게 된다.

    이게 d3d의 전체 렌더링 파이프라인이다.