DirectX

jjuiddong
Jjuiddong (토론 | 기여) 사용자의 2017년 7월 31일 (월) 16:40 판

(비교) ← 이전 판 | 최신판 (비교) | 다음 판 → (비교)
이동: 둘러보기, 찾기
  • ID3DXSprite 객체를 사용해서 텍스쳐 출력하기.
		g_TextSprite->Begin( D3DXSPRITE_ALPHABLEND);
		Matrix44 mm;
		mm.SetScale(Vector3(0.5, 0.3f, 0.3f));
		g_TextSprite->SetTransform((D3DXMATRIX*)&mm);
		RECT rc2 = {0,0,1920,2000};
		Vector3 center(00,00,0);
		Vector3 pos(0,0,0);
		g_TextSprite->Draw(g_Texture1, NULL, (D3DXVECTOR3*)&center, 
			(D3DXVECTOR3*)&pos,  
			D3DCOLOR_RGBA(255,255,255,255));
  		g_TextSprite->End();
  • 3D좌표를 투영된 2D좌표로 변환하기
    • D3DXVec3Project() 함수를 이용하자.
	PxTransform viewTM = m_Sample.getApplication().getCamera().getViewMatrix();
	PxTransform tm = m_pRenderNode->getTransform();
	tm.p.x = -tm.p.x; // change left hand axis

	D3DXMATRIX m;
	convertD3D9(m, tm);

	D3DXMATRIX mProj;
	D3DXMatrixPerspectiveFovLH(&mProj, 55.f * PxPi / 180.0f, 800.f/600.f, 0.1f, 10000.f);

	D3DXMATRIX mView;
	{
		D3DXVECTOR3 pos(-viewTM.p.x, viewTM.p.y, viewTM.p.z);
		PxVec3 lookAt = viewTM.p + (m_Sample.getApplication().getCamera().getViewDir() * 10.f);
		D3DXVECTOR3 target(-lookAt.x, lookAt.y, lookAt.z);
		D3DXMatrixLookAtLH(&mView, &pos, &target, &D3DXVECTOR3(0.0f, 1.0f, 0.0f));
	}

	D3DVIEWPORT9 viewport;
	viewport.X = 0;
	viewport.Y = 0;
	viewport.Width = 800;
	viewport.Height = 600;
	viewport.MaxZ = 1;
	viewport.MinZ = 0;

	D3DXVECTOR3 v;
	D3DXVec3Project(&v, &D3DXVECTOR3(0,0,0), &viewport, &mProj, &mView, &m);

	if ((v.x < 0) || (v.y < 0) || (v.x > 800) || (v.y > 600))
		return;

	m_Sample.getRenderer()->print(v.x, v.y, m_Name.c_str() );


       LPD3DXLINE m_line;
       D3DXCreateLine(device, &m_line);
	PxTransform viewTM = m_Sample.getApplication().getCamera().getViewMatrix();

	D3DXMATRIX mProj;
	D3DXMatrixPerspectiveFovLH(&mProj, 55.f * PxPi / 180.0f, 800.f/600.f, 0.1f, 10000.f);

	D3DXMATRIX mView;
	{
		D3DXVECTOR3 pos(-viewTM.p.x, viewTM.p.y, viewTM.p.z);
		PxVec3 lookAt = viewTM.p + (m_Sample.getApplication().getCamera().getViewDir() * 10.f);
		D3DXVECTOR3 target(-lookAt.x, lookAt.y, lookAt.z);
		D3DXMatrixLookAtLH(&mView, &pos, &target, &D3DXVECTOR3(0.0f, 1.0f, 0.0f));
	}

	m_line->Begin();
	D3DXMATRIX mat = mView * mProj;
 	m_line->DrawTransform( &m_lineList.front(), m_lineList.size(), &mat, D3DCOLOR_XRGB(255, 0, 0));
	m_line->End();
  • Direct3D 9 dxerr.h 컴파일 에러
    • DXUT.h 에 추가 (dxerr.h 파일을 참조하는 함수는 모두 무시한다)
    • dxerr.h 인클루드 제거
#define DXTRACE_ERR(a,b) b
#define DXTRACE_ERR_MSGBOX(a,b) b
#define DXTrace(a,b,c,d,e) S_OK
  • Lost Device
  • Dx11 d3dx11effect.h 컴파일
    • $(WindowsSDK_IncludePath) 최우선 검색 디렉토리로 설정
    • #include <dxgitype.h> 인클루드 (이 때, 이 파일은 Windows SDK 파일을 포함하게 해야함)
개인 도구
이름공간

변수
행위
둘러보기
도구모음