Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
D3DMATERIAL9 material; D3DCOLORVALUE rgbaDiffuse = {1.0, 1.0, 1.0, 0.0,}; D3DCOLORVALUE rgbaAmbient = {1.0, 1.0, 1.0, 0.0,}; D3DCOLORVALUE rgbaSpecular = {0.0, 0.0, 0.0, 0.0,}; D3DCOLORVALUE rgbaEmissive = {0.0, 0.0, 0.0, 0.0,}; float rPower = 0; material.Diffuse = rgbaDiffuse; material.Ambient = rgbaAmbient; material.Specular = rgbaSpecular; material.Power = rPower; material.Emissive = rgbaEmissive; m_pDevice->SetMaterial(&material); |
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Licht ZeroMemory(&g_light, sizeof(D3DLIGHT9)); g_light.Type = D3DLIGHT_POINT; g_light.Diffuse.r = g_light.Diffuse.g = g_light.Diffuse.b = 1.0f; g_light.Ambient.r = g_light.Ambient.g = g_light.Ambient.b = 1.0f; g_light.Range = 100.0f; g_light.Position.x = 0.0f; g_light.Position.y = 3.0f; g_light.Position.z = -5.0f; g_light.Direction.x = 0.0f; g_light.Direction.y = 0.0f; g_light.Direction.z = 0.0f; g_pD3DDevice->SetLight(0, &g_light); g_pD3DDevice->LightEnable(0, TRUE); |
Zitat von »"soxx"«
ist der server...... nach ein paar refreshes gehts.
derzeit habe ich folgendes zum thema licht implementiert...
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
harvesterXMeshManager::it = harvesterXMeshManager::vMeshes.begin(); while( harvesterXMeshManager::it != harvesterXMeshManager::vMeshes.end() ) { D3DXVECTOR3 vDirection; vDirection = ((harvesterXMesh*)*it)->getPosition(); // liefert mir die position des Modells x,y,z setLight(vDirection); ((harvesterXMesh*)*it)->Render(); // rendere das Modell harvesterXMeshManager::it++; // gehe im vector um eins weiter } // setLight void setLight(D3DXVECTOR3 vDirection) { // ###################################################################### // Lichtmanagement // ###################################################################### ZeroMemory(&g_light, sizeof(D3DLIGHT9)); g_light.Type = D3DLIGHT_POINT; g_light.Diffuse.r = 0.0f; g_light.Diffuse.g = 0.0f; g_light.Diffuse.b = 1.0f; g_light.Ambient.r = 0.0f; g_light.Ambient.g = 0.0f; g_light.Ambient.b = 1.0f; g_light.Specular.r = 1.0f; g_light.Specular.g = 1.0f; g_light.Specular.b = 1.0f; g_light.Attenuation0 = 0.05; g_light.Attenuation1 = 0.025; g_light.Attenuation2 = 0.0; g_light.Range = 100.0f; g_light.Position.x = 0.0f; g_light.Position.y = 3.0f; g_light.Position.z = -5.0f; D3DXVec3Normalize( (D3DXVECTOR3*)&g_light.Direction, &vDirection ); g_pD3DDevice->SetLight(0, &g_light); g_pD3DDevice->LightEnable(0, TRUE); g_pD3DDevice->SetRenderState(D3DRS_AMBIENT, 0x00202020 ); g_pD3DDevice->SetRenderState(D3DRS_COLORVERTEX, FALSE); } // render funktion VOID harvesterXMesh::Render() { // die Weltmatrix des Objektes zum Zeichnen verwenden harvesterXMesh::m_pDevice->SetTransform(D3DTS_WORLD, &m_mMeshMatrix); m_pDevice->BeginScene(); // In dieser Schleife werden nach und nach alle Teilmeshes // gezeichnet for( DWORD i=0; i<m_dMaterials; i++ ) { // Material und Texturen setzen m_pDevice->SetTexture(0,m_pMeshTextures[i]); m_pDevice->SetMaterial(&m_pMeshMaterials[i]); // Zeichnen des aktuellen Teilmesh m_pMesh->DrawSubset(i); // Ende des Zeichnens } m_pDevice->EndScene(); } |
Anonymous
unregistriert
Zitat
ich hole mir die position des modells (x,y,z) mit getPosition()
C-/C++-Quelltext |
|
1 2 3 |
g_light.Position.x = 0.4f; g_light.Position.y = 0.4f; g_light.Position.z = -0.4f; |
C-/C++-Quelltext |
|
1 |
D3DXVec3Normalize( (D3DXVECTOR3*)&g_light.Direction, &vDirection ); |
Werbeanzeige