Могу ли я программно включить сглаживание WebGL в Firefox?
Например, на такой странице, как в Safari 7, она сглажена, а в Firefox 29 (OS X 10.9) - нет.
Firefox действительно обладает способностью к сглаживанию. Если я установлю для about:config параметр "webgl.msaa-force" в значение "true", то это сглаживание.
Есть ли способ сделать сглаживание Firefox для моей конкретной веб-страницы, не полагаясь на пользователя, чтобы связываться с его about:config?
Я использую three.js, и у него есть флаг "antialias", но, похоже, он имеет значение только в Safari, а не в Firefox.
1 ответ
Короткий ответ - нет".
Это зависит от браузера, поддерживать антиалиасинг или нет. Многие драйверы аварийно завершают работу с сглаживанием при определенных условиях, поэтому браузеры часто отключают сглаживание на этих машинах.
Обратите внимание, что antialias
флаг true
по умолчанию. Другими словами, по умолчанию для WebGL используется сглаживание, хотя оно все еще зависит от браузера. Специально настройка antialias
в true
в большинстве случаев может служить подсказкой (эй, я действительно хочу сглаживания, пожалуйста), но я не знаю ни одного браузера, который бы использовал его как подсказку. Обычно они включают сглаживание, если могут.
С другой стороны, настройка antialias
в false
в частности, означает "не делать сглаживания".
Вы можете попробовать сделать сглаживание самостоятельно. Например, вы можете выполнять рендеринг с более высоким разрешением и использовать CSS для отображения холста меньшего размера, и в этом случае браузер, скорее всего, будет выполнять билинейную интерполяцию при компоновке вашего WebGL на страницу. Вы также можете визуализировать текстуру, а затем применить к ней некий сглаживающий фильтр при рендеринге на холст.