Ответ: Пишем 3D движок - замену Xors3D
Банальный пример:
В DX10-11 есть InputLayout, то же что и VertexDeclaration в DX9, НО если в дх9 он создавался из нескольких руками заданных структур с параметрами, то в 10-11 тебе нужно иметь скомпилированный VS для его создания. Фишка в том, что в 9 на дроуколах много оверхеда была из-за адаптирования вертексдекларации к входной структуре каждого шейдера, а в 10-11 решили оставить это на препроцесс, убрав каждокадровый оверхед.
Вот только у меня в движке декларация ничего не знала о шейдерах, я её вообще считал частью меша (ну типа описывает как парсить VB), а шейдеры существовали где-то в параллельном мире. Пришлось делать костыли.
Второй пример - рендер стейты. В DX9 можно когда попало какие ставить, в 10-11 ты должен заранее создавать блоки стейтов и переключать их целиком. У меня в движке слишком рандомно менялись стейты by design, пришлось вставлять ещё костыль, который в рантайме чекал все стейты, искал в мапе похожие блоки, если не находил - создавал новые.
|