[CSDN 연 묵] 독서 노트 4.
1874 단어 DirectX
고정 기능 렌 더 링 라인, 프로 그래 밍 렌 더 링 라인 으로 나 눌 수 있 습 니 다.
고정 기능 렌 더 링 라인:
첫 번 째 단계: 좌표 변환 과 빛 처리 (모든 대상 의 정점 은 추상 적 이 고 부동 소수점 좌표 에서 픽 셀 기반 화면 공간 으로 변환)
두 번 째 단계: 래 스 터 화 처리 단계 (이미 변 경 된 빛 단계 의 정점 조직 을 점, 선, 면 을 바탕 으로 하 는 그림 으로 하고 무늬 스티커, 색상 속성, 렌 더 링 상 태 를 설정 합 니 다)
메모: 렌 더 링 라인 의 절차 가 꼭 있어 야 하 는 것 은 아니 므 로 생략 할 수 있 습 니 다.
첫 번 째 단 계 는 세계 변환, 조경 변환, 빛 처리, 투영 변화, 시각 변환 으로 나 눌 수 있다.
세계 변환
//
D3DXMATRIX matWorld, Rx, Ry, Rz;
D3DXMatrixIdentity(&matWorld);
D3DXMatrixRotationX(&Rx, D3DX_PI * (::timeGetTime() / 1000.0f));
D3DXMatrixRotationY(&Ry, D3DX_PI * (::timeGetTime() / 1000.0f/2));
D3DXMatrixRotationZ(&Rz, D3DX_PI * (::timeGetTime() / 1000.0f/3));
matWorld = Rx * Ry * Rz * matWorld;
g_pd3dDevice->SetTransform(D3DTS_WORLD, &matWorld);
배경 변환
//
D3DXMATRIX matView;
D3DXVECTOR3 vEye(0.0f, 0.0f, -200.0f);
D3DXVECTOR3 vAt(0.0f, 0.0f, 0.0f);
D3DXVECTOR3 vUp(0.0f, 1.0f, 0.0f);
D3DXMatrixLookAtLH(&matView, &vEye, &vAt, &vUp);
g_pd3dDevice->SetTransform(D3DTS_VIEW, &matView);
투영 변환
//
D3DXMATRIX matProj;
D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI / 4.0f, 1.0f, 1.0f, 1000.0f);
g_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
시각 변환
//
D3DVIEWPORT9 vp;
vp.X = 0;
vp.Y = 0;
vp.Width = SCREEN_WIDTH;
vp.Height = SCREEN_HEIGHT;
vp.MinZ = 0.0f;
vp.MaxZ = 1.0f;
g_pd3dDevice->SetViewport(&vp);
주의:
struct CUSTOMVERTEX
{
FLOAT x, y, z;
DWORD color;
};
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE) // FVF
첫 번 째 단 계 를 거치 지 않 은 정점 으로 설정 합 니 다. 즉, 이전에 작 성 된 xyzchw 를 없 애고 xyz 로 바 꾸 는 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PickingPicking 마우스 클릭을 통해 Object를 고를 때 사실 화면에서 보여지는 것은 2D로 변환된 Screen Space이다. 따라서 우린 Ray Casting을 사용해 레이저를 쏘듯 카메라에서 Object까지 가...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.