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?
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.
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?
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.