問題タブ [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 ファイルを描画する必要があります。たとえば、2 つの SVG ファイルがある場合、それらを openGL の 2 つの異なる 3D 平面にレンダリングして、平面が空間内で独立した向きを持つことができるようにします。この目的でopenVGを使用してみましたが、ご覧のとおり、2D変換しか使用できません。

openVG または他の openGL ベースのアプローチでこれを行う方法はありますか?

0 投票する
3 に答える
1208 参照

opengl-es - OpenVG と WebGL

WebGL に基づく OpenVG 標準の JavaScript 実装はありますか?

ブラウザーでベクター グラフィックスをレンダリングできることはよく知っていますが、OpenVG 標準に基づいているかどうかに関係なく、WebGL を使用して SVG を実際にレンダリングできた人がいるかどうかに興味があります。存在しない場合、プロジェクトを開始すると便利ですか?

0 投票する
1 に答える
842 参照

opengl - 現在最高の OpenVG 実装は?

重複の可能性:
最高の OpenVG 実装?

これが次の複製であることは承知しています: OpenVG実装? しかし、ページは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 アプリに取り組んでいます。最初は、すばらしいベクター描画 API を備えた CoreGraphics を使用することにしました。しかし、私はすぐに、Retina iPad のたった 1 つのカーブでフレームレートが大幅に低下し始めるところまで、パフォーマンスがひどく、耐え難いほど遅いことを発見しました。(確かに、これは非効率的なコードを使った簡単なテストでした。たとえば、曲線はフレームごとに再描画されていました。しかし、今日のコンピューターは 1/60 秒ごとに単純な曲線の描画を処理するのに十分な速さですよね?!)

この実験の後、私は OpenGL とMonkVGライブラリに切り替えましたが、これ以上ないほど満足しています。フレームレートを落とすことなく、何百もの曲線を同時にレンダリングできるようになりました。忠実度への影響は最小限に抑えられます (私の使用例の場合)。

  1. CoreGraphics を何らかの形で誤用した可能性はありますか (OpenGL ソリューションよりも数桁遅くなるまで)、またはパフォーマンスは本当にひどいのでしょうか? 私の推測では、CG パフォーマンスに関する StackOverflow/フォーラムの質問と回答の数に基づいて、問題は CoreGraphics にあるということです。(何人かの人々が、CG は実行ループに入ることを意図しておらず、まれなレンダリングにのみ使用する必要があると述べているのを見てきました。) 技術的に言えば、なぜこれが当てはまるのでしょうか?
  2. CoreGraphics が本当に遅いのなら、一体どうして Safari はこんなにスムーズに動作するのでしょうか? 私は、Safari はハードウェア アクセラレーションを備えていないという印象を受けましたが、フレームをドロップすることなく、数百 (数千ではないにしても) のベクトル文字を同時に表示する必要があります。
  3. より一般的に言えば、ベクトルを頻繁に使用するアプリケーション (ブラウザー、Illustrator など) は、ハードウェア アクセラレーションなしでどのように高速を維持できるのでしょうか? (私が理解しているように、多くのブラウザーとグラフィックス スイートにはハードウェア アクセラレーション オプションが付属していますが、多くの場合、既定ではオンになっていません。)

アップデート:

パフォーマンスをより正確に測定するための簡単なテスト アプリを作成しました。以下は、私のカスタム CALayer サブクラスのコードです。

NUM_PATHS を 5 に設定し、NUM_POINTS を 15 (パスごとに 5 つの曲線セグメント) に設定すると、コードは iPad 3 の非網膜モードで 20 fps、網膜モードで 6 fps で実行されます。プロファイラーは CGContextDrawPath を CPU 時間の 96% としてリストします. はい — もちろん、再描画四角形を制限することで最適化できますが、60fps でのフルスクリーン ベクトル アニメーションが本当に本当に必要な場合はどうすればよいでしょうか?

OpenGL はこのテストを朝食に食べます。ベクトル描画が信じられないほど遅いのはどうしてですか?

0 投票する
3 に答える
1485 参照

c - OpenVG コンテキストで SVG をインポートするにはどうすればよいですか?

OpenVG を使用してベクトル アニメーションを表示する C プログラムがあります。すべてのオブジェクトは、何度も何度も VG 関数を記述することによって作成されます... ベクトル画像の SVG ファイルを提供してくれるアーティストと仕事をしています。したがって、私の目的は、これらの SVG を OpenVG コンテキストで表示することですが、方法が見つかりません。

最初に私は SVGconv( http://svgconv.blasiussecundus.me ) で作業しましたが、彼の作成者は 10 年からサポートされていないと言いました...

おそらく重要な詳細:RaspberryPiで実行されるプログラム。

私の考えでは、解決策があります:1)SVGをインポートする関数がVGに存在しますが、私はそれを見逃しました2)有効なパーサーはWeb上のどこかにあります...

あなたの意見は何ですか ?

ありがとうございました

0 投票する
0 に答える
116 参照

c++ - VGPath からすべてのポイント (座標) を取得していますか?

描画にMonkSVGを使用し、タイプの変数内にポイントを保存しますtypedef VGHandle VGPath;

VGPath のすべてのポイントを含む最小の四角形を見つける必要があります。したがって、この変数からすべてのポイントを取得する必要があります。「move_to」、「line_to」などの SVG ファイルからの追加の修飾子は必要ありません

ご覧のとおり、OpenVG/MonkVG の次の関数を使用して個別のポイントを保存できます。

  • vgAppendPathData
  • vguRect
  • ...
0 投票する
2 に答える
407 参照

c++ - c++. 2 点が定義された描画ベジェ曲線呼び出しを 3 点が定義された呼び出しに変換しますか?

理論へのリンク

C および c は、3 点が定義された曲線を意味します。

S と s は、2 点が定義された曲線を意味します。

関連する関数は (monkSVG + monkVG/openVG) です。

問題は、2 番目の関数 (2 ポイント) の結果イメージが正しくないように見えることです。だから私はそれを実行可能に見える関数に置き換えたいと思っています。

前のステップからポイントを保存しようとしましたが、間違った結果が得られました: