2016-09-19 2 views
2

Допустим, я включаю отсев забой с помощью:Есть ли существенная разница в производительности между GL_CW в пользу GL_CCW с отбрасыванием задней поверхности?

glEnable(GL_CULL_FACE); 

можно настроить, какие боковые грани забиты на использование любого из них:

glFrontFace(GL_CW); 
glFrontFace(GL_CCW); 

Есть ли существенная разница в производительности, если я выбираю один над Другие?

Моя догадка говорит, что это не имеет значения, потому что это должно включать только проверку против другого знака при взятии скалярного продукта. Хотя, возможно, это тоже зависит от аппаратного обеспечения?

ответ

1

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

+0

Действительно, они есть. Мне более любопытно, что процесс рендеринга возникает при рендеринге ячеек с использованием одного или другого порядка. Это правда, что производительность рендеринга зависит от множества разных факторов, но скажите, что вы показываете сцену, где ровно половина треугольников обращена к камере, а другая половина. Будет ли в этом случае вопрос, хотите ли вы определить свои лица по часовой стрелке или против часовой стрелки? – Bartvbl

+0

Основываясь на некоторой реализации с открытым исходным кодом (Mesa3d) на основе программного обеспечения, производительность не отличается. – codetiger

0

Что касается спецификации OpenGL, нет ничего определенного в отношении точного поведения во время выполнения, включая производительность. Такое поведение всегда зависит от реализации. Однако я знаю, что не было никакой реализации, в частности там, где была бы заметная разница.