Я бы стал писать простые шейдеры. Обучение как ты знаешь состоит из последовательных этапов. Начиная с простого к сложному.
Лучше всего когда понимаешь как шейдерный конвеер работает и как передедавать переменные и как из вершинного в попиксельный шейдер передаются данные. Для это напиши простой шейдер - простой диффуз. При этом попробуй это сделать без единого копипаста, но можно смотреть в чужой шейдер.
Разбери его до мелчайших деталей. В msdn на HLSL есть хорошая инфа о тех или иных общих момментах.
Далее усложняй, но важно понять представление вершины и пикселя в шейдере, "как шейдер видит" их
Тогда будет проще далее.