DGL
https://delphigl.com/forum/

Macht es Sinn GLSL zum Numbercrunchen zu verwenden?
https://delphigl.com/forum/viewtopic.php?f=20&t=3497
Seite 1 von 1

Autor:  Linuxhippy [ Sa Nov 20, 2004 18:51 ]
Betreff des Beitrags:  Macht es Sinn GLSL zum Numbercrunchen zu verwenden?

Nabend,

bin gerade dabei eine relativ komplexe Voxel-Engine zu schreiben, stehe jedoch vor dem Problem, dass heutige CPUs einfach zu langsam zu sein scheinen. Ich habe jetzt schon einen Monat lang mit inline-assembler und SSE herumgeschlagen, aber besonders die Filter drücken in Software enorm an der Performance :-(

Da man mit GLSL ja die Grafikkarte programmieren kann, hätte ich die Idee einfach deren Funktionen zu nutzen, um die Daten die das Shader-Programm könnte man dynamisch-gerenderte texturen verwenden.

D.h. was ich eigentlich machen will ist folgendes:
Scene-Daten -> Texturen (gibts einen besseren Weg mit dem Shader-Programm zu kommunizieren)
Texturen -> Number crunching -> Screen

Da es so aussieht als ob die Grafikkarten relativ viele High-Level maths sachen können (Vectoren und so..) scheinen die neuen grakas bestens geeignet zum berechnen der scenen.
Arbeitsteilung wäre natürlich der Hammer, hälfte CPU, hälfte GPU ;-)

Würde dies Funktionieren ("Shareder Model 3" Karten only), ich hab leider derzeit noch sehr wenig praktische Erfahrung Shadern und nur ein paar wenige theorethische Tutorials gelsenen.

Sorry ich weiß das ganze klingt sehr nach newbie, aber wer fängt nicht von vorne an :-(

Mfg Clemens

PS: Eine grundsatzfrage zu shadern hätte ich noch. Anhand der beispiele konnte ich entnehmen, dass anscheinend das shader-programm nur für einen sehr kleinen Teil einer textur angewendet wird.
Läuft die main() vom shader für jeden Pixel einer Textur oder für jeden Pixel am Bildschirm?

Autor:  Mars [ Sa Nov 20, 2004 23:28 ]
Betreff des Beitrags: 

Zitat:
Läuft die main() vom shader für jeden Pixel einer Textur oder für jeden Pixel am Bildschirm?

Für jedes gerenderte Fragment, das wahlweise ein Pixel am Bildschirm, aber auch (mittel RTT oder einem folgenden glCopyTex(Sub)Image2D) einer Textur sein kann.

Autor:  noeska [ So Nov 21, 2004 10:36 ]
Betreff des Beitrags: 

You should be able to use that, i even know people using it for processing sound data.

Autor:  Linuxhippy [ So Nov 21, 2004 11:19 ]
Betreff des Beitrags:  Hört sich gut an!

Hmm, hört sich wirklich gut an - Danke für eure Hilfe!
Werd mich gleich einarbeiten, mal sehen was es bringt...

Ein paar Fragen häte ich allerdings noch, dann geb ich ruhe ;-) :

* Gibt es eine einfache möglichkeit zwischen den shader-programmen auf einen gemeinsamen Datensatz zuzugreifen.
Also z.B. ein großes Vector[]?
Natürlich könnte man das mit Texturen machen, aber ich schätze mal da ist der Overhead doch relativ groß, oder?

* Was ist der Unterschied zwischen Vertex und Pixelshadern. Ich hab mir euer Tutorial angesehen, aber der wirkliche Unterschied wird mir nicht ganz klar :-(. Kann man beide zur gleichen Zeit nutzen, oder teilen sich die chip-funktionen und werden hintereinander ausgeführt?

Danke vielmals für eure Hilfe, mfg Clemens

Autor:  noeska [ So Nov 21, 2004 12:14 ]
Betreff des Beitrags: 

here is a site you should take a look at: http://www.gpgpu.org/

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/