タグ付けされた質問 「graphics」

3
ハードウェアアクセラレーション付きのベクターグラフィックスが削除されないのはなぜですか?
私は、60fpsでベクターパスをリアルタイムで操作するアプリを開発していますが、このテーマに関する情報が非常に少ないことに非常に驚いています。最初は、CoreGraphicsを使用してアイデアを実装しようとしましたが、目的に対して十分に機能しませんでした。それから、OpenVGと呼ばれるハードウェアアクセラレーションベクターグラフィックス用のKhronos標準があり、ありがたいことに、親切な魂がMonkVGと呼ばれるOpenGL ES準実装を書いていたことを発見しました。 しかし、OpenVGは非常に実用的なAPIであるという事実にもかかわらず、多かれ少なかれKhronosによって放棄されているようです。ウィキペディアによると、2011年以降、ワーキンググループは「さらなる標準化のために定期的な会議を開催しないことを決定しました」。私が見つけられる最高のドキュメントは、たった1枚のリファレンスカードで構成されています。さらに、インターネット上のどこにもOpenVGの例はほとんどありません。瞬く間に何百ものOpenGLチュートリアルを見つけることができますが、OpenVGは著しく欠落しているようです。 ハードウェアアクセラレータを使用したベクトルは、解像度が急速に向上する今日の世界でより重要になると思われます。多くの企業が独自の方法でこれを実装しているようです。たとえば、QtとFlashにはハードウェアアクセラレーションベクターのスキームがあり、アドビのツールの多くにはオプションとしてハードウェアアクセラレーションがあります。しかし、標準がすでに存在する場合、ホイールは再発明されつつあるようです! OpenVGが実世界での使用に適していないことについて、私が不足しているものはありますか?それとも、標準が間に合わなかっただけで、今ではあいまいになっているのでしょうか?将来、ハードウェアアクセラレーションベクターグラフィックス用の標準化されたAPIの余地があると思いますか、それとも従来のラスターベースの技術を使用する方が簡単でしょうか?それとも、ベクターは、出入りする前に単に出て行くところにありますか?

1
1Dデータ構造を2Dグリッドとして扱う
2Dイメージを1D配列として表すネイティブクラスを使用しています。たとえば、1つのピクセルを変更する場合は、x,y座標からインデックスを取得する方法が必要になります。 したがって、次のarray1dような1D配列があるとします。 array1d = [ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y ] プログラムのコンテキストでarray1dは、2Dグリッドを表します。 a b c d e f g h i j k l m n o p q r …

6
グラフィックデザイナーと仕事をする正しい方法は何ですか?[閉まっている]
最近、グラフィックデザイナー(クライアントが手配)と協力して、作成したDjango + Bootstrapアプリケーションのスキンを提供しました。デザイナーは、いくつかの技術的属性(フォントサイズ、色、いくつかの寸法など)を説明するドキュメントとともに、新しいレイアウトの一連の静的画像を提供しました。 これを実装するには非常に時間がかかることが判明しました。サイト全体は基本的にフロントページ、インデックスページ、および6つの詳細ページでしたが、CSSとHTMLの変更を実装するだけで少なくとも5日間を費やしました。それで、私は手足に出て、これを間違った方法と呼びます。 私の基本的なアプローチは: 静的な画像と現在のレンダリングを比較して、違いに注目してください。 CSS / HTMLでどのような変更が必要かを推測します その変更を行う 手順1に進みます。 特定の問題のいくつかは、デザインに8列から12列への変更が含まれていることを理解していないことでした。ピクセルパーフェクトレンダリングなどを実現するために通常のCSSレスリングを使用します。また、特定の動作を得るために、HTMLテンプレートを再編成しなければならない場合がありました。 正しい方法は何ですか?

6
描けない。洗練されたアプリケーションを作成するにはどうすればよいですか?
私はグラフィックデザイナーではありません。私は何かを描くのがかなり苦手です。開発ツールにバンドルされている「サンプル」アプリケーションと同じくらい見栄えの良いものを構築するのに苦労しています。主に、私はアートアセットのやり方にしゃがんでいないからです。 これを軽減するためにどのような戦略をとればよいですか?
41 graphics 

