OpenVG и WebGL

Существует ли реализация JavaScript стандарта OpenVG на основе WebGL?

Я прекрасно знаю, что мы можем отображать векторную графику в браузере, мне просто любопытно, удалось ли кому-нибудь на самом деле отобразить SVG с помощью WebGL, основываясь на этом стандарте OpenVG или без него. Если его не существует, было бы полезно начать проект?

3 ответа

Решение

Ну, ни один из этих ответов не дает четкого ответа на вопрос. @tom показывает, что да, мы можем визуализировать векторную графику на холсте webgl, используя аккуратную трафаретную уловку. Однако это не полная реализация спецификации OpenVG, и мне любопытно, сколько из спецификации OpenVG может быть реализовано таким образом. Итак, сделаем вывод:

В настоящее время нет реализаций, но особого спроса на них нет.

Вот некоторый C-код для разбора и рендеринга SVG в OpenGL 1.x: https://github.com/tnovelli/vsprite. Это может быть не совсем то, что вы ищете. Мы использовали трюк Stencil Buffer для рисования 2D полигонов. Для 3D, я думаю, вам придется рендерить в внеэкранный буфер и накладывать текстуру на 3D-объект. (Почему бы не сделать рендеринг SVG в растровые изображения? Потому что наши объекты разрушаемы и деформируемы.)

Я думаю о портировании этого на Javascript+WebGL. Функции синтаксического анализа XML/SVG/CSS в браузере должны устранить большую часть работы, но уловка трафарета может стать проблемой. Для меня это задний план, так что если кто-то хочет что-то попробовать, не задерживайте дыхание, просто сделайте это!:)

Поскольку WebGL прекрасно сочетается с любой другой техникой HTML(5), вы уже можете смешивать ее. Единственное, что вы не сможете смешивать SVG с WebGL, используя его буфер глубины - например, логотип (SVG), размещенный в 3D-мире (WebGL). Но, может быть, это именно то, что вам нравится делать?

Другие вопросы по тегам