Quelles sont les bonnes ressources pour apprendre le HLSL? [fermé]

28

La dernière fois que j'ai essayé d'apprendre HLSL, j'ai fait quelques shaders et j'ai surtout compris ce que je faisais, mais j'avais toujours l'impression de trébucher dans le noir. La plupart de ce que j'ai appris m'a été fourni par divers articles de blog qui n'expliquaient pas très bien les choses.

En outre, la documentation sur MSDN semble être davantage une référence de fonction.

Où puis-je apprendre à écrire non seulement HLSL, mais aussi à apprendre des techniques pour écrire des shaders?

Brian Ortiz
la source

Réponses:

14

Ces deux ont noté, je reviens constamment à l'article suivant presque chaque fois que j'écris un shader générique:

Sean James
la source
1
Et je dois préciser que par "référence API", je veux dire plus la section "Guide de programmation".
Sean James
6

Si ce que vous recherchez est une "technique de shader", plutôt qu'une simple référence de langage (lisez la question, les gens), je recommande (de facile à avancé):

  • La section Shader des échantillons XNA (nécessite évidemment que vous utilisiez XNA)
  • La série de tutoriels de Petri Wilhelmsen, commençant ici (devient plus avancée plus tard; est également basée sur XNA)
  • Les échantillons groupés du Nvidia FX Composer

Et fondamentalement, soit: Essayez des choses et pratiquez, tout en absorbant la façon dont les «pros» font les choses. Ou choisissez des choses qui sont similaires à ce que vous essayez d'atteindre et travaillez à partir de là.

Andrew Russell
la source
3

Cg n'est pas techniquement HLSL, mais syntaxiquement ils sont pratiquement identiques.

Cela dit, c'est un livre plus ancien, mais NVIDIA a rendu " The Cg Tutorial " gratuit à lire en ligne. Il couvre les bases du pipeline programmable d'une manière très complète, et tout cela devrait se traduire en HLSL avec un minimum d'effort.

Neverender
la source
1
nVidia et Microsoft ont co-écrit Cg / HLSL à l'époque. Ils lui ont donné des noms différents en raison de la marque, mais la langue est la même. Maintenant, il y a probablement une légère différence, mais c'est vraiment minime.
jacmoe
C'est un livre phénoménal. Fondamentalement, n'importe quoi de Kilgard était vraiment bon en termes de tutoriels.
bobobobo
3

Si vous souhaitez modifier et voir les résultats en temps réel, vous pouvez utiliser ce simple outil Silverlight

http://shazzam-tool.com/
Shazamm 1.3 - Éditeur et prévenu des HSLS Shaders


En ce qui concerne les tutoriels +1 pour Riemers.net, mais j'ai également trouvé cette série de tutoriels XNA / HLSL encore meilleure.

Voici la liste, vous les trouverez tous ici: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - Introduction à HSLS, lumière ambiante
  • 2 - Lumière diffuse
  • 3 - Lumière spéculaire
  • 4 - Cartographie normale
  • 5 - Déformer le vertex shader
  • 6 - Démo Shader: simple décor océan / île
  • 7 - Ombrage des toons
  • 8 - Carte brillante
  • 9 - Wiggle post process
  • 10 - Inverser le post-processus
  • 11 - Shader en niveaux de gris
  • 12 - Shader de distorsion de pixels
  • 13 - Cartographie alpha
  • 14 - Tampons de transmission / profondeur
  • 15 - Cartographie de l'environnement dynamique
  • 16 - Réfraction
  • 17 - Lumière ponctuelle + auto-ombrage
  • 18 - Lumières à points multiples
  • 19 - Lumière ambiante hémisphérique
  • 20 - Profondeur de champ
  • 21 - Transition: fondu
  • 22 - Transition: Cross
  • 23 - Flou
  • 24 - Bloom
  • 25 - Perlin Noise sur le GPU
  • 26 - Bump Mapping Perlin Noise
Manger chez Joes
la source
1

J'ai trouvé que Riemers.net avait un très bon tutoriel d'introduction sur HLSL dans le cadre de ses tutoriels XNA. L'auteur, Riemer Grootjans, a également écrit le livre recommandable XNA 3.0 Game Programming Recipes - si vous aimez l'approche des recettes.

Dave O.
la source
0

J'ai trouvé une série de tutoriels qui vont d'un shader de lumière ambiante de base aux réflexions et aux shaders toon. Chacun passe par et explique chaque ligne et explique même un peu les mathématiques:

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

Brian Ortiz
la source
0

Je ne sais pas quel modèle de shader et quelle version DirectX vous ciblez, mais je recommande fortement le rendu et le calcul pratiques avec Direct3D11 . Le livre vous guide à travers tous les détails de DirectX11, ses ressources, tous les différents shaders de pipeline, HLSL (un chapitre entier consacré à cela), et comment commencer à implémenter des choses comme les simulations de systèmes de particules, la tessellation, le traitement d'image, le rendu différé et DirectCompute!

KlashnikovKid
la source
-1

pour moi, c'est plus facile d'apprendre GLSL d'abord, et puisque HLSL et GLSL sont similaires. une fois que vous avez compris tout le concept, le pipeline, le matériel et le fonctionnement du langage de shader interne, il vous est facile d'utiliser un autre langage tel que HLSL ou même Cg.

Je propose GLSL car il a un très bon livre comme le livre orange et rouge d'OpenGL et c'est facile à apprendre pour les débutants.

uray
la source
1
Cela ne répond pas à la question.
PhillC
Ce n'est pas une mauvaise réponse cependant - une grande partie de ce qui sous-tend GLSL est très similaire à HLSL et si l'OP peut trouver des ressources pour GLSL, alors il est valide de les utiliser. De nombreuses différences majeures entre le code du shader lui-même ne sont qu'une question de conversion mentale une fois que vous savez ce que vous regardez. L'idée d'apprendre GLSL échoue d'abord parce qu'il faudrait aussi apprendre OpenGL (pas mal en soi; utile de connaître les deux) et réécrire son programme (mauvais), mais il n'y a absolument rien de mal à utiliser du matériel GLSL pour compléter son apprentissage HLSL (et vice-versa, le cas échéant).
Maximus Minimus