Які є хороші ресурси для вивчення HLSL? [зачинено]


28

Востаннє, коли я спробував вивчити HLSL, я зробив кілька шейдерів і здебільшого зрозумів, що роблю, але все одно відчував, що спотикаюся в темряві. Більшість того, що я дізнався, я отримав з різних публікацій блогу, які не дуже добре пояснювали речі.

Крім того, здається, що документація на MSDN є більш довідковою функцією.

Де я можу навчитися не тільки писати HLSL, а й вивчати техніку написання шейдерів?

Відповіді:


14

Ці двоє зауважили, я послідовно повертаюся до наступної статті майже кожного разу, коли пишу загальний шейдер:


1
І я повинен уточнити, що під "посиланням на API" я маю на увазі більше "Посібник з програмування".
Шон Джеймс

6

Якщо ви хочете скористатися "шейдерною технікою", а не простою мовою (читайте питання, люди), я рекомендую (від легкого до передового):

  • Розділ Shader зразків XNA (очевидно, вимагає використання XNA)
  • Серія підручників Петрі Вільгельмсена, починаючи тут (стає більш досконалою пізніше; також заснована на XNA)
  • Комплект зразків композитора Nvidia FX

І в основному, будь-ласка: спробуйте щось і практикуйте, все одно, поглинаючи, як «профі» роблять справи. Або вибирайте речі, схожі на те, що ви намагаєтеся досягти, і працюйте звідти.


3

Cg технічно не є HLSL, але синтаксично вони практично однакові.

Сказавши це, це старіша книга, але NVIDIA зробила " Підручник з Cg " вільним для читання в Інтернеті. Він висвітлює основи програмованого конвеєра дуже всебічно, і все це повинно бути перекладено на HLSL з мінімальними зусиллями.


1
nVidia та Microsoft були співавторами Cg / HLSL у той час. Вони давали йому різні назви через брендинг, але мова однакова. Зараз, мабуть, незначна різниця, але вона справді мінімальна.
jacmoe

Це феноменальна книга. В основному все, що було Кілгард, було дійсно добре з точки зору навчальних посібників.
bobobobo

3

Якщо ви хочете відредагувати та переглянути результати в режимі реального часу, ви можете скористатися цим простим інструментом Silverlight

http://shazzam-tool.com/
Shazamm 1.3 - редактор та превіер HSLS Shaders


Щодо навчальних посібників +1 для Riemers.net, але я також знайшов цю серію навчальних посібників XNA / HLSL ще кращою.

Ось список, ви їх знайдете тут: http://digitalerr0r.wordpress.com/tutorials/

  • 1 - Вступ до HSLS, навколишнє світло
  • 2 - дифузне світло
  • 3 - дзеркальне світло
  • 4 - Нормальне відображення
  • 5 - деформаційна вершина шейдера
  • 6 - демонстрація шейдера: прості пейзажі океану / острова
  • 7 - Затінення тонів
  • 8 - Глянсова карта
  • 9 - процес Wiggle post
  • 10 - процес інвертування публікації
  • 11 - сірий шейдер
  • 12 - Шейдер викривлення пікселів
  • 13 - Альфа-карти
  • 14 - буфери пропускання / глибини
  • 15 - Динамічне відображення середовища
  • 16 - Заломлення
  • 17 - Точковий світло + Самозатінення
  • 18 - Кілька точкових вогнів
  • 19 - півсферне навколишнє світло
  • 20 - Глибина поля
  • 21 - Перехід: Fade
  • 22 - Перехід: Хрест
  • 23 - Розмиття
  • 24 - Блум
  • 25 - Шум Перліна на GPU
  • 26 - шумовий відбиток Перліна





0

Я знайшов серію навчальних посібників, які переходять від базового шейдера навколишнього світла аж до відбитків та шейдерів. Кожен проходить і пояснює кожен рядок і навіть трохи пояснює математику:

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


0

Не знаєте, на яку модель шейдера та версію DirectX ви орієнтовані, але настійно рекомендую Практичне візуалізацію та обчислення за допомогою Direct3D11 . У цій книжці ви знайдете всі деталі з грізними елементами DirectX11, її ресурси, всі різні шейдери конвеєра, HLSL (цілий розділ, присвячений цьому) та як почати реалізовувати такі речі, як моделювання системи частинок, тесселяція, обробка зображень, відкладене візуалізація та DirectCompute!



-1

для мене простіше засвоїти GLSL спочатку, а оскільки HLSL та GLSL схожі. як тільки ви зрозумієте всю концепцію, конвеєр, обладнання та те, як працює внутрішня мова шейдера, вам легко використовувати іншу мову, наприклад HLSL або навіть Cg.

Я пропоную GLSL, тому що в ньому є дуже хороша книга, така як помаранчева та червона книга openGL та її легко вивчити для початківців.


1
Це не відповідає на запитання.
PhillC

Однак це не погана відповідь - багато чого з того, що лежить в основі GLSL, дуже схоже на HLSL, і якщо ОП може знайти ресурси для GLSL, то їх можна використовувати. Багато головних відмінностей між самим шейдерним кодом - це лише питання розумової конверсії, коли ви дізнаєтеся, на що дивитесь. Ідея засвоєння GLSL спочатку провалюється, тому що також потрібно було б навчитися OpenGL (непогано саме по собі; корисно знати обидва) та переписати свою програму (погано), але в використанні GLSL-матеріалу для доповнення свого навчання HLSL абсолютно нічого поганого (і навпаки, де це доречно).
Максим Мінімус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.