Why dont my meshes light up from the point light?

Started by
2 comments, last by johnnyBravo 20 years, 8 months ago
Im using the directx 9 sdk meshes tutorial to load meshes and draw them. Then i get a point light in there with them, but the point light only lights up my vertices on which i set the normals and materials for. How can i get the meshes to light up awell?
Advertisement
For a mesh to recieve lighting it NEEDS to have normals. And for the lighting to make sense, you NEED to set a valid material.

So add normals to the meshes that don''t have them.

Simon O'Connor | Technical Director (Newcastle) Lockwood Publishing | LinkedIn | Personal site

how would i go about that?
Heres 2 functions that i use to load and draw meshes.

load mesh
		void LoadMesh(char mesh[],int index=0)		{			LPD3DXBUFFER pD3DXMtrlBuffer;			D3DXLoadMeshFromX( mesh, D3DXMESH_SYSTEMMEM, myDevice, NULL, &pD3DXMtrlBuffer, NULL, &myNumMaterials[index], &myMesh[index] ) ;			D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();			myMeshMaterials[index] = new D3DMATERIAL9[myNumMaterials[index]];			myMeshTextures[index]  = new LPDIRECT3DTEXTURE9[myNumMaterials[index]];			for( DWORD i=0; i<myNumMaterials[index]; i++ )			{				myMeshMaterials[index][i] = d3dxMaterials[i].MatD3D;				myMeshMaterials[index][i].Ambient = myMeshMaterials[index][i].Diffuse;				myMeshTextures[index][i] = NULL;				if( d3dxMaterials[i].pTextureFilename != NULL && lstrlen(d3dxMaterials[i].pTextureFilename) > 0 )					 D3DXCreateTextureFromFile( myDevice, d3dxMaterials[i].pTextureFilename, &myMeshTextures[index][i] ) ;			}			pD3DXMtrlBuffer->Release();		}


draw mesh

		void DrawMesh(int index=0, int keyFrame =-1)		{			for( DWORD i=0; i<myNumMaterials[index]; i++ )			{				myDevice->SetMaterial( &myMeshMaterials[index][i] );				myDevice->SetTexture( 0, myMeshTextures[index][i] );				myMesh[index]->DrawSubset( i );			}		}
There is a ComputeNormals function or something similar in the mesh interface.
____________________________________________________________AAAAA: American Association Against Adobe AcrobatYou know you hate PDFs...

This topic is closed to new replies.

Advertisement