Я тестирую некоторые элементы рендеринга с OpenGL, и я заметил, что у меня есть некоторые проблемы с длинными тонкими полигонами, которые образуют плоскость. Поэтому, имея два из этих длинных многоугольников непосредственно рядом друг с другом, щелкнув на длинной стороне, я заметил, что некоторые пиксели на краю невидимы. Эти невидимые пиксели движутся, когда я перемещаю камеру.OpenGL рендеринг и растеризация slivers
Я обнаружил, что это связано с тем, что пиксели на краю этих «многоугольников» будут невидимы, потому что растеризация считает, что они не находятся в пределах этого многоугольника на этом конкретном угле зрения.
Что я не понял, так это то, как сказать OpenGL, чтобы также поставить пиксели на экране, которые находятся непосредственно на краю этого многоугольника.
Если вы нашли мое описание проблемы немного странным, см. http://www.ugrad.cs.ubc.ca/~cs314/Vjan2008/slides/week5.day3-4x4.pdf стр. 27 и далее. Это то, что я имею в виду.
EDIT: Хорошо, я думаю, что я должен сделать ясно, что моя проблема, потому что у меня есть ощущение, что я не могу ADRESS его анти методы наложения спектров
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
Обычно эти артефакты могут быть уменьшены путем включения передискретизации. Это не просто подсказка. – PeterT
Вы имеете в виду «сглаживание» с передискретизацией? например с GL_POLYGON_SMOOTH? – cdx
@cdx: Скорее всего, имел смысл FSA, то есть мультисэмплинг. – datenwolf