Jakie są dobre zasoby do nauki HLSL? [Zamknięte]


28

Ostatnim razem, gdy próbowałem nauczyć się HLSL, zrobiłem kilka shaderów i głównie rozumiałem, co robię, ale nadal czułem się, jakbym się potykał w ciemności. Większość tego, czego się nauczyłem, pochodzi z różnych postów na blogu, które nie wyjaśniały dobrze rzeczy.

Ponadto dokumentacja MSDN wydaje się być bardziej odniesieniem do funkcji.

Gdzie mogę nauczyć się nie tylko pisać HLSL, ale także nauczyć się technik pisania shaderów?

Odpowiedzi:


14

Ci dwaj zauważyli, że za każdym razem, gdy piszę ogólny shader, konsekwentnie wracam do następującego artykułu:


1
I powinienem sprecyzować, że przez „odwołanie do API” mam na myśli bardziej sekcję „Przewodnik po programowaniu”.
Sean James,

6

Jeśli szukasz „techniki cieniowania”, a nie tylko odniesienia do języka (przeczytaj pytanie, ludzie), polecam (od łatwego do zaawansowanego):

  • Sekcja Shader próbek XNA (oczywiście wymaga użycia XNA)
  • Seria samouczków autorstwa Petri Wilhelmsen, zaczynająca się tutaj (później staje się bardziej zaawansowana; jest również oparta na XNA)
  • Kompozytor Nvidia FX „s dołączonych próbek

I w gruncie rzeczy albo: wypróbuj i przećwicz wszystko, jednocześnie absorbując sposób, w jaki robią to „profesjonaliści”. Lub wybierz i wybierz rzeczy, które są podobne do tego, co próbujesz osiągnąć i stamtąd.


3

Cg nie jest technicznie HLSL, ale pod względem składniowym są one praktycznie identyczne.

Powiedziawszy to, jest to starsza książka, ale NVIDIA udostępniła „ The Cg Tutorial ” za darmo do czytania online. Obejmuje on podstawy programowalnego potoku w bardzo kompleksowy sposób i wszystko powinno przełożyć się na HLSL przy minimalnym wysiłku.


1
nVidia i Microsoft współautorami Cg / HLSL w ciągu dnia. Nadali mu różne nazwy ze względu na branding, ale język jest taki sam. Prawdopodobnie jest niewielka różnica, ale jest naprawdę minimalna.
jacmoe

To jest fenomenalna książka. Zasadniczo wszystko autorstwa Kilgarda było naprawdę dobre pod względem tutoriali.
bobobobo

3

Jeśli chcesz edytować i wyświetlać wyniki w czasie rzeczywistym, możesz użyć tego prostego narzędzia Silverlight

http://shazzam-tool.com/
Shazamm 1.3 - Redaktor i prezenter HSLS Shaders


Jeśli chodzi o samouczki +1 dla Riemers.net, to również ta seria samouczków XNA / HLSL była jeszcze lepsza.

Oto lista, znajdziesz je wszystkie tutaj: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - Wprowadzenie do HSLS, oświetlenie otoczenia
  • 2 - Rozproszone światło
  • 3 - Światło zwierciadlane
  • 4 - Normalne mapowanie
  • 5 - Zdeformowany moduł cieniujący wierzchołek
  • 6 - Demo Shadera: prosta sceneria oceanu / wyspy
  • 7 - cieniowanie Toon
  • 8 - Mapa połysku
  • 9 - Proces post Wiggle
  • 10 - Odwróć proces postu
  • 11 - Moduł cieniujący w skali szarości
  • 12 - Moduł cieniujący zniekształcenia pikseli
  • 13 - Mapowanie alfa
  • 14 - Bufory przepuszczalności / głębokości
  • 15 - Dynamiczne mapowanie środowiska
  • 16 - Refrakcja
  • 17 - Punktowe światło + samo-zaciemnienie
  • 18 - Światła punktowe
  • 19 - Półkuliste światło otoczenia
  • 20 - Głębia ostrości
  • 21 - Przejście: zanikanie
  • 22 - Przejście: krzyż
  • 23 - Rozmycie
  • 24 - Bloom
  • 25 - Hałas Perlina na GPU
  • 26 - Bump Mapping Perlin Noise






0

Nie jestem pewien, jaki model modułu cieniującego i wersji DirectX jest docelowy, ale bardzo polecam praktyczne renderowanie i obliczenia w Direct3D11 . Książka poprowadzi Cię przez wszystkie drobiazgowe szczegóły DirectX11, jej zasoby, wszystkie różne shadery potoków, HLSL (cały rozdział poświęcony temu zagadnieniu) oraz jak rozpocząć wdrażanie takich rzeczy, jak symulacje układu cząstek, teselacja, przetwarzanie obrazu, odroczone renderowanie i DirectCompute!



-1

dla mnie łatwiej jest nauczyć się GLSL, a ponieważ HLSL i GLSL są podobne. gdy zrozumiesz całą koncepcję, potok, sprzęt i sposób działania wewnętrznego modułu cieniującego, możesz łatwo użyć innego języka, takiego jak HLSL lub nawet Cg.

Proponuję GLSL, ponieważ ma bardzo dobrą książkę, taką jak pomarańczowo-czerwona księga openGL i jest łatwa do nauczenia dla początkujących.


1
To nie odpowiada na pytanie.
PhillC,

Nie jest to jednak zła odpowiedź - wiele z tego, co leży u podstaw GLSL, jest bardzo podobne do HLSL, a jeśli OP może znaleźć zasoby dla GLSL, to dobrze jest z nich skorzystać. Wiele głównych różnic między samym kodem modułu cieniującego to tylko kwestia konwersji mentalnej, gdy wiesz, na co patrzysz. Pomysł uczenia się GLSL po raz pierwszy zawodzi, ponieważ należałoby również nauczyć się OpenGL (nie jest zły sam w sobie; przydatny do poznania obu) i przepisać swój program (zły), ale nie ma absolutnie nic złego w korzystaniu z materiału GLSL w celu uzupełnienia własnej nauki HLSL (i i odwrotnie, w stosownych przypadkach).
Maximus Minimus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.