Also ich wollte ueber meine Textur eine Lightmap legen und habe das dem Buch DirectX9 in Delphi nachprogrammiert.
Aber irgendwie habe ich das Gefühl er bildet immer den mittleren Farbwert der Lightmap und legt den einfach überall über die Textur, statt dass er einzelne Punkte erhellt oder verdunkelt.
Hier mal mein Code für das Zeichnen Lightmap:
Delphi-Quellcode:
Device.SetFVF(D3DFVF_Vertex);
Device.SetTexture(0, Texture); //Texture is die normale Textur
Device.SetTexture(1, Lightmap); //Lightmap natürlich die Lightmap ^^
Device.SetStreamSource(0, VB, 0, sizeof(TVertex));
//so, hier setze ich nun die texturestages, die angelich die Lightmap drüber blenden sollen
//eigentlich sollten weisse flecken auf der lightmap die textur erhellen
//schwarze flecken natürlich verdunkeln
Device.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
Device.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
Device.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_CURRENT);
Device.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_TEXTURE);
Device.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
Device.DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
Also im Moment liegt beim Start eine schlicht weisse Lightmap drüber, aber rechts könnt ihr ja andere Maps auswählen. Ich häng das Projekt mal an, allerdings müsst ihr dazu 2
Dll-Dateien in das System32 Verzeichnis kopieren, sonst kommt beim Programmstart immer der Fehler dass "DirectX9.dll nicht gefunden wurde" oder sowas. Keine Ahnung woran das liegt.
Die Dlls gibts hier:
http://minfos.de/buch/support.shtml
Sind nicht Passwort geschuetzt!
Wäre seeeeehr dankbar, wenn mir wer hilft! Weiss nicht worans liegt, der Code steht genau so im Buch...
Grüße, chicken