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?

Antworten:


14

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


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.


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.


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






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!



-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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.