OpenGL ES 2.0: Repository für Qualitäts-Shader [geschlossen]

10

Könnte ich Sie bitte bitten, mir ein Repository mit hochwertigen OpenGL (OpenGL ES 2.0) Vertex- und Fragment-Shadern vorzuschlagen?

Ich suche nach pixelbasierten Ligting-Shadern (wie Phong ) und Simmilar. Es wäre schön, mehr von ihnen zu sehen, um zwischen Qualität und Shader-Leistung wählen zu können.

Bunkai.Satori
quelle

Antworten:

16

Shader jeglicher Komplexität können im Allgemeinen nicht wie austauschbare Zahnräder heruntergeladen und in Ihr Projekt eingefügt werden. In der Regel erfordern die interessanteren Effekte eine angemessene Kopplung an das CPU-seitige Rendering-Subsystem, um ihre Ergebnisse zu erzielen. Gleiches gilt im Allgemeinen für die Leistung - Leistungskompromisse in Bezug auf Genauigkeit und Qualität gegenüber der Anzahl der Anweisungen oder dem Pipelining beruhen in der Regel auf anwendungsspezifischen Anforderungen.

Infolgedessen steht der Art der Repositories, an die Sie denken, nicht viel im Wege. Die GPU Gems-Bücher bieten eine gute Sammlung von Beschreibungen von Techniken im Stil eines Kochbuchs mit Spiel- und schattierten Codebeispielen, die Sie sich vielleicht ansehen möchten. So auch die Shader X-Bücher.


quelle
+1 für sehr wertvollen Kommentar. Hallo Josh. Vielen Dank für Ihre Antwort. Nun, wenn sich eine Person am Anfang der Shader-Entwicklung befindet, wäre es wirklich hilfreich zu sehen, wie einige Standard-Shader implementiert sind: Zum Beispiel, wie Phong (ein sehr Standard-Algorithmus) ausgeführt wird, Pixel-Lighting-Shader usw. Ich verstehe Ihre Punkt, und die Quellen, die Sie zur Verfügung gestellt haben, klingen als gutes Material. Ich werde sie mir ansehen. Bisher sind die besten Ressourcen, die ich gefunden habe, das OpenGL Shading Language-Buch und die Lighthouse 3D-Site.
Bunkai.Satori
2
Ich würde daher immer noch Repositories von qualitativ hochwertigen Shadern begrüßen , die die Entwicklung interessanter Effekte veranschaulichen. Die Skripte können als Grundlage verwendet werden, um sie zu kombinieren und neue attraktive Effekte zu erzielen.
Bunkai.Satori
@Bunkai Satori Ich denke, Josh meinte das als Grund dafür, dass diese Art von Repositories meistens nicht existieren.
Die kommunistische Ente
@ The Communist Duck: Hallo, danke für deinen Kommentar. Ich verstehe das. Ich bin dankbar für jede Antwort hier und für Joshs auch. Was mir jedoch in den Sinn kam, ist, dass das Internet so groß ist, dass sich vielleicht jemand anders als Josh daran erinnert, einige Orte gesehen zu haben, an denen man sich von bestimmten Shadern inspirieren lässt. Ich kann mir vorstellen, dass eine Firma / Einzelperson, die häufig Shader verwendet, diese sammelt und einige von ihnen sie möglicherweise auch veröffentlichen. Joshs Antwort ist sowieso mein Kandidat für die akzeptierte Antwort. Wenn also niemand in Kürze einen Beitrag leistet, werde ich diesen Thread schließen und seine Antwort markieren.
Bunkai.Satori
13

Nicht viel, aber zumindest ein paar grundlegende Shader für den Einstieg finden Sie auch zwischen meinen Open Sorce Engines-Dateien:

Die .vsh-Dateien enthalten die Vertex-Shader und die .fsh-Dateien die Fragment-Shader, aber ich denke, das ist selbsterklärend ...

