Jump to content
  • Advertisement


This topic is now archived and is closed to further replies.


WorldViewProj Matrices

This topic is 5530 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Okay I made this program that takes a single triangle and spins it about the x axis using the fixed function pipeline. All fine and dandy. Then I converted it to a vertex shader and now its not so fine. It does the color part of the VS properly but the matrices it uses gets a little screwed up. Instead of rotating the triangle about its y axis (so you see a spinning triangle) it looks as though the triangle is spinning around the camera with a radius about as big as big as how far back my eye is. wierd. anyway here is the code that sets up my matrices and VS constant:
  HRESULT SetupMatrices(const DWORD &delta)
	//world matrix

	D3DXMATRIX matWorld;
    UINT  iTime  = timeGetTime() % 4000;
    FLOAT fAngle = iTime * (2.0f * D3DX_PI) / 4000.0f;
    D3DXMatrixRotationY( &matWorld, fAngle );	

	//view matrix

	D3DXMATRIX matView;
	D3DXMatrixLookAtLH( &matView
		, &D3DXVECTOR3( 0.0f, 0.0f,-5.0f )		//eye

		, &D3DXVECTOR3( 0.0f, 0.0f, 0.0f )		//at

		, &D3DXVECTOR3( 0.0f, 1.0f, 0.0f ) );	//up

	//projection matrix

	D3DXMATRIX matProj;
	D3DXMatrixPerspectiveFovLH( &matProj
		, D3DXToRadian( 45 )
		, 4/3
		, 1.0f
		, 100.0f);

	//setup vertexshader clipping matrix

	D3DXMATRIX matClip;
	D3DXMatrixTranspose( &matClip, &(matWorld * matView * matProj) );
	g_pD3DDevice->SetVertexShaderConstantF(0, (FLOAT*)matClip, 4);
	return S_OK;
Here is my VertexShader:

//      reg c0-3	= WorldViewProj matrix

//	    reg v0		= position register

//		reg v1		= color register


vs_1_1					//Shader version 1.1		

dcl_position v0			//declare position

dcl_color v1			//declare color

m4x4 oPos, v0, c0		//position the vertex

mov oD0, v1				//output vertex color from input (untouched)  

Share this post

Link to post
Share on other sites
Nevermind. It was working just how it was supposed to. I forgot that for some reason, I set the z value of the vertices to 5. Set it back to 0 and it spins like a top.

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!