D3D9 и пользовательские плоскости отсечения (IDirect3DDevice9::SetClipPlane)

Я читал в документации по промежуточному ПО, которое мы используем, что поддержка этого может быть нестабильной, но D3D docs не упоминайте об этом. Мы возвращаемся к самым ранним аппаратным картам Intel GMA SM2.0, в основном GMA950 и GMA3100, поэтому я пытаюсь выяснить, достаточно ли они устарели, чтобы иметь проблемы, или мы говорим о еще более старых исправленных- только функциональные чипсеты.


person Mr. Boy    schedule 07.04.2011    source источник
comment
Обтравочные плоскости уже некоторое время поддерживаются на большинстве видеооборудования, в том числе с фиксированными функциями. Однако поддержка Intel может быть ненадежной.   -  person ssube    schedule 07.04.2011


Ответы (1)


Только не заморачивайтесь с плоскостями отсечения пользователя. Они странным образом эмулируются драйверами. Зачем они вам действительно нужны? Если вы хотите что-то оптимизировать, вы получите небольшой выигрыш на одном аппаратном обеспечении и заплатите ужасную цену за другое. Если вам это нужно для какого-то алгоритма, сделайте это сами, используя texkill, и он будет надежным везде. Вероятно, это не тот ответ, который вы хотели, но в целом просто не используйте его и переосмыслите свой подход.

person starmole    schedule 11.04.2011
comment
Отсечение целых полигонов означает, что каждый пиксель не должен проходить через шейдеры. Это довольно дорого, так почему это будет лишь небольшой выигрыш, если я могу уменьшить отображаемые пиксели на 50%? - person Mr. Boy; 13.04.2011
comment
Проблема в том, что большинство аппаратных средств просто не реализуют пользовательские плоскости отсечения. Поэтому они подражают этому. Если вы хотите сохранить заливку, вам нужно использовать базовое отсечение через проекцию или, возможно, отсечение экранного пространства через ножницы. Но пользовательский клип просто не бесплатный. На бумаге это звучит хорошо, но это одна из тех редких функций, которые были круты в 90-х, но в настоящее время занимают место на кристалле. - person starmole; 26.04.2011
comment
Вы действительно должны посмотреть, как выполняется отсечение в hw: обычно только вдоль z, x/y выполняется после проекции в 2d. На самом деле hw очень сложно обрезать, потому что один треугольник может создать два треугольника, будучи обрезанным. Это требует дорогостоящих кешей — каждая плоскость отсечения может удвоить количество треугольников из одного входного треугольника. - person starmole; 26.04.2011