Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 31.07.2004, 17:46 Titel: Problem mit Alphablending - DirectX 8 |
|
|
Tach,
Ich will mit Hilfe von Alphablending Wasser machen. An sich klappt das Alpablending schon gut. Aber offensichtlich werden auch die transparenten Pixel in den ZBuffer eingetragen. Das hat zur Folge, dass die Pixel zwar transparent sind aber nichts mehr hinter ihnen zu sehen ist.
Hat irgendjemand eine Ahnung wie ich verhindern kann, dass transparente Pixel in den ZBuffer eingetragen werden
Für eine schnelle Antwort wäre ich dankbar, weil ich morgen für 2 Wochen wegfahre.
MfG Dr. Best. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 31.07.2004, 18:47 Titel: |
|
|
lpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
fürs vollständige deaktivieren der schreibbefehle
eine andere Möglichkeit wäre es die Renderreihenfolge so zu manipulieren das von hinten nach vorne gerendert wird. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 31.07.2004, 19:42 Titel: |
|
|
thx.
Beide Vorschläge zusammen ham mich als ich noch ne Weile drüber nachgedacht hab auf eine Idee gebracht.
Mit der Renderreihenfolge das war mir zu aufwendig. Also habe ich erst alle Objekte rendern lassen die nicht transparent sind.
Dann habe ich mit
lpD3DDevice->SetRenderState( D3DRS_ZWRITEENABLE, false);
das schreiben in den ZBuffer ausgestellt. Und dann habe ich alle transparenten Objekte rendern lassen. Klappt super. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 31.07.2004, 21:04 Titel: |
|
|
So hast du aber Darstellungsfehler wenn nach dem rendern des Wassers oder ähnlichem Objekte hinter diesem Objekt gerndert werden, diese werden durch die fehlende Alphakoomponente nicht mehr beeinflusst. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 31.07.2004, 21:11 Titel: |
|
|
Ja, du solltest schon sortieren. |
|
Nach oben |
|
|
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 13.08.2004, 21:27 Titel: |
|
|
War in Ferien deswegen Antworte ich erst jetzt.
Ich weiß nicht ganz was ihr meint. Aber das einzige Problem das mir aufgefallen ist, ist dass wenn verschieden transparente Objekte voreinander sind das falsche in den Vordergrund kommen kann. Doch da das eh kaum der Fall sein wird und nicht so dramatisch ist mach ich mir deswegen nicht die Arbeit die Renderreihenfolge zu manipulieren. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 30.08.2004, 01:07 Titel: |
|
|
Wie sieht in etwa so ein Sortieralgorithmus dafür aus? _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
Dr. Best Senior JLI'ler
Alter: 34 Anmeldedatum: 17.06.2004 Beiträge: 269 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 30.08.2004, 17:11 Titel: |
|
|
Hm,
Erstmal müsste man für jedes Objekt die Distanz ermitteln (distanz=sqrt((camera.x-x)^2+(camera.y-y)^2)). Dann würde ich immer wieder alle werte durchgehen (in einer for schleife) und jeweils das höchste darstellen so lang bis alle gerendert sind. Ist ziemlich aufwendig. _________________
Ich bin da, wer noch? |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 30.08.2004, 19:05 Titel: |
|
|
Es dürfte auch ausreichen nur die Objekte zu sortieren die was mit nem Alpha zu tun haben.
Sortieralgo: Quicksort, gibt aber noch schnellere nur fällt mi dazu der Name nicht ein. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
|