Auf der aktuellen mobilen Hardware sollten Sie so viel wie möglich im Vertex-Shader tun. Der Trick für großartig aussehende und schnelle Spiele besteht darin, viele sehr spezialisierte Shader zu schreiben, die immer genau das tun, was erforderlich ist, damit etwas so aussieht, wie es soll. Zumindest ist das meine Erfahrung mit meinem iPhone 3GS, das dieselbe GPU wie das iPhone 4 bietet, aber weniger Pixel hat, für die Daten geliefert werden müssen. Dies ist höchstwahrscheinlich bereits viel besser mit Tegra 2 und noch besser mit Äpfeln A5-Chip, aber im Moment bedeutet dies, dass Sie nicht versuchen sollten, Shader für Desktop-GPUS auf Mobiltelefone zu portieren und eine großartige Leistung zu erwarten: P Dies bedeutet auch, dass Vollbild Effekte, insbesondere bei Geräten mit hochauflösendem Display, sind in der Regel langsam.

Hoffe das hilft auch ein bisschen :).

Slin
quelle
Hallo, willkommen bei der GDSE. Gute Antwort!
Notabene
+1 für eine gute Antwort. Hallo Slin, und willkommen bei GDSE. Vielen Dank für diese gute Antwort und für das Beispielmaterial. Ich bin froh, dass Sie Ihre Erfahrungen mit Shadern geteilt haben, die für mobile Plattformen programmieren. In diesem Moment mache ich die gesamte Entwicklung auf dem PC und plane, später zu portieren. So wird Ihre Erfahrung dann geschätzt.
Bunkai.Satori
9

könnte etwas von dem arkanen Wissen von hier entreißen http://glslsandbox.com/

UlanB
quelle
Hallo UlanB. Diese Sammlung sieht gut aus. Können Sie mir bitte sagen, wie ich diese Shader herunterladen kann? Ich erhalte die Fehlermeldung "WebGL wird nicht unterstützt", wenn ich versuche, eine der Shader-Sammlungen in Chrome zu öffnen. Vielen Dank.
Vinodtiru
Es tut mir leid, ich kann Ihnen keinen technischen Support zur Webgl-Kompatibilität geben. Wahrscheinlich Ihre Hardware, die Webgl nicht unterstützt. Auch Linux Chrome Builds unterstützen es noch nicht.
UlanB
4

Als ich nach der Implementierung von Nebel unter OpenGL ES 2.0 gesucht habe, habe ich einen Link zur abwärtskompatiblen Projektimplementierungsfunktion von OpenGL ES 2.0 gefunden , die nicht in OpenGL ES 2.0 enthalten ist, z. B. Nebel pro Scheitelpunkt pro Fragment (Pixel). Sie können direkt in die Shader-Quelle schauen .

Ich habe auch die Beleuchtung pro Fragment implementiert und dieses von ClockworkCoders (nicht OpenGL ES 2.0) erstellte Beispiel geändert .

Sie können sich auch diese großartigen Tutorials von lighthouse3D ansehen

Martin Pilch
quelle
+1 für einen guten Kommentar. Hallo Martin, danke für deine Links. Ja, ich habe Lighthouse3D gefunden und es sieht nach einer hochwertigen Ressource aus.
Bunkai.Satori
1

Das AMD RenderMonkey-Paket enthält unter den Beispieldateien sehr erweiterte Shader für OpenGL ES 2.0.

Schauen Sie sich insbesondere das Renderman-Shader-Beispiel im GLES-Beispielverzeichnis an, das einen mehr oder weniger nackten OpenGL ES 2.0-Shader bietet, der als guter Ausgangspunkt dienen könnte. Vielleicht geben Sie auch eine gute Vorstellung davon, warum es nicht viele Beispiele für gute Shader zum Ausschneiden und Einfügen gibt. Das Grundproblem: Die Shader sind eng mit der OpenGL ES-Serverkonfiguration und den darauf gerenderten Modellen verbunden. Immer noch. Der Renderman-Shader ist ein ausgezeichneter Ausgangspunkt, wenn Sie ihn mit dem REnderMonkey-Tool lösen können.

rerdavies
quelle
1

Schauen Sie sich GPUImage ( https://github.com/BradLarson/GPUImage ) an, die wahrscheinlich vollständigste Sammlung von Shadern, die ich bisher im Web gefunden habe. Da sie alle für die Arbeit mit GPUImage ausgelegt sind, haben sie alle dieselbe Struktur. Wenn Sie also dieselbe Struktur in Ihrer Anwendung / Ihrem Spiel anpassen, sollten Sie in der Lage sein, schnell eine Reihe verschiedener Effekte zu importieren.

Prost!

ekscrypto
quelle