7
パフォーマンスのためにCで作成しますか?[閉まっている]
Cは通常C ++よりもパフォーマンスが優れているとよく耳にします。MSVCがCの最新の標準をサポートしていないように思えるまで、それ以外のことは何も考えていませんでしたが、最新のものはC99をサポートしています(私の知る限り)。 OpenGLでレンダリングするためのコードを含むライブラリを作成して、再利用できるようにすることを計画していました。グラフィックに関しては、パフォーマンスの向上を歓迎するため、ライブラリをCで作成することを計画していました。 しかし、それは本当に価値があるでしょうか?ライブラリを使用するコードはおそらくC ++で書かれているため、一般的にはC ++でコーディングすることを好みます。 ただし、パフォーマンスにわずかな違いさえ生じる場合は、Cを使用します。 また、このライブラリは、Windows / OS X / Linux全体で動作するようにするものであり、すべてをネイティブにコンパイルする可能性があります(Windows用のMSVC、OS X用のClangまたはGCC、およびLinux用のGCC)。 。またはおそらくすべてのインテルのコンパイラ)。 私は周りを見回し、いくつかのベンチマークなどを見つけましたが、私が見たものはすべて、MSVCとClangではなくGCCを扱っています。また、ベンチマークでは使用言語の標準については言及していません。誰もこれについて考えていますか? 編集:数年以上の経験を経て、この質問に対する私の見解を共有したかっただけです。C ++でこの質問をしていたプロジェクトを書くことになりました。私は、Cでリンクできるようにするために、できる限り少量のパフォーマンスを引き出したいと考えていたのと同じ頃に、Cで別のプロジェクトを開始しました。数ヶ月前、私は本当にマップと高度な文字列操作。私はC ++標準ライブラリのこの能力を知っていて、最終的に標準ライブラリのそれらの構造は、妥当な時間内にCで実装できるマップや文字列よりもパフォーマンスが高く安定しているという結論に達しました。Cでリンク可能であるという要件は、C ++コードへのCインターフェイスを記述することで簡単に満たされました。これは、不透明(OPAQUE)型で迅速に行われました。C ++でのライブラリの書き換えは、Cでの書き込みよりもはるかに高速であるようで、バグ、特にメモリリークが発生しにくい傾向がありました。プラットフォーム固有の実装を使用するよりもはるかに簡単な標準ライブラリスレッドライブラリを使用することもできました。最終的には、C ++でライブラリを作成することで、パフォーマンスコストをわずかに抑えながら大きなメリットを得ることができたと思います。私はまだC ++バージョンのベンチマークを行っていませんが、私が書いたものよりも標準ライブラリのデータ構造を使用することで、ある程度のパフォーマンスを得た可能性さえあると信じています。ライブラリをC ++で記述すると、パフォーマンスコストはおそらくわずかですが、大きなメリットが得られたと思います。私はまだC ++バージョンのベンチマークを行っていませんが、私が書いたものよりも標準ライブラリのデータ構造を使用することで、ある程度のパフォーマンスを得た可能性さえあると信じています。ライブラリをC ++で記述すると、パフォーマンスコストはおそらくわずかですが、大きなメリットが得られたと思います。私はまだC ++バージョンのベンチマークを行っていませんが、私が書いたものよりも標準ライブラリのデータ構造を使用することで、ある程度のパフォーマンスを得た可能性さえあると信じています。

4
完璧なクロスフェード
この問題を言葉で説明するのは難しいと思うので、それを説明するためにビデオ(45秒)を作成しました。ここに質問のプレビューがあります、Vimeoでそれを見てください:http : //vimeo.com/epologee/perfect-crossfade 過去10年間、多くの分野で2つの画像または形状の完璧なクロスフェードまたはディゾルブを作成する問題が繰り返し発生しました。最初はビデオ編集で、次にFlashアニメーションで、そして今はiOSプログラミングで。Googleでグーグル検索を開始すると、多くの回避策が見つかりますが、今回はハックせずにこれを解決したいです。 要約: 結果の透明度をどちらか一方のオリジナルと一致させる場合、2つの半透明の同色のビットマップをクロスフェードする際に適用する手法または曲線の名前は何ですか? フェード中に必要な部分的な透明度/アルファ値を計算する(数学的な)関数はありますか? これらの関数をに似たプリセットとして持っているプログラミング言語ease in、ease outまたはease in outActionScriptやCocoaにある関数はありますか? 更新:ビデオに加えて、サンプルプロジェクト(XcodeとiOS SDKが必要)を作成し、githubに投稿しました。ビデオと同じアニメーションを示していますが、今回は正方形を使用しています:https : //github.com/epologee/StackOverflow-Example-Code

3
OpenGLのグラフィックコードで最も効果的な自動テストをどのように単体テストまたは実行しますか?
C ++でOpenGLの上にゲームとそれに付随するグラフィックエンジンを書いています。また、優れたコーディングプロセスと自動テストのファンでもあります。出力は多くの場合視覚のみであるか、非常に視覚指向であるため、グラフィックスコード+テストは非常に混同しにくいようです。 たとえば、画面にバイト単位でレンダリングされる生の画像ストリームを分析することを想像してください-比較するテストデータが必要で、作成/取得が難しく、レンダリングされた画像はしばしば同じではありません異なる時間に実行する場合のバイトレベル-アルゴリズムの小さな変更は、このアプローチを完全に破壊します。 視覚的な単体テストスイートを作成することを考えています。基本的に、さまざまなテストシーンをレンダリングし、シャドウマッピング、アニメーションなどのようなものを表示できます。CIの一部として、これらのシーンはビデオにレンダリングされます異なるメトリックのファイル(または実行可能ファイルとして残すこともできます)。ビデオファイルの手動検査が必要になりますが、少なくともある程度自動化および標準化されます。 どう思いますか?もっと良い方法がありますか?

2
オープンソースプロジェクトのロゴとグラフィックの取得[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 私は約2年間、オープンソースプロジェクトに取り組んでいます。 Webサイトを作成したいのですが、基本的に予算はゼロです。ロゴも必要です。 私の質問:オープンソース開発者は、多額の費用をかけずにプロジェクトの「視覚的魅力」をどのように改善すべきでしょうか?時間を寄付してくれるグラフィックデザイナーはいますか?どのようにしてそれらを見つけるか(存在する場合)。 プロジェクトでは、多くの時間を費やします。見栄えの良いWebサイトを提供して、人々の目を引くようにします。一方、無料で提供しているものにお金をかけたくありません。 誰かが共有できる個人的な経験はありますか?


16
2点で長方形を定義する背後にある考え方は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 これが意味をなさないということではありませんが、99%の時間でうまくいきません。 多くの場合、2Dグラフィックスでは、長方形はポイントのペアとして初期化、保存、および操作されます。特定の言語ではなく、 class Rect: p1, p2: point 次のように、長方形を2つのx値と2つのy値として定義する方が理にかなっています。 class Rect xleft, xright: int ytop, ybottom: int 2つのポイントで、ソースコードのどこかでトップのy値を使用したい場合は、rect.p1.y(hmmm、stop and think、p1またはp2)を言う必要がありますが、 4つの値をプレーンデータメンバーとして、明確かつ直接的なものにします。rect.ytop(思考は不要です!)2つのポイントを使用することは、垂直を扱う際に水平を絡ませる必要があることを意味します。独立した要素間には無関係な関係があります。 この2点のアイデアはどのようにして生まれたのですか?裸のx座標とy座標よりも利点がありますか? 追記:この質問は、ウィンドウマネージャーやGUIツールキットなどのXYに配置された四角形のコンテキストに関するものであり、描画および描画アプリの任意の図形のコンテキストではありません。

5
バックエンドは良いが、フロントエンドは悪い
Web開発を開始したいのですが、PHPを学んでいます。 Java、Python、およびC ++の 経験があります。この経験により、Web開発のバックエンド側が得意になりました。 しかし、私はデザインとグラフィックスがひどいです。 ウェブサイトを始めたいです。 あなたは私が何を提案するのですか? あなたの提案がグラフィックスをより良くすることである場合、何が良い方法でしょうか? また、デザインやグラフィックスに使用しているものを知りたいのですが、そのための良い学習スポットは何ですか?

3
低レベルのLinuxグラフィック
教育目的のために、キーボードイベントを処理し、XやSDLなどの大きな依存関係なしにグラフィックスを描画できるLinux環境でアプリケーションを作成したいと思います。XとSDLは単なるプログラムなので、環境に固有の他の方法に依存する必要があるため、これは可能であると思います。この理解は正しいですか? もしそうなら、私はそのようなプログラムを書くことをどこで学ぶことができますか?私の限られた経験から、カーネルの呼び出しや特殊ファイルへの書き込みが必要になることがわかりました。しかし、私はその問題に関するチュートリアルを見つけることができませんでした(私はGoogleにとって何もわかりません)。 また、関連がある場合は、VirtualboxでDebian Squeezeを実行しています。私はネットワーキングなしでnetinst cdを使用したので、現時点ではあまりインストールされていません。インストールしgccますが、これ以上何もせずに済むことを願っています。
11 linux  graphics 

1
グラフィックプログラマーは、イメージを変更しない頂点のレンダリングをどのように処理しますか?
したがって、タイトルは少し厄介です。背景を説明してから、質問をします。 背景:私はWeb GISアプリケーション開発者として働いていますが、暇なときに地図のレンダリングを試したり、データ交換フォーマットを改善したりしています。私は2D空間でのみ作業します。 私が遭遇した興味深い問題の1つは、小さなスケールでポリゴンをレンダリングしている(ズームアウトした)ときに、頂点の多くが冗長になることです。極端なケースは、1つのピクセルのみを占める500,000の頂点を持つポリゴンがある場合です。このデータをブラウザーに送信する場合は、これらの頂点の〜499,999を省略しても意味があります。これを実現する1つの方法は、サーバーで画像をレンダリングし、それをPNGとして送信することです。ただし、インタラクティブにできるように、データをブラウザに送信してSVG(またはキャンバス、またはwebgl)でレンダリングできるようにする場合もあります。 問題:最新の地理データセットを使用すると、SVGのレンダリング機能を非常に簡単にオーバーロードできることがわかります。これらの制限に対処するために、特定の縮尺とマップ範囲(および必要に応じて、既知のマップピクセルの幅と高さ)のデータセットを視覚的にロスレスで削減する方法を理解しようとしています。 Douglas-Peuckerアルゴリズムを使用しただけでデータサイズが大幅に削減され、ポリゴンを1ピクセル以内に収めることができたと思います。残念ながら、Douglas-Peuckerはトポロジを保持しないため、ポリゴン間の境界線のレンダリング方法が変更されました。他のアルゴリズムを簡単に試して目的に適応させることはできませんでしたが、CS /アルゴリズムの背景があまりなく、見た場合に認識できない可能性があります。

3
画像モザイクを作成するためのアルゴリズム-これよりも速い方法はありますか?
私は画像モザイクの作成に取り組んできました。私のスクリプトは多数の画像を取得し、それらをサムネイルサイズに縮小してから、それらをタイルとして使用してターゲット画像を概算します。 アプローチは実際にはかなり楽しいです: すべてのタイル位置のすべての親指の平均二乗誤差を計算します。 最初は貪欲な配置を使用しました。エラーが最小の親指をタイルに最も適したタイルに配置し、次に親指を配置します。 貪欲の問題は、あまり一致しないかどうかにかかわらず、最も人気のないタイルに最も異なる親指を配置することになるということです。ここに例を示します:http : //williamedwardscoder.tumblr.com/post/84505278488/making-image-mosaics そのため、スクリプトが中断されるまでランダムスワップを実行します。結果はまったく問題ありません。 2つのタイルのランダムスワップは必ずしも改善されるとは限りませんが、3つ以上のタイルのローテーションによって全体的な改善がもたらされるA <-> B場合がA -> B -> C -> A1あります。 このため、ランダムなタイルを2つ選んで改善されないことがわかった後、タイルの束を選び、そのような回転で3番目のタイルになるかどうかを評価します。4つのタイルの任意のセットを有利に回転できるかどうかなどは検討しません。それはまもなく超高額になるでしょう。 しかし、これには時間がかかります。 より良い、より速いアプローチはありますか? バウンティ更新 ハンガリー語メソッドのさまざまなPython実装とバインディングをテストしました。 はるかに高速だったのは、純粋なPython https://github.com/xtof-durr/makeSimple/blob/master/Munkres/kuhnMunkres.py 私の直感は、これが最適な答えに近いということです。テストイメージで実行すると、他のすべてのライブラリが結果に同意しましたが、このkuhnMunkres.pyは桁違いに高速でしたが、他の実装が同意したスコアに非常に非常に近づいています。 速度はデータに大きく依存します。モナリザは13分でkuhnMunkres.pyを駆け抜けましたが、スカーレットチェステッドインコは16分かかりました。 結果は、インコのランダムスワップとローテーションとほとんど同じでした。 (左側はkuhnMunkres.py、右側はランダムにスワップ、比較のための元の画像) しかし、私がテストしたモナリザの画像で​​は、結果が著しく改善され、彼女は実際に彼女の定義された「笑顔」を輝かせていました: (左側がkuhnMunkres.py、右側がランダムスワップ)

7
ポリゴンの代わりに何兆もの「原子」をレンダリングしますか?
パブリッシャーが「3Dの発明後の次の主要なステップ」と呼ぶものについてのビデオを見たところです。その中で話をしている人によると、彼らはポリゴンの代わりに雲にグループ化された膨大な量の原子を使用して、無制限の詳細レベルに到達します。 彼らはビデオをレンダリング技術の知識がない人にも理解できるようにするために最善を尽くし、そのため、または他の目的のために、エンジンの動作の詳細をすべて省略しました。 彼らのビデオの細部のレベルは私にはかなり印象的に見えます。 現在のハードウェアでポリゴンの代わりにカスタムアトムを使用してシーンをレンダリングするにはどうすればよいですか?(速度、メモリに関して) これが本当なら、なぜ今まで誰もそれについて考えさえしなかったのですか? 私はOpenGL開発者として、これに本当に困惑しており、専門家の意見を聞きたいと思っています。したがって、私もこれが安い広告のように見えたくないので、コメントセクションに、要求された場合にのみビデオへのリンクを含めます。
9 graphics  3d  atom 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.