ProfilProfil
 Registrieren
 Login
Bild der WocheBild der Woche

(von Backslider)
Kommentare (0)
****

Weitere
User onlineBenutzer online
Gäste online: 6
Mitglieder online: Keine
Registrierte Mitglieder: 2117
Neustes Mitglied: vitapen

SurfaceFormat.Vector2 + BlendState.Additive

Neue Antwort erstellen
 

 

Autor Nachricht
 
 
Der Gorch
Member


Anmeldedatum: 15.02.2010
Beiträge: 118
Wohnort: Irgendwo

Antworten mit Zitat
BeitragVerfasst am: 06.05.2012, 19:07    Titel: SurfaceFormat.Vector2 + BlendState.Additive

Moin,
ich arbeite gerade an einer Partikelsimulation und wollte die Berechnung der Abstoßungskräfte zueinander beschleunigen. Anstatt jedes Partikel-Paar auf Kräfte zu prüfen (wobei die Rechenzeit quadratisch zur Anzahl der Partikel steigt) wollte ich zunächst die "Kraftfelder" mit dem Spritebatch und mit BlendState.Additive in ein Render-Target rendern, und daraus dann die einzelnen Kräfte entnehmen. Das Problem: SurfaceFormat.Vector2 (genau wie SurfaceFormat.Single und Konsorten) vertragen sich nicht mit BlendState.Additive. Kann man das irgendwie umgehen?

MfG Georch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Bethsoftfan
Member


Anmeldedatum: 14.09.2008
Beiträge: 809

Antworten mit Zitat
BeitragVerfasst am: 06.05.2012, 19:26    Titel:

Hallo!

Du könntest ein Farb-Format wie Rg32 verwenden. Dann musst du das "Signing" aber selbst durchführen, also ist dann 0..0.5 = -1..0 und 0.5..1 = 0..1.
Außerdem musst du dann beim Filtern aufpassen, damit die Werte nicht miteinander verwaschen werden.

Bethsoftfan.
_________________
Der Bethsoftfanblog
..-> 3D Grundlagen in der XNA Spieleprogrammierung. <-..
Normalmapping + Parallax Occlusion Mapping
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen


Der Gorch
Member


Anmeldedatum: 15.02.2010
Beiträge: 118
Wohnort: Irgendwo

Antworten mit Zitat
BeitragVerfasst am: 06.05.2012, 20:37    Titel:

Ja, genau den Umweg wollte ich mir ersparen, das Problem sind dabei sehr niedrige und sehr hohe Werte, da brauche ich eine höhere Genauigkeit als 8 Bit. Die Lösung ist simpler als gedacht: SurfaceFormat.HdrBlendable. Ich dachte zuerst, das hätte keine Vorzeichen, hat es aber doch. Danke trotzdem.

EDIT: Sehe gerade, das du von 16-Bit-pro-Kanal-Formaten sprachst... Da ist das Problem der Genauigkeit natürlich nicht da. Bei dem Signing hat man Probleme mit dem Additive, da ich nicht weiss, wie viele Sprites hier übereinander gezeichnet wurden. Müsste man dan in 2 Durchgängen + und - Anteil berechnen.

EDIT2:Rg32 ist sogar signed. Hätte ich auch nehmen können *schäm*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden


Beiträge der letzten Zeit anzeigen:   
 
Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
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