Hi Leute,
ich wollte mir ein kleines 3D Spiel mit der TriBase schreiben, in dem man mit einem Raumschiff auf Zeit fliegen muss. Nun habe ich vieles schon fertig, aber nach dem rendern bleibt einfach der Bildschierm schwarz.
Aber alles wird richtig geladen, dass kann ich an dem Logfile erkennen. Und der Debuger sagt auch nichts. Für das Schiff habe ich mir eine eigene Klasse geschrieben, fast so wie die bei Galactica. Hier die Render-Funktion fürs Schiff:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
tbResult CShip::Render(float fTime)
{
// Matrix abfragen und einsetzten:
Update();
tbDirect3D::Instance().SetTransform(D3DTS_WORLD, m_mMatrix);
// Model rendern:
m_pModel->Render();
return TB_OK;
}
|
und hier die vom Game:
|
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
|
tbResult CGame::Render(float fTime)
{
tbMatrix mProjection;
tbMatrix mCamera;
D3DLIGHT9 light;
tbVector3 cameralook;
tbVector3 camerapos;
tbVector3 cameraup;
tbDirect3D& D3D = tbDirect3D::Instance();
D3D->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, tbColor(0.0f), 1.0f, 0);
D3D->BeginScene();
mProjection = tbMatrixProjection(TB_DEG_TO_RAD(70.0f), D3D.GetAspect(), 0.1f, 50.0f);
D3D->SetTransform(D3DTS_PROJECTION, (D3DMATRIX *) &mProjection);
camerapos = m_pShip->RelToAbsPos(tbVector3(0.0f, 0.0f, -m_pShip->m_pModel->GetBoundingSphereRadius() * 2.5f));
cameralook = camerapos - m_pShip->m_vZAxis;
cameraup = m_pShip->m_vYAxis;
mCamera = tbMatrixCamera(camerapos, cameralook, cameraup);
D3D.SetTransform(D3DTS_VIEW, mCamera);
ZeroMemory(&light, sizeof(D3DLIGHT9));
light.Type = D3DLIGHT_DIRECTIONAL;
light.Diffuse = tbColor(1.0f, 1.0f, 1.0f);
light.Specular = tbColor(1.0f, 1.0f, 1.0f);
light.Direction = cameralook - camerapos;
D3D->SetLight(0, &light);
D3D->LightEnable(0, true);
m_pShip->Render(fTime);
m_pSkybox->Render(camerapos);
D3D->EndScene();
D3D->Present(NULL, NULL, NULL, NULL);
return TB_OK;
}
|
Ich habe schon in allen Spieleprogrammierer büchern geschaut, die Forensuche befragt, aber nichts ist dabei raus gekommen. Ich hoffe mir kann jemand helfen. Vielen dank auch schon mal für Hilfe im voraus.