Глянь семантики, можно несколько позиций передавать.
POSITION[n]
ronniko
На вот, ознакомься: http://karonator.ru/projects/toxic/405
Это принтскрин помощи входящей в дх11сдк. С права расписаны семантики по шейдерам и доступные системные переменные опять-же для всех типов шейдеров.
KaronatoR
Спасибо. Но как бы это я и так знаю. И в который раз повторю, у меня есть рабочий пример Cell Shading. И я понимаю как он работает.
D3D11_INPUT_ELEMENT_DESC layoutQuad[] =
{
{ "POSITION0", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
{ "POSITION1", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 }
};
В шейдере не забудь также сделать.
ronniko
сорри тогда, всю тему не читал
ronniko
Ну и что это? Решение твоей проблемы?
ЗЫ ну да, инстансом тоже можно
k119_55524
> Глянь семантики, можно несколько позиций передавать.
В VS можно, в GS тоже в DX11, но в пиксельный то как?
Osiris
> но в пиксельный то как
тудыто нет конечно. :)
Ему, как вариант, в геом шейдере надо другой тр-к создавать, поширше. Но парень упёрся и всё тут.
Пусть на кошках потренируется, за одно доки почитает. :)
ronniko
пиксельный шейдер обрабатывает интерполированные данные одного и только треугольника, которые приходят на его вход. Пиксели экрана которые не попадают в треугольник(тоесть треугольнику не надо их закрашивать) не обрабатываются, тоесть одновременно два треугольника не рисуются в одной ните шейдера, так как их форма и положение могут быть разными, и не все пиксели треугольников пересекутся(это уже не программное ограничение а ограничение технологии, потому что смысла в таком поведении особого нет).
Тема в архиве.