Was sind einige gute Ressourcen zum Erlernen von HLSL? [geschlossen]

28

Als ich das letzte Mal versuchte, HLSL zu lernen, machte ich ein paar Shader und verstand größtenteils, was ich tat, aber ich hatte immer noch das Gefühl, im Dunkeln zu stolpern. Das meiste, was ich gelernt habe, habe ich aus verschiedenen Blog-Posts erhalten, die die Dinge nicht sehr gut erklärten.

Außerdem scheint die Dokumentation zu MSDN eher eine Funktionsreferenz zu sein.

Wo kann ich lernen, nicht nur HLSL zu schreiben, sondern auch Techniken zum Schreiben von Shadern zu erlernen?

Brian Ortiz
quelle

Antworten:

14

Diese beiden haben festgestellt, dass ich fast jedes Mal, wenn ich einen generischen Shader schreibe, auf den folgenden Artikel zurückkomme:

Sean James
quelle
1
Und ich sollte angeben, dass mit "API-Referenz" mehr der Abschnitt "Programmieranleitung" gemeint ist.
Sean James
6

Wenn Sie nach "Shader-Technik" suchen und nicht nur eine Sprachreferenz (lesen Sie die Frage, Leute), empfehle ich (von einfach bis fortgeschritten):

  • Der Shader-Bereich der XNA-Samples (erfordert natürlich die Verwendung von XNA)
  • Die Tutorial - Serie von Petri Wilhelmsen, beginnend hier (wird später weiter fortgeschritten, wird auch XNA basiert)
  • Die gebündelten Samples des Nvidia FX Composer

Und im Grunde genommen auch: Probieren Sie es aus und üben Sie, während Sie gleichzeitig lernen, wie die "Profis" Dinge tun. Oder wählen Sie Dinge aus, die denen ähneln, die Sie erreichen möchten, und arbeiten Sie von dort aus.

Andrew Russell
quelle
3

CG ist technisch nicht HLSL, aber syntaktisch sind sie praktisch identisch.

Abgesehen davon ist es ein älteres Buch, aber NVIDIA hat " The Cg Tutorial " zum Online-Lesen freigegeben. Es behandelt die Grundlagen der programmierbaren Pipeline auf sehr umfassende Weise und sollte mit minimalem Aufwand in HLSL übersetzt werden.

Neverender
quelle
1
nVidia und Microsoft haben damals Cg / HLSL gemeinsam verfasst. Sie gaben ihm unterschiedliche Namen aufgrund des Brandings, aber die Sprache ist dieselbe. Jetzt gibt es wahrscheinlich einen kleinen Unterschied, aber es ist wirklich minimal.
Jacmoe
Das ist ein phänomenales Buch. Grundsätzlich war alles von Kilgard in Bezug auf Tutorials wirklich gut.
Bobobobo
3

Wenn Sie die Ergebnisse in Echtzeit bearbeiten und anzeigen möchten, können Sie dieses einfache Silverlight-Tool verwenden

http://shazzam-tool.com/
Shazamm 1.3 - Editor & Previwer von HSLS Shaders


Was Tutorials +1 für Riemers.net betrifft, habe ich diese Serie von XNA / HLSL-Tutorials sogar noch besser gefunden.

Hier ist die Liste, Sie finden sie alle hier: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - Einführung in HSLS, Umgebungslicht
  • 2 - Streulicht
  • 3 - Spiegellicht
  • 4 - Normales Mapping
  • 5 - Vertex-Shader verformen
  • 6 - Shader-Demo: Einfache Ozean- / Insellandschaft
  • 7 - Toon-Shading
  • 8 - Glanzkarte
  • 9 - Nachbearbeitung wackeln
  • 10 - Nachbearbeitung umkehren
  • 11 - Graustufenshader
  • 12 - Pixel Distortion Shader
  • 13 - Alpha-Zuordnung
  • 14 - Transmissions- / Tiefenpuffer
  • 15 - Dynamische Umgebungszuordnung
  • 16 - Brechung
  • 17 - Punktlicht + Selbstbeschattung
  • 18 - Mehrpunktleuchten
  • 19 - Hemisphärisches Umgebungslicht
  • 20 - Schärfentiefe
  • 21 - Übergang: Verblassen
  • 22 - Übergang: Kreuz
  • 23 - Unschärfe
  • 24 - Blüte
  • 25 - Perlin-Rauschen auf der GPU
  • 26 - Bump Mapping Perlin-Rauschen
Bei Joes essen
quelle
1

Ich fand, dass Riemers.net ein sehr gutes Einführungs-Tutorial zu HLSL als Teil seiner XNA-Tutorials hat. Der Autor Riemer Grootjans hat auch das empfehlenswerte Buch XNA 3.0 Game Programming Recipes geschrieben - wenn Sie den Rezeptansatz mögen.

Dave O.
quelle
0

Als ich über HLSL las, fand ich dieses Tutorial damals. Ich mochte es, da es versuchte, jeden Teil dessen zu erklären, was es tat.

Ólafur Waage
quelle
0

Ich habe eine Reihe von Tutorials gefunden, die von einem einfachen Umgebungslicht-Shader bis hin zu Reflexionen und Toon-Shadern reichen. Jeder geht durch und erklärt jede Zeile und erklärt sogar ein bisschen Mathe:

http://rbwhitaker.wikidot.com/hlsl-tutorials

Brian Ortiz
quelle
0

Ich bin mir nicht sicher, auf welches Shader-Modell und welche DirectX-Version Sie abzielen, empfehle jedoch das praktische Rendern und Berechnen mit Direct3D11 . Das Buch führt Sie durch alle wichtigen Details von DirectX11, seine Ressourcen, die verschiedenen Pipeline-Shader, HLSL (ein ganzes Kapitel, das diesem Thema gewidmet ist) und wie Sie mit der Implementierung von Dingen wie Partikelsystemsimulationen, Tessellierung, Bildverarbeitung und verzögertem Rendern beginnen und DirectCompute!

KlashnikovKid
quelle
-1

Für mich ist es einfacher, zuerst GLSL zu lernen, und da HLSL und GLSL ähnlich sind. Sobald Sie das gesamte Konzept, die Pipeline, die Hardware und die Funktionsweise der Inner-Shader-Sprache verstanden haben, können Sie problemlos eine andere Sprache wie HLSL oder sogar Cg verwenden.

Ich schlage GLSL vor, weil es ein sehr gutes Buch wie das orange-rote von openGL hat und für Anfänger leicht zu erlernen ist.

uray
quelle
1
Dies beantwortet die Frage nicht.
PhillC
Es ist jedoch keine schlechte Antwort - vieles, was GLSL zugrunde liegt, ist HLSL sehr ähnlich, und wenn das OP Ressourcen für GLSL finden kann, ist es gültig, diese zu nutzen. Viele der Hauptunterschiede zwischen dem Shader-Code selbst sind nur eine Frage der mentalen Umwandlung, sobald Sie wissen, was Sie sehen. Die Idee, GLSL zu lernen, scheitert zunächst, weil man auch OpenGL lernen (an sich nicht schlecht; nützlich, um beide zu kennen) und sein Programm neu schreiben (schlecht) müsste, aber es ist absolut nichts Falsches daran, GLSL-Material zu verwenden, um sein HLSL-Lernen zu ergänzen (und gegebenenfalls umgekehrt).
Maximus Minimus