В последний раз, когда я пытался изучать HLSL, я сделал несколько шейдеров и в основном понимал, что я делаю, но я все еще чувствовал, что спотыкаюсь в темноте. Большую часть того, что я узнал, я получил из различных постов в блоге, которые не очень хорошо объясняли вещи.
Кроме того, документация по MSDN, кажется, больше справочная функция.
Где я могу научиться не только писать HLSL, но и изучать методы написания шейдеров?
Если вы ищете «технику шейдера», а не просто ссылку на язык (читайте вопрос, люди), я рекомендую (от простого к продвинутому):
И в основном либо: попробуй что-то и практикуйся, все в то же время понимая, как "профессионалы" делают вещи. Или выбирайте вещи, которые похожи на то, что вы пытаетесь достичь, и работайте оттуда.
источник
Cg технически не является HLSL, но синтаксически они практически идентичны.
Сказав это, это старая книга, но NVIDIA сделала « Учебник по компьютерной графике » бесплатным для чтения в Интернете. Он охватывает основы программируемого конвейера очень всеобъемлющим образом, и все это должно переводиться в HLSL с минимальными усилиями.
источник
Если вы хотите редактировать и видеть результаты в режиме реального времени, вы можете использовать этот простой инструмент Silverlight
http://shazzam-tool.com/
Shazamm 1.3 - редактор и предшественник шейдеров HSLS
Что касается учебников +1 для Riemers.net, но я также нашел эту серию учебников по XNA / HLSL еще лучше.
Вот список, вы найдете их все здесь: http://digitalerr0r.wordpress.com/tutorials/
источник
Несколько вещей приходят на ум
источник
Я обнаружил, что Riemers.net имеет очень хорошее вводное руководство по HLSL как часть своих учебных пособий по XNA. Автор, Riemer Grootjans, также написал рекомендованную книгу XNA 3.0 «Рецепты игрового программирования» - если вам нравится рецептный подход.
источник
Я бы посоветовал вам проверить Поваренную книгу по разработке HLSL , я нашел ее действительно полезной Особенно глава 3.
источник
Когда я читал о HLSL, я нашел этот урок в тот же день. Мне понравилось, так как он пытался объяснить каждую часть того, что он делал.
источник
Я нашел серию учебных пособий, от базового шейдера окружающего света до отражений и мультяшных шейдеров. Каждый проходит и объясняет каждую строку и даже объясняет немного математики:
http://rbwhitaker.wikidot.com/hlsl-tutorials
источник
Не уверен, на какую модель шейдера и версию DirectX вы нацеливаетесь, но я очень рекомендую Практический рендеринг и вычисления с Direct3D11 . Книга знакомит вас со всеми мельчайшими подробностями DirectX11, его ресурсами, всеми различными конвейерными шейдерами, HLSL (целая глава посвящена этому), а также с тем, как начать реализацию таких вещей, как моделирование системы частиц, тесселяция, обработка изображений, отложенный рендеринг. и DirectCompute!
источник
Я рекомендую эту ссылку для примеров: http://www.codesampler.com/dx9src/dx9src_8.htm#dx9_hlsl_fx_simple
Для тех, кто интересуется, почему их код не работает, или если вы не знаете, как встроить шейдер в свой конвейер, это хорошее место.
источник
для меня легче сначала изучить GLSL, а так как HLSL и GLSL похожи. как только вы поймете всю концепцию, конвейер, аппаратное обеспечение и работу внутреннего шейдерного языка, вы легко сможете использовать другой язык, такой как HLSL или даже Cg.
Я предлагаю GLSL, потому что у него есть очень хорошая книга, такая как оранжево-красная книга openGL, и ее легко освоить новичку.
источник