   Can you have good looking 2D without going Ortho?
  I was just wondering if I were to use D3DXMatrixPerspectiveFovLH instead of D3DXMatrixOrthoLH for the purpose of a 2D game would it render the edges of the scene to fit the "field of view" perspective, thus making the scene look a little weird.  I'm just asking because I've heard if you're doing 2D you "have" to use ortho, but isn't there a way to keep it out of ortho and still not have the scene be warped by the perspective?  Currently I'm not getting any visual artifacts from using D3DXMatrixPerspectiveFovLH but I just didn't want to get half-way through my game and have something pop up.  For the curious, here's my code:D3DXMATRIX matProjection;ZeroMemory(&matProjection, sizeof(matProjection));D3DXMatrixPerspectiveFovLH(&matProjection, D3DX_PI/4, g_ScreenAspect, 1.0f, 100.0f);g_pDevice->SetTransform(D3DTS_PROJECTION, &matProjection);D3DXMATRIX matView;ZeroMemory(&matView, sizeof(matView));D3DXMatrixLookAtLH(&matView,   &D3DXVECTOR3(0.0f, 0.0f, -5.0f),  &D3DXVECTOR3(0.0f, 0.0f,  0.0f),   &D3DXVECTOR3(0.0f, 1.0f, 0.0f));g_pDevice->SetTransform(D3DTS_VIEW, &matView);D3DXMATRIX matWorld;D3DXMatrixIdentity(&matWorld);g_pDevice->SetTransform(D3DTS_WORLD, &matWorld);g_pDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);g_pDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
  Ortho doesn't distort your scene based on distance, by definition. Perspective does, by definition. You don't "have to", but doing so allows you to implement multiple layers and such trivially without dealing with perspective.   ;  Could you not just use screen coorsinates? Just deffine all vertices as "Transformed" whatever (textured I would assume). Then you can specify the location of the vertices in screen cordinates (pixels). One thing to note, the vertices still have a 'z' coordinate, which is used for z-buufer stuff and is usually between 0.0 and 1.0. That confused me for a while... HTHEdit: changed "Position" to "Transformed". silly mistake...[Edited by - Sr_Guapo on July 16, 2004 10:34:13 PM];  Oy, he has a point, I forgot about that. You can use pretransformed coordinates (D3D_XYZRHW i think) and specify in screen coords.   ;  Depending on if you are using DX8 or 9, you can use either the FVF (DX8) or precreated vertices via the "CustomVertex" class (DX9, this may only be in managed though, I'm not sure...). Either way, it is very easy without having to mess around with all the 3D mess of cameras, matrices and what not.   ;  Either way works fine, but one advantage of using the ortho matrix is that you can use the matrix to scale things in interesting ways. For instance, you can specify vertex values between 0 and 1 and use the matrix to scale correctly whether the resolution is 640x480 or 1600x1200 (for instance).By using the offcenter functions, you can render arbitrary "viewports" into a scene and other interesting tricks. Can still do this with transformed vertices, but you have to get in and change the vertex data.   