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 | < Назад | Оглавление | Далее > |