2010-03-06 6 views
8

Должен ли я всегда использовать этот метод при рендеринге? Это сильно замедляет работу на плохих картах gfx?Должен ли я всегда использовать GL_CULL_FACE?

Если в конечном результате не будет много отбракованных лиц, должен ли я использовать этот метод?

+0

Выравнивание лица обычно должно быть включено, если вам не нужно видеть лицо с обеих сторон. Скорее всего, это ускорит работу, так как это сэкономит вам скорость заполнения. – falstro

ответ

19

Если все ваши модели определены правильно (выпуклое, с согласованной вершинной обмоткой), отбраковка никогда не повредит производительности и почти всегда будет способствовать производительности.

Представьте, что вы выполняете куб, при этом выбрасывание отключено. Лица на спине (на противоположной стороне) куба оказываются обращенными к вам, и любые атрибуты материала на лицевой поверхности, которые вы выбрали, применяются. Затем оказываются лица на передней части куба: поскольку обратные лица, которые были только что визуализированы, являются внутренней частью куба, они на 100% закрыты передними гранями.

Если куб был ориентирован по-разному, передние поверхности могут быть растрированы первыми, но задние поверхности все равно будут обработаны, а затем фрагменты, отвергнутые буфером z.

Чистый результат: вы растрировали 2x столько фрагментов, сколько необходимо. Это связано с большим количеством полигонов или сложных пиксельных шейдеров. Вырезание лица позволяет полностью избежать растеризующих лиц, которые, как вы знаете, не будут отображаться.

Если у вас есть модель персонажа с ~ 100 000 полигонов, то лицо, отбраковывающее половинки, должно работать с каждым пиксельным оборудованием. Это большая экономия, если у вас большие поверхностные шейдеры.

Если вы работаете с маленькими моделями и без шейдеров, отбраковка действительно не имеет значения в наши дни. Но в любом случае это хорошая практика.

+0

Я не думаю, что вы действительно ответили на этот вопрос: «Если в конечном результате не будет много отбракованных лиц, должен ли я использовать этот метод?». Я также задаюсь вопросом, ухудшается ли производительность, если я ТОЛЬКО визуализирую передние полигоны. – Tara

0

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

+0

Что относительно коэффициента отбора? если он действительно не делает результат отличным от того, что он был до отбраковки, должен ли я даже использовать отбраковку? другими словами: есть ли значительное влияние на скорость, когда это разрешено? – Newbie

6

Включение лица Отбраковка (обычно задняя сторона) оказывает значительное влияние на производительность рендеринга.

Теперь вопрос, на который нужно ответить, заключается в том, почему «отключение» не включено по умолчанию или почему оно не используется всегда? » существует несколько факторов, которые определяют, является ли возможное отбраковка возможным или нет. Первая - это модель, которая визуализируется и как она просматривается.

Для каждого многоугольника в модели, если видна только одна грань спереди или сзади (когда модель просматривается со всех возможных углов), мы можем отбраковать другую грань.

Для примера: «Куб», независимо от того, смотрите ли вы изнутри или снаружи, при повороте вы можете видеть только одну сторону из каждых 6 полигонов, которые составляют куб.

Другой пример: «Паруса модели корабля», как в моей игре «Морские войны» (3D), паруса модели корабля - это поверхность, построенная с несколькими плоскими полигонами. Когда лодка перемещается в воде, можно видеть обе стороны паруса. В этом случае отбраковка любой из граней нежелательна.

Следовательно, отбраковка может быть включена для всех моделей сцены, которые следуют семантике кубов и отключаются для всех других моделей.

P.S. По возможности следует использовать Face Culling.

Смежные вопросы