Самый эффективный способ реализовать сглаживание мыши - PullRequest
1 голос
/ 29 марта 2011

Я заканчиваю приложение для рисования, которое использует OpenGL ES 2.0 (WebGL) и JS. Все работает очень хорошо, если я не рисую очень быстрыми движениями. Смотрите изображение ниже:

Faceted loop

Этот цикл был нарисован с плавным движением, но поскольку JS мог получать показания мыши только в определенных местах, результат граненый. В определенной степени это происходит в Photoshop, если у вас отключено сглаживание мыши, хотя, очевидно, гораздо меньше, потому что PS имеет возможность опрашивать с гораздо большей скоростью.

Итак, я хотел бы реализовать некоторое сглаживание мышью, но я хочу убедиться, что оно очень эффективно, чтобы оно не мешало действительным операциям рисования пикселей. Первоначально я думал об использовании местоположений мыши, которые JS может захватывать для генерации сплайнов и интерполяции между показаниями для получения более плавного результата. Я не уверен, что это лучший подход. Если это так, как мне убедиться, что я выбрал правильные места на промежуточном сплайне? Большинство найденных мной сплайн-уравнений не имеют равномерно распределенных значений для t = [0, 1].

Любая помощь / руководство / совет будет очень признателен. Спасибо!

1 Ответ

2 голосов
/ 29 марта 2011

Можно попробовать Catmull-Rom, если вы еще этого не сделали.

http://www.mvps.org/directx/articles/catmull/

Я бы выбрал минимальную длину сегмента и разделил бы сегменты, которые превышают ее, на подсегменты 1 +gmentLength / minSegmentLength.

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