Ne du... da tut sich nix... hier mal meine gesamte Render-Routine:
Ich weiß ich nerve etwas... aber ich bin echt Newbie was das hier angeht. Wäre echt nett, wenn du mir da weiterhelfen würdest...
tbResult Render(float fNumSecsPassed)
{
HRESULT hResult;
tbMatrix mRotation; // Rotationsmatrix
tbMatrix mTranslation; // Translationsmatrix
tbMatrix mWorld; // Vereinende Weltmatrix
// Rotations- und Translationsmatrix des Dreiecks erzeugen
mRotation = tbMatrixRotationY(TB_DEG_TO_RAD(g_fTime * 45.0f));
mTranslation = tbMatrixTranslation(tbVector3(0.0f, 0.0f, 2.0f));
// Beide Matrizen kombinieren und als Weltmatrix einsetzen
mWorld = mRotation * mTranslation;
tbDirect3D::GetDevice()->SetTransform(D3DTS_WORLD, (D3DMATRIX*)(&mWorld));
// -------------------------------------------------------------
// Den Bildpuffer und den Z-Buffer leeren
if(FAILED(hResult = tbDirect3D::GetDevice()->Clear(0,
NULL,
D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(0, 0, 63),
1.0f,
0)))
{
// Fehler beim Leeren!
MessageBox(g_hWindow, "Fehler beim Leeren der Puffer!",
"Fehler", MB_OK | MB_ICONEXCLAMATION);
TB_ERROR_DIRECT
"tbDirect3D::GetDevice()->Clear", hResult, TB_STOP);
}
// Szene beginnen
tbDirect3D::GetDevice()->BeginScene();
// Nun das Dreieck zeichnen
if(FAILED(hResult = tbDirect3D::GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, // Dreiecksliste
2, // 1 Dreieck
g_aTriangleVertex, // Vertexdaten
sizeof(SVertex)))) // Vertexgröße
{
// Fehler beim Zeichnen!
MessageBox(g_hWindow, "Fehler beim Zeichnen des Dreiecks!",
"Fehler", MB_OK | MB_ICONEXCLAMATION);
TB_ERROR_DIRECT
"g_pD3DDevice->DrawPrimitiveUP", hResult, TB_STOP);
}
// Partikel und Sprites rendern
// m_pSprites->Begin();
m_pPSystem->AddParticle(tbFloatRandom(0.0f, 4.0f),
0.0f, 0.0f,
tbVector3(0.0f, 0.0f, 10.0f),
tbVector3Random() * tbFloatRandom(0.5f, 2.0f),
1.0f,
50.0f, 1500.0f,
tbColor(1.0f, 0.25f, 0.25f, 0.25f),
tbColor(0.25f, 1.0f, 0.25f, 0.0f),
tbFloatRandom(0.0f, 2.0f), tbFloatRandom(0.0f, 2.0f));
m_pPSystem->Move(fNumSecsPassed);
m_pPSystem->AddToSpriteEngine(m_pSprites);
m_pSprites->End();
m_pSpritesEffect->Begin();
m_pSpritesEffect->Pass(0);
// tbDirect3D:
etTransform(D3DTS_WORLD, (D3DMATRIX*)(&mWorld));
m_pSprites->Render();
m_pSpritesEffect->End();
// Szene beenden
tbDirect3D::GetDevice()->EndScene();
// Der große Moment: den Bildpuffer sichtbar machen
tbDirect3D::GetDevice()->Present(NULL, NULL, NULL, NULL);
return TB_OK;
}