Blitz & Regen mit d3d9



  • Zu a: Hilft mir leider wenig weiter.. Wen ich das wüsste, hätte ich diese Frage ja nicht gestellt.

    Zu b: Ist bei mir nicht möglich, da ich gewzungen bin, eine Script-Interpreter Sprache zu verwenden, die D3D nicht von haus aus unterstützt und ich somit alle Funktionen aus der d3d9.dll und d3dx9.dll callen muss 😕

    Zu c: Danke, das war Hilfreich 😉



  • Es gibt nunmal nicht die eine "Art" Regen zu machen unter Direct3D9, und es hat auch keinen "MacheRegen()" Funktion. Von daher, was willst du hoeren? Und wieso kannst du diese Berechnung nicht aendern? Wenn das nicht geht, dann kannst du eben das Licht nicht so einstellen und musst es faken. f'`8k

    Autocogito

    Gruß, TGGC (Was Gamestar sagt...)



  • Zum Regen: Es gibt von ATI ne Rain Demo. Google einfach mal danach.

    Zum Shadow Mapping: Wennste nach Shadow Mapping googelst, findeste eigentlich genug Tutorials. PSSM brauchst du übrigens eher für größere Szenen. Für ne kleine Szene (einen Raum zb.) reicht durchaus Standard SM.



  • Nvidia hat auch ne Rain Demo: http://developer.download.nvidia.com/SDK/10/direct3d/samples.html#rain

    Sogar mit Whitepaper etc. Vielleicht steht da für dich was interessantes dabei.



  • Tobiking2 schrieb:

    Nvidia hat auch ne Rain Demo: http://developer.download.nvidia.com/SDK/10/direct3d/samples.html#rain

    Sogar mit Whitepaper etc. Vielleicht steht da für dich was interessantes dabei.

    Die meinte ich auch^^



  • Zum Aufhellen der Textur hätte ich noch eine Idee:
    Wie wärs, wenn du mit Multi-Texturing einfach eine dunkel- bis mittelgraue Textur über die Wand legst? (Verknüpfen natürlich durch Addition).

    Den Regen könnte man mit Sprites darstellen, wobei ich dann pro Tropfen ein Sprite verwenden würde.

    MfG, Jochen



  • Jochen S. schrieb:

    (Verknüpfen natürlich durch Addition).

    Er meinte ja, darauf haette er keinen Einfluss. f'`8k

    Autocogito

    Gruß, TGGC (Was Gamestar sagt...)



  • Naja.. Ich kann keine vorgebenen Berechnungen von directX ändern.. nur eben durch directX funktionen einfluss darauf nehmen.

    Hinzukommt, dass ich noch recht neu in DirectX bin.. Ich habe die SDK documentation tutorials für D3D9 absolviert, mich noch etwas zusätzlich über verschiedene Technicken und Typen informiert, aber das macht mich noch nicht zu einem Profi 😉

    Deswegen habe ich ja diesen Thread erstellt 🙂

    Das RainSample ist recht ansprechend und die documentation aufschlussreich. Der einzige mangel: Es ist nur für D3D10 und aufwärts zu gebrauchen 😕



  • Deathly Assassin schrieb:

    Es ist nur für D3D10 und aufwärts zu gebrauchen 😕

    Das Konzept sollte auf jede Grafik API übertragbar sein.



  • Das war meine allererste Antwort, und die hat ihm ja schon nicht gefallen... f'`8k

    Autocogito

    Gruß, TGGC (Was Gamestar sagt...)



  • TGGC schrieb:

    Jochen S. schrieb:

    (Verknüpfen natürlich durch Addition).

    Er meinte ja, darauf haette er keinen Einfluss.

    Worauf soll er keinen Einfluss haben? Mein Vorschlag war es nicht, das Licht zu der Textur hinzuzuaddieren, sondern mit Multi-Texturing zu arbeiten.

    Also:

    1. Normale Textur in die 0. Schicht
    2. Dunkel- bis mittelgraue Textur in die 1. Schicht.
    3. Blendoperatoren entsprechend einstellen.

    Das könnte dann etwa so aussehen:

    pD3DDevice->SetTexture(0,NormaleWandtextur);
    pD3DDevice->SetTexture(1,GraueTextur);
    pD3DDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
    pD3DDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);
    pD3DDevice->SetTextureStageState(1,D3DTSS_COLORARG1,D3DTA_CURRENT);
    pD3DDevice->SetTextureStageState(1,D3DTSS_COLORARG2,D3DTA_TEXTURE);
    pD3DDevice->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_ADD);
    

    Dabei natürlich auch noch mit dem Licht arbeiten, Mit dieser Methode kann man allerdings die Wand noch weiter aufhellen.

    MfG, Jochen



  • Jochen S. schrieb:

    Worauf soll er keinen Einfluss haben? Mein Vorschlag war es nicht, das Licht zu der Textur hinzuzuaddieren, sondern mit Multi-Texturing zu arbeiten.

    Darauf, wie die Farbe eines Pixel berechnet wird. Lies doch einfach. Steht oben. Fuer Licht waere deine Beispiel noch einfacher, denn das koennte man mit nur einer Texturestage berechnen. Ist doch egal ob er Licht oder eine zweite Textur addiert? f'`8k

    Autocogito

    Gruß, TGGC (Was Gamestar sagt...)



  • Vielen Dank für eure Mühe!
    Ich werde mich was den Blitz angeht an einer "umgekehrten" Art des Shadowmappings versuchen, die nicht nur alle pixel die sie nicht sieht verdunkelt, sondern auch alle sichtbaren pixel erhellt.
    Da sich der Aufwand des Regens anscheinend für das Ergebnis nicht lohnt, werde ich hier wohl einfach vor dem Kellerfenster etwas Gras platzieren, so dass man zwar den regen nicht sieht, aber durch den Blitz und den Sound eine Illusion davon bekommt. 🙂


Anmelden zum Antworten