Hallo!
Ich habe ein Problem mit Beleuchtung!
Ich habe keine Lichtquelle und kein Material gesetzt. Das Renderstate D3DRS_LIGHTING ist TRUE.
Ich hätte mir gedacht eigentlich sollte man nun nichts mehr sehen. Trotzdem ist alles sichtbar, wie wenn Beleuchtung deaktiviert wäre.
Mein Vertexformat:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
struct SVertex_Ground
{
FLOAT x, y, z;
FLOAT tu, tv;
static DWORD dwFVF;
};
DWORD SVertex_Ground::dwFVF = D3DFVF_XYZ | D3DFVF_TEX2;
|
und ein Ausschnit aus der Renderfunktion:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
D3DDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
D3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
D3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
D3DDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP);
D3DDevice->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_WRAP);
// Links unten
aVertex[0].x = (float)(-10*MAP_X/2);
aVertex[0].y = 0.0f;
aVertex[0].z = (float)(-10*MAP_Z/2);
aVertex[0].tu = 0.0f;
aVertex[0].tv = (float)(MAP_Z);
// Links oben
...
...
...
D3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, aVertex, sizeof(SVertex_Ground));
|
Eine Textur hab ich geladen und gesetzt, die Farbe wird nur von dieser Textur übernommen (siehe TexturStageStates). Kann es eventuell daran liegen?
Gezeichnet wird hier nur ein Quadrat. Die Berechnung der 4 Eckpunkte habe ich etwas gekürzt, ich denke hier kann nichts schief gehen.
Was kann für diesen Effekt verantwortlich sein?
Für hilfreiche Antworten wäre ich dankbar
PS: Mit Materialien und Licht siehts trotzdem so aus, wie wenn das Licht deaktiviert wäre.