Реализация шейдерной анимации для приложения DirectX Магазина Windows

Я пытаюсь добиться анимации шейдера в приложении Windows Store DirectX. На самом деле я просто хотел бы получить ту же анимацию, которую я вижу по ссылке ниже (реализовано для DirectX 9 и C#).

http://www.rastertek.com/dx10tut33.html

Я вроде как могу найти свой путь с DirectX 11.1 (шейдеры DirectX, совместимые с приложением Магазина Windows), но я не вижу, как я могу передать параметр времени коду шейдера из логики программы C++, чтобы я мог влиять на состояние шейдера и имеют различный эффект в зависимости от времени.

Поделитесь мнением, если оно у вас есть.


person Gökhan Şengün    schedule 10.12.2012    source источник


Ответы (1)


Для передачи параметров шейдеру вы можете использовать константные буферы (msdn). Вы создаете постоянный буфер, заполняете его своими данными, например. фактическое время и установить его в нужном шейдере с помощью

   ID3D11DeviceContext::GSSetConstantBuffers
   ID3D11DeviceContext::PSSetConstantBuffers
or ID3D11DeviceContext::VSSetConstantBuffers.
person Gnietschow    schedule 10.12.2012
comment
Спасибо, это было именно то, что я искал. Однако его название несколько вводило в заблуждение. Вы знаете, почему эти буферы называются постоянными? - person Gökhan Şengün; 11.12.2012
comment
Афаик, потому что они описывают данные, которые являются постоянными и поэтому не меняются между всеми шейдерами во время вашего вызова отрисовки :) - person Gnietschow; 11.12.2012