JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Textur transparent
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 16.12.2006, 19:27    Titel: Antworten mit Zitat

Es wurde doch von Materialien geredet, damit sollte es ebenso möglich sein. Shader wären aber die bessere Möglichkeit.
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Otscho
Super JLI'ler


Alter: 35
Anmeldedatum: 31.08.2006
Beiträge: 338
Wohnort: Gummibären-Gasse
Medaillen: Keine

BeitragVerfasst am: 04.01.2007, 13:15    Titel: Antworten mit Zitat

Sorry, dass ich euch schon wieder damit stöhr, aber ich hab da immer noch ein Problem:
Und zwar wenn ich eine teilweiß tansparente Textur rendere, dann belegen auch die Pixel die sich aufgrund der Tansparenz nicht verändert haben einen Eintrag im Z-Buffer. Das ist deswegen so nervig, da dann sachen, die z.B hinter einer Glasfläche sind (also gesehen werden sollen) nicht mehr dar gestellt werden.
Meine Frage : Gibt es eine Möglichkeit der Graka mitzuteilen nur da einen Z-Buffer-Eintrag zu machen wo auch wirklich der Back-Buffer verändert wurde?
Falls es soetwas nicht geben sollte kennt dann einer vielleicht eine leistungsstarke Quicksort-Methode mit der man die tansparenten Objekte nach ihrer Entfernung zur "Kamera" sortieren kann ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 04.01.2007, 13:26    Titel: Antworten mit Zitat

Es gibt RenderStates mit denen du das schreiben auf den ZBuffer unterbinden kannst, auch gibt es RenderStates zum festlegen wie der ZBufferTest erfolgen soll. Einfach mal die DX Docu ansehen.

Zitat:
Gibt es eine Möglichkeit der Graka mitzuteilen nur da einen Z-Buffer-Eintrag zu machen wo auch wirklich der Back-Buffer verändert wurde?


Meinst du das so dass meine Lösung von oben nichts bringt? Wenn ja dann versuche es so:

Du renderst deine Objekte welche Transparent sein können 2x

1x ohne ZBuffer zu beschreiben
und
1x mit ZBuffer beschreiben allerdings nur dann wenn die Stelle welche gerendert werden soll nicht Transparent ist (Alpa 100%), das kannst du mit Alphatesting (auch als RenderState verfügbar) erreichen, indem du den AlphaReferenzwert so setzt das nur auf Opaque Pixel reagiert werden soll und die AlphaTestMethode so setzt das nur die Pixel gerendert werden welche einen AlphaWert >= den AlphaReferenzwert besitzen.

Das ist nur eine spontane Idee könnte aber unter umständen eine gute Lösung sein.
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Otscho
Super JLI'ler


Alter: 35
Anmeldedatum: 31.08.2006
Beiträge: 338
Wohnort: Gummibären-Gasse
Medaillen: Keine

BeitragVerfasst am: 04.01.2007, 19:03    Titel: Antworten mit Zitat

[quote = Fallen]1x ohne ZBuffer zu beschreiben [/quote]
Dann Rendert er die Textur doch immer, auch wenn sie eigentlich von einer anderen Textur verdeckt ist.
Das Problem bei mir ist, dass Grassbüschel rendere, die jeweils nur aus einer Textur bestehen. Die hinteren Grassbüschel werden dann aber nicht mehr gerendert, wegen dem Z-Buffer-Eintrag. Das sieht sehr komisch aus.(Um nicht zu sagen Sche***).
Kannst du das nochmal genauer erklären mit dem "Alphatesting". Vielleicht hübsch verziehrt mit Code-Beispielen ?? Laughing
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 04.01.2007, 20:21    Titel: Antworten mit Zitat

Dann sollte doch das hier die Lösung für dich sein:

Zitat:
Es gibt RenderStates mit denen du das schreiben auf den ZBuffer unterbinden kannst, auch gibt es RenderStates zum festlegen wie der ZBufferTest erfolgen soll. Einfach mal die DX Docu ansehen.


Wenn du wenn du dein gras renderst nicht in den ZBuffer schreibst solltest du damit auch keine Probleme haben bis auf einige hässliche Grafikfehler wenn du dein Gras nicht von hinten nach vorne renderst.

Zu der anderen Sache müsstest du einfach mal die Suchfunktion benutzten, es sollten da einige Beispiele zu finden sein.
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 04.01.2007, 22:59    Titel: Antworten mit Zitat

Ja, du musst auf jeden Fall alles was transparent ist manuell sortieren. Ohne das kann es immer Grafikfehler geben.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
51m0n
JLI'ler


Alter: 32
Anmeldedatum: 06.01.2006
Beiträge: 167
Wohnort: Erkelenz
Medaillen: Keine

BeitragVerfasst am: 05.01.2007, 03:37    Titel: Antworten mit Zitat

In diesem Fall würde es doch reichen, immer nur die Pixel in den ZBuffer zu schreiben die auch 100% sichtbar sind. (wie Fallen schon sagte)
Das machst du mit den folgenden Renderstates:
Code:
D3DDevice->SetRenderState(D3DRS_ALPHATESTENABLE, true);
D3DDevice->SetRenderState(D3DRS_ALPHAREF, 0xFF);
D3DDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);

Das Renderstate ALPHAREF gibt an, wie hoch der Alphawert mindestens sein muss, damit er in den ZBuffer eingetragen wird. Musst damit mal ein bischen herumprobieren. Wenn du das ganze nur für die Grabüschel setzt müsste das eigentlich noch ganz OK aussehen.
Wenn nicht, dann wirst du wohl um ein selber sortieren nicht drumherumkommen.

MfG 51m0n
_________________
Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Otscho
Super JLI'ler


Alter: 35
Anmeldedatum: 31.08.2006
Beiträge: 338
Wohnort: Gummibären-Gasse
Medaillen: Keine

BeitragVerfasst am: 07.01.2007, 17:56    Titel: Antworten mit Zitat

Danke 51m0n.
Genau das hab ich gesucht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum