2013-07-12 1 views
1

Мне интересно, будет ли рисование треугольника с размерами частично из усеченного усача будет занимать больше времени, чем когда я буду вычислять, где треугольник связан усечками и сделать (возможно, два) новый треугольник, чтобы нарисовать этот, а не большой треугольник, в результате чего изменились одинаковые пиксели.OpenGL Растеризация объекта частично из усечения

Итак, вопрос в том, существуют ли фрагментарные шейдеры для позиций, которые даже не существуют на вашем экране? Или фаза растеризации оптимизирована для этой проблемы.

ответ

1

Это полностью вещь водителя. Любой треугольник, который выходит за пределы диапазона, автоматически обрабатывается вашим драйвером, теоретически, разделяя треугольник на два меньших; Я сомневаюсь, что вы сможете сделать это быстрее, чем ваш GPU.

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

TL; доверяйте этому GPU.

+0

«два меньших». Если треугольник большой и пересекает несколько краев экрана/углов в ONCE, вам может понадобиться до 6 треугольников для ресеивания обрезанного результата. – SigTerm

2

Современное оборудование GL на самом деле, действительно хорошее на обтравочных треугольниках против окна просмотра.

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

Не пытайтесь отбирать усечку на уровне треугольника, делать это на уровне объекта/плитки. Ваш процессор и вершинные шейдеры будут благодарны вам :)

0

Короткий ответ:
Нет, шейдер фрагмента не будет работать для пикселей за пределами усеченного конуса.
Но вы должны действительно беспокоиться о вершинном шейдере. Он будет работать, даже если весь треугольник находится за пределами усечения, потому что графический процессор не может предсказать (не то, что я знаю об этом), если треугольник окажется на экране.

+0

Thanx for heads up, я знаю, что все треугольники, которые я рисую, частично (частично) внутри усеченного конуса. –

+0

Ну ... тогда тебе повезло ^^ – Tara

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

  • Нет связанных вопросов^_^