티스토리 뷰
파이프 라인]
로컬 스페이스 |
월드 스페이스 |
뷰 스페이스 |
후면 추려내기 |
조명 |
클리핑 |
투영 |
뷰포트 |
래스터 라이즈 | |
모델링 스페이스 |
D3D TS _WORLD |
D3DX Matrix LookAtLH |
backface culling |
D3DCULL |
projection |
표현영역 |
삼각형 픽셀컬러 계산 |
- 로컬 스페이스
- 월드스페이스
: 로컬 좌표시스템(0,0,0)의 3D모델을 월드좌표 시스템으로 옮긴다.
D3DXMATRIX cubeWorldMatrix;
D3DXMatrixTranslation( &cubeWorldMatrix, -3.0f, 2.0f, 6.0f );
Device->SetTransform( D3DTS_WORLD, &cubeWorldMatrix );
drawCube();
- 뷰스페이스
: 월드 스페이스내의 카메라의 위치를 원점으로 이동한다.
D3DXMATRIX V;
D3DXMatrixLookAtLH( &V, &pEye, &pAt, &pUp );
- 후면 추려내기
: 폴리곤의 전면/후면중에 후면을 추려낸다. 보여주지 않는다. 그리기 연산을 하지 않는다.
Device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE/D3DCULL_CW/D3DCULL_CCW);
- 조명
- 클리핑
: 시야 볼륨(범위)외부의 물체를 추려내다. 보여주지 않는다. 그리기 연산을 하지 않는다
- 투영
: 3D장면을 2D 표현 , n차원에서 n-1차원을 얻는 과정, 원근투영(Perspective Projection)
즉 카메라에서 멀리 떨어진 물체는 가까운 물체에 비해 작게 나타난다.
이와 같은 타입의 투영은 3D장면을 2D이미지로 표현하는데 가장 적합하다.
D3DXMATRIX proj;
D3DXMatrixPerspectiveFovLH(&proj,
PI* 0.5f, // 2*PI = 360도 , PI=180도 , PI*0.5 = 90도
(float) W/ (float) H, // 종횡비 = 너비/높이 정사각형->직사각형
1.0, // 가까운 평면까지 거리
1000.0f // 먼 평면까지 거리
)
Device->SetTransform( D3DTS_PROJECTION, &proj );
- 뷰포트 변환
: 게임에서는 뷰포트는 보통 직사각형의 전체 화면이 되지만,
윈도우 모드에서는 클라이언트 영역이나 화면의 일부가 된다.
D3DVIEWPORT9 vp = { 0,0, 640, 480, 0, 1 };
Device->SetViewport(&vp);
- 래스터라이즈
: 2D삼각형을 그리는데 필요한 픽셀 컬러들을 계산하는 과정 ,
엄청난 작업양을 필요로 하므로 ,전용 그래픽 하드웨어에서 처리
[출처] DirectX 랜더링 파이프 라인|작성자 macyoo
'프로그래밍 > 게임 개발' 카테고리의 다른 글
[Cocos2D-X] 글 쓴 날짜로 최신 버전 설치, 사용법(VS2010 사용) (0) | 2011.10.15 |
---|---|
[DirectX] Texture Mapping에 대한 좋은 설명 (0) | 2011.06.01 |
[DirectX] 투영 (0) | 2011.04.11 |
[DirectX] SetFVF 플래그 - D3DFVF_XYZ와 D3DFVF_XYZRHW (0) | 2011.03.28 |
[펌] 전투 프로그래밍 개론 (0) | 2011.03.25 |
- Total
- Today
- Yesterday