![]() |
Lightmap mit DirectX9 funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
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:
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.
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); Die Dlls gibts hier: ![]() 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 |
Re: Lightmap mit DirectX9 funktioniert nicht
Hallo!
Da du anscheinend nur eine Texturkoordinate hast musst du Folgendes hinzufügen, sonst wird immer (0|0) genommen:
Delphi-Quellcode:
mfg
Device.SetTextureStageState(1, // Die 2. Texture
D3DTSS_TEXCOORDINDEX, 0) // soll den Index der 1. mitbenutzen TGLDX |
Re: Lightmap mit DirectX9 funktioniert nicht
Juhuuuu, das wars, danke!
Also muss ich entweder fuer jede Stage eigene Koordinaten definieren oder die alten uebernehmen? Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz