问题标签 [openvg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
842 浏览

opengl - 使用 openGL 在 3D 平面上显示 SVG

我需要在各自的 3D 平面上绘制不同的 SVG 文件。例如,如果我有两个 SVG 文件,我想在 openGL 中将它们渲染到两个不同的 3D 平面上,这样这些平面就可以在空间中具有独立的方向。为此,我尝试使用 openVG,但正如我所见,它只允许使用 2D 转换。

有没有办法在 openVG 或其他一些基于 openGL 的方法中做到这一点?

0 投票
3 回答
1208 浏览

opengl-es - OpenVG 和 WebGL

是否有基于 WebGL 的 OpenVG 标准的 JavaScript 实现?

我很清楚我们可以在浏览器中渲染矢量图形,我只是好奇是否有人真的设法使用 WebGL 渲染 SVG,无论是否基于 OpenVG 标准。如果它不存在,启动一个项目会有用吗?

0 投票
1 回答
842 浏览

opengl - 当前最好的 OpenVG 实现?

可能重复:
最好的 OpenVG 实现?

我知道这是一个副本: OpenVG implementation? 但该页面已 2 年未更新。

基本上,我正在寻找一个在 OpenGL 之上运行的相当快速的 OpenVG 实现。有谁知道一些最近和维护的实施?

0 投票
1 回答
342 浏览

c++ - 如何创建需要上下文的对象的全局实例?

我正在尝试编写 OpenVG 的 C++ 包装器,它的设计非常类似于 Open-GL。这是一个简单的路径句柄包装器:

不幸的是,openVG 需要一个上下文才能运行,如果vgCreatePath在没有 openVG 上下文的情况下调用它,它将中止。这使我无法在我的代码中创建(出于测试目的)全局 Path 对象对象,因为它是在我创建 openVG 上下文之前构建的(我主要这样做)。有什么办法可以防止这种情况发生吗?

我认为在对象构造时将句柄统一化是一个非常糟糕的主意......如果没有上下文,我应该在创建 Path 对象时强制创建全局上下文吗?

0 投票
1 回答
299 浏览

opengl-es - 访问 VGImage 数据

使用 OpenVG 1.1 我试图将 VGImage 转储到文件以确认一切正常,但我不确定如何访问 VGImage 的原始 RGBA 数据。使用 vgReadPixels 将数据捕获到 char 数组确实有些工作,但在我花更多时间获取正确格式之前,我想知道是否有更好的方法来捕获使用 vgGetPixels 捕获的 VGImage 数据。

这是使用 Freescale 的 BSP 在 Linux 中的 i.MX53 上完成的。

0 投票
4 回答
4439 浏览

ios - 非常缓慢的软件向量,尤其是 CoreGraphics 与 OpenGL

我正在开发一个需要实时绘制贝塞尔曲线以响应用户输入的 iOS 应用程序。起初,我决定尝试使用 CoreGraphics,它有一个很棒的矢量绘图 API。然而,我很快发现性能非常缓慢,极其缓慢,以至于我的视网膜 iPad 上只有一条曲线时帧速率开始严重下降。(诚​​然,这是一个使用低效代码的快速测试。例如,曲线每帧都会重新绘制。但今天的计算机肯定足够快,可以每 1/60 秒绘制一条简单曲线,对吧?!)

在这个实验之后,我切换到了 OpenGL 和MonkVG库,我高兴极了。我现在可以同时渲染数百条曲线而不会出现任何帧率下降,对保真度的影响很小(对于我的用例)。

  1. 是否有可能我以某种方式滥用了 CoreGraphics(以至于它比 OpenGL 解决方案慢了几个数量级),还是性能真的那么糟糕?根据 StackOverflow/论坛关于 CG 性能的问题和答案的数量,我的预感是 CoreGraphics 存在问题。(我看到有几个人说 CG 不应该进入运行循环,它应该只用于不频繁的渲染。)从技术上讲,为什么会出现这种情况?
  2. 如果 CoreGraphics 真的那么慢,那么 Safari 究竟是如何运行得如此流畅的呢?我的印象是 Safari 不是硬件加速的,但它必须同时显示数百个(如果不是数千个)矢量字符而不会丢失任何帧。
  3. 更一般地说,使用大量矢量的应用程序(浏览器、Illustrator 等)如何在没有硬件加速的情况下保持如此快速?(据我了解,现在许多浏览器和图形套件都带有硬件加速选项,但默认情况下通常不会打开。)

更新:

我编写了一个快速测试应用程序来更准确地测量性能。下面是我的自定义 CALayer 子类的代码。

NUM_PATHS 设置为 5,NUM_POINTS 设置为 15(每条路径 5 个曲线段),代码在我的 iPad 3 上以非视网膜模式下 20fps 和视网膜模式下 6fps 运行。分析器将 CGContextDrawPath 列为具有 96% 的 CPU 时间. 是的——显然,我可以通过限制我的重绘矩形来进行优化,但是如果我真的真的需要 60fps 的全屏矢量动画怎么办?

OpenGL 把这个测试当做早餐吃。矢量图怎么可能这么慢?

0 投票
3 回答
1485 浏览

c - 如何在 OpenVG 上下文中导入 SVG?

我有一个使用 OpenVG 显示矢量动画的 C 程序。所有的对象都是通过一次又一次地编写 VG 函数来创建的……我和一位艺术家一起工作,他可以​​为我提供矢量图形的 SVG 文件。所以我的目标是在我的 OpenVG 上下文中显示这些 SVG,但我找不到任何方法。

首先,我使用 SVGconv(http://svgconv.blasiussecundus.me),但他的创建者告诉我,它在 10 年内不受支持......

也许重要的细节:程序在 RaspberryPi 上运行。

在我看来,有解决方案:1)VG 中存在一个导入 SVG 的函数,但我错过了 2)有效的解析器在网络上的某个地方......

你有什么意见 ?

谢谢

0 投票
0 回答
116 浏览

c++ - 从 VGPath 获取所有点(坐标)?

我使用 MonkSVG 进行绘图,它将点存储在类型变量中typedef VGHandle VGPath;

我需要找到包含 VGPath 的所有点的最小矩形。所以我需要从这个变量中得到所有的点。我不需要 SVG 文件中的其他修饰符,例如“move_to”、“line_to”等

正如我所见,可以使用 OpenVG/MonkVG 中的以下函数存储单独的点:

  • vgAppendPathData
  • vguRect
  • ...
0 投票
2 回答
407 浏览

c++ - c++。将定义了 2 个点的绘制贝塞尔曲线调用转换为定义了 3 个点的调用?

理论链接

定义了 3 个点的 C 和 c 平均曲线。

定义了 2 个点的 S 和 s 平均曲线。

相关函数为(monkSVG + monkVG/openVG):

问题是第二个函数(有 2 个点)结果图像看起来不正确。所以我想尝试用一个看起来可行的功能来替换它。

我试图从上一步存储一个点,但它给出了不正确的结果:

0 投票
0 回答
1336 浏览

text - OpenGL,Op​​enVG。画文字?

有足够多的“示例”,但它们都代表了奇怪代码的一部分。

我发现的最好的代码是:

关联

但我什至无法运行它,因为它具有缺少声明的变量和常量。

任何人都可以发布一个完整的可行示例吗?