netlib.narod.ru< Назад | Оглавление | Далее >

Упражнение

В качестве небольшого упражнения, чтобы ближе познакомиться с шейдерами, напишите сейчас простой шейдер DiffusePerPixel, который работает так же, как шейдер SpecularPerPixel, за исключением отражаемой цветовой компоненты, которая обрезается. DiffusePerPixel будет полезен для материалов которые не блестят, и чтобы переключаться между SpecularPerPixel и DiffusePerPixel вы должны иметь две техники в файле SimpleShader.fx.

С помощью следующего кода вы сможете динамически переключаться между двумя техниками, в зависимости от того, нажал пользователь пробел или нет:

if (Input.Keyboard.IsKeyDown(Keys.Space))
  effect.CurrentTechnique = effect.Techniques["DiffusePerPixel"];
else
  effect.CurrentTechnique = effect.Techniques["SpecularPerPixel"];

Если вы еще не совсем разобрались с идеей шейдеров в целом, можете исследовать шейдеры, поставляемые вместе с FX Composer, которые находятся в каталоге HLSL программы. Возможно, вы немного поэкспериментируете с ними, или даже попытаетесь реализовать их в SimpleShader.fx.

Наслаждайтесь!


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz