DGL https://delphigl.com/forum/ |
|
Rückgabe vom Shader https://delphigl.com/forum/viewtopic.php?f=20&t=8663 |
Seite 1 von 1 |
Autor: | Seth [ Fr Sep 04, 2009 16:21 ] |
Betreff des Beitrags: | Rückgabe vom Shader |
Hallo, Es ist ja bekanntermaßen möglich Shader auch für anderen Berechnungen zu "missbrauchen". Ich dachte da gerade zum Beispiel an die Durchführung von Kollisionserkennungen. Wenn ich nun einen Shader hab, der mir beispielsweise die Kollision von Kugel und Strahl berechnet, muss ich ja irgendwie wieder zurückgeben können, ob eine Kollision erfolgt ist. Die einzige Möglichkeit, die mir hierfür einfällt, wäre in eine Textur zu rendern und die Ergebnisse in die Pixel zu kodieren und dann wieder auszulesen. Gibt es noch andere? Lohnen sich 1x1 Texturen oder wie stellt man das geschickt an? mfg |
Autor: | Coolcat [ Fr Sep 04, 2009 17:57 ] |
Betreff des Beitrags: | |
Möglichkeiten sind: 1. CUDA benutzen ![]() 2. wie schon gesagt: in eine Textur rendern 3. Transform-Feedback (quasi: "in einen VBO rendern") Ob 1x1 Texturen sinnvoll sind kann man nicht so leicht sagen. Bei nur einem Pixel wird auch der Fragmentshader nur einmal aufgerufen. Folglich bringt dir die parallele GPU nicht viel. Wenn du mehrere Pixel/Fragmente übereinander renderst bekommst du auch Probleme, weil alle Pixel an die gleiche Speicherstelle geschrieben werden, was natürlich nicht gleichzeitig geht. Vermutlich willst du aber nicht nur eine Kugel und einen Strahl testen sondern ein paar tausend, oder mehr. Jetzt könnte man z.B. in eine 128x128 Textur rendern, jeder Pixel steht dabei für das Ergebnis eines Tests. Ob es sinnvoll ist ständig eine 128x128 Textur hin und her zu schieben musst du selbst wissen. Man kann ja auch Ergebnisse zusammenfassen: Eine Grafikkarte kann, wenn MipMaps existieren, extrem schnell Texturen vergrößern/verkleinern! |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |