Hallo,
ich versuche gerade die Übungsaufgaben des Kaptitels über die Beleuchtung zu lösen und habe dabei so meine Probleme, die, wie ich vermute mit der Positionierung eines Spotlichts zusammenhängen.
Und zwar scheint alles genau umgekehrt zu sein: Dort wo ich den Lichtkegel vermute, ist ein großer schwarzer Fleck und am Rand sind die Quadrate dann wieder zu sehen. Ich vermute das hängt mit der Positionierung zusammen, die ich wie folgt durchführe:
-----------------------
tbVector3 vLookAt(g_vCameraPosition + tbVector3(sinf(g_fCameraAngle), 0.0f, cosf(g_fCameraAngle)));
tbMatrix mCamera = tbMatrixCamera(g_vCameraPosition, vLookAt, bVector3(0.0f, 1.0f, 0.0f));
g_pD3DDevice->SetTransform(D3DTS_VIEW, (D3DMATRIX*)(&mCamera));
D3DLIGHT9 camLight;
ZeroMemory(&camLight, sizeof(D3DLIGHT9));
camLight.Type = D3DLIGHT_SPOT;
camLight.Diffuse = tbColor(1.0f, 1.0f, 1.0f);
camLight.Specular = tbColor(1.0f, 1.0f, 1.0f);
camLight.Direction = g_vCameraPosition - vLookAt;
camLight.Position = g_vCameraPosition;
camLight.Range = 50.0f;
camLight.Theta = 5.0f;
camLight.Phi = 20.0f;
camLight.Falloff = 1;
-----------------------
Danach setze ich das Licht und aktiviere es. Nebenbei: Wenn ich so mit einem D3DLIGHT_DIRECTIONAL Licht arbeite, funktioniert es (oder täuscht das bloß?)
Kann mir jemand helfen? Ich vermute es hängt damit zusammen, dass ich nicht weiß was es mit absoluten Koordinaten auf sich hat?
Vielen Dank und Grüße,
Tobias