Как рисовать цветные линии и многоугольники с помощью Directx11 без файла fx?

Мне нужно нарисовать набор линий, используя заданный цвет. Я видел много примеров, в которых используются пиксельные шейдеры и fx-файлы. Мое требование немного проще. Мне нужно нарисовать набор линий (LineStrip), используя заданные вершины заданного цвета. Я не хочу использовать какие-либо механизмы пиксельных шейдеров файла fx. В Direct3D9 у меня есть объект Line, и мне удалось его реализовать. Но когда я перешел на Direct3D11, я попал в ловушку. Подскажите, пожалуйста, как рисовать линии, прямоугольники и многоугольники (залитые цветом). Я пытался использовать VertexPositionColor, но не смог. Пожалуйста помоги!!!! Заранее спасибо.


person user1386596    schedule 03.12.2013    source источник
comment
Возможно, мой недавний ответ здесь может помочь: [Как рисовать линию и шрифт без D3DX9 в DirectX 9?] (stackoverflow.com/questions/20720882/). Принципы для D3D9 и D3D11 одинаковы, и я также перечисляю некоторые вспомогательные библиотеки.   -  person Ivan Aksamentov - Drop    schedule 26.12.2013


Ответы (1)


Фиксированный конвейер больше не существует с DX11. Вы должны использовать вершинный и пиксельный шейдеры.

person galop1n    schedule 03.12.2013
comment
Не могли бы вы рассказать мне, как это сделать с помощью небольшого фрагмента кода (я имею в виду без использования файла fx). Также есть ли возможность установить Толщину линии и задать функции линии (например, пунктирные линии)? Большое тебе спасибо. - person user1386596; 03.12.2013
comment
Вы должны эмулировать толщину и пунктирность с помощью шейдера геометрии. Здесь ветка форума о том, как сделать толщину: forum.libcinder .org/topic/ - person galop1n; 03.12.2013