Я включил 4x MSAA в своем приложении iPad OpenGL ES 2.0, используя пример на веб-сайте Apple. На симуляторе это работает хорошо, и изображение красивое и плавное, однако на устройстве есть цветные артефакты по краям, где оно должно быть сглажено. Это существует на iPad / iPad2 и iPhone4, но не в симуляторе. Ниже я прикрепил изображение того, как выглядит артефакт. Кто-нибудь знает, что это может быть?
Артефакты при включении сглаживания 4x MSAA на iPad / iOS
Ответы (1)
Похоже, ваш шейдер атакует, но вы этого не сделали. опубликуйте шейдер, чтобы я не был уверен. Видите ли, когда вы включаете MSAA, шейдер может выполняться для образцов, находящихся внутри области пикселей, но за пределами области треугольника. Без MSAA этот пиксель вообще не вызвал бы выполнение фрагментного шейдера, но теперь, когда вы включили MSAA, он должен выполнить фрагментный шейдер для этого пикселя, если один из образцов активен.
Ссылка, которую я опубликовал, объясняет проблему более подробно. Это также дает вам способы избежать этой проблемы, но я не знаю, предоставляет ли OpenGL ES 2.0 доступ к выборке центроидов. Если это не так, вам придется отключить мультисэмплерный рендеринг для тех вещей, которые вызывают артефакты с glDisable(GL_MULTISAMPLE)
. Вы можете снова включить его, когда вам понадобится активировать мультисэмплинг.