OpenGL рендеринг и растеризация лент - PullRequest
0 голосов
/ 21 февраля 2012

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

Я обнаружил, что это происходит из-за того, что пиксели на краю этих «осколочных» многоугольников будут невидимы, потому что при растеризации считает, что они не находятся внутри этого многоугольника под этим конкретным углом обзора.

Я не понял, как заставить OpenGL также размещать пиксели на экране, которые находятся непосредственно у края этого многоугольника.

Если вы нашли мое описание проблемы немного странным, см. http://www.ugrad.cs.ubc.ca/~cs314/Vjan2008/slides/week5.day3-4x4.pdf стр. 27 и далее. Вот что я имею в виду.

РЕДАКТИРОВАТЬ: хорошо, я думаю, что я должен уточнить, в чем моя проблема, потому что у меня есть ощущение, что я не могу решить ее с помощью методов сглаживания

aaa|b|cc
aaa|b|cc
aaa|b|cc
   ^ ^
   1 2

- the polygons a, b and c form a plane
- some pixels at edge 1 and 2 are invisible at certain camera angles

1 Ответ

1 голос
/ 21 февраля 2012

Я не понял, как заставить OpenGL также размещать пиксели на экране, которые находятся непосредственно на краю этого многоугольника.

В общем, вы этого не делаете,Если OpenGL считает, что часть треугольника слишком тонкая, чтобы ее можно было визуализировать для данного разрешения, то она слишком тонкая, чтобы ее можно было визуализировать.Общая форма этого вопроса называется «псевдонимы».

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...