問題タブ [2d]
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.
algorithm - 平行四辺形内のランダムポイント
2Dの4点で定義された4辺の凸多角形があり、その中にランダムな点を生成できるようにしたいと考えています。
それが本当に問題を単純化するのであれば、ポリゴンを平行四辺形に制限することができますが、より一般的な答えが好まれます。
ポリゴンの内側に入るまでランダムなポイントを生成することは、実際に予測できない時間がかかるため、機能しません。
language-agnostic - 2Dベクトルの外積の計算
ウィキペディアから:
外積は、3次元ユークリッド空間内の2つのベクトルに対する二項演算であり、2つの入力ベクトルを含む平面に垂直な別のベクトルになります。
定義が3次元(または7次元、1次元および0次元)でのみ定義されているとすると、2つの2次元ベクトルの外積をどのように計算しますか?
私は2つの実装を見てきました。1つは新しいベクトルを返し(ただし、単一のベクトルのみを受け入れます)、もう1つはスカラーを返します(ただし、2つのベクトル間の計算です)。
実装1(スカラーを返します):
実装2(ベクトルを返します):
なぜさまざまな実装ですか?スカラー実装を何に使用しますか?ベクトル実装を何に使用しますか?
私が尋ねる理由は、私が自分でVector2Dクラスを作成していて、どのメソッドを使用するかわからないためです。
java - Java で 2D 画像を高速化する
すでに実装されているパフォーマンス ブースター: - 描画する GraphicsConfiguration の互換性のあるイメージを取得します - 1.5 で OpenGL パイプラインを有効にします: 深刻なアーティファクトのため不可能です
プログラムの主なボトルネックは、数千のタイルで画像を描画することです。残念ながら、それは規則的ではありません。それ以外の場合は、ピクセルを設定してスケーリングするだけです。VolatileImages と独自のレンダリング ルーチンを使用して画像を高速化しました (再描画を無視し、タイマーでそれ自体を描画します)。結果は満足のいくものであり、十分でした。ただし、JMenu がオーバードローされているため、画像の一部に通常どおりホバーする JMenu を選択すると、非常に妨げられます。容認できず、レイアウトを変更できませんでした。
JOGLのGLJPanelを試してみましたが、目に見えるパフォーマンスの向上は見られません。VolatileImages (または GLCanvas のような他の高速化された軽量コンポーネント) を使用して、通常の JMenu 表示を取得する可能性はありますか?
graphics - Photoshop ストローク効果を生成するには?
次の効果をプログラムで再現する方法を探しています。
入力画像を与える:
入力 http://www.shiny.co.il/shooshx/ConeCarv/q_input.png
「ストローク」エフェクトを繰り返し適用したい。
最初のステップは次のようになります:
ステップ 1 http://www.shiny.co.il/shooshx/ConeCarv/q_step1.png
次のような 2 番目のステップ:
alt テキスト http://www.shiny.co.il/shooshx/ConeCarv/q_step2.png
等々。
これには、ある種のエッジ検出と、何らかの方法でエッジをトレースすることが含まれると思います。
これを効率的かつ堅牢な方法で行う既知のアルゴリズムはありますか?
geometry - 小さな正方形で構成された領域を大きな長方形に分割する方法は?
入力として 0 または 1 の値の 2 次元グリッドを取り、その中の重複しないすべての可能な長方形を識別するアルゴリズムを探すには、どこに行けばよいでしょうか?
より実用的な説明: 多数の正方形で表されるグリッドを描画しています。サイクリングに費やす時間を削減するために、できるだけ多くの隣接する正方形を長方形に結合する方法を見つけたいと考えています。各正方形とそれを描画します。
最大の効率は必要ありません。速度がより重要です。
補遺: どうやら私が探しているのはテッセレーションと呼ばれる技術のようです。今、私はこの特定のケースの適切な説明を見つける必要があるだけです.
補遺 2: 「1」の正方形の分布は完全にランダムであるため、「1」の正方形の境界は不規則になり、場合によっては接続すらされません。これらの不規則な形状を識別して、通常の長方形に分割する必要があります。
正解:速度と効率の最適なバランスを得るには、グリッド データを使用して、各ノードのステータス値が空/部分的に満たされている/満たされているクワッド ツリーを埋めるのが最適です。
3d - GPU、古いハードウェア、3D アクセラレーション、ライブラリ
3D アクセラレーションを備えた 2D ライブラリを作成していますが、古いハードウェアで効率的に実行できるようにしたいと考えています。ターゲットモードがサポートしていないオプション/機能を非表示にするための typedef の可能性があります。(エミュレーション機能がオンになっている場合もあります)
古いハードウェアの機能にはどのようなものがありますか? ここに私が知っている質問と事柄のリストがあります。
- タイル、これはサポートされません。古いため、私のライブラリはピクセルアクセスをサポートします
- スクロール付きの単一ピクセル バッファ。例 GBA
- 複数のサーフェスとサーフェス間のクイック ブルト (ストレッチなし)
- 複数のサーフェスとサーフェス間のクイック blt とストレッチ (これはエミュレートされたのでしょうか? HW ストレッチ画像はありますか?)
- HW ピクセル フィル (DX でオプションを見たと思いました)
- HW透明色? (DX仕様で見たような透明感のある色)
- 古いテクスチャは 2 の累乗でした。幅は高さと同じ 2 の累乗である必要はありませんか? (例 64x256)、それらが同じである必要がありますか?
- テクスチャ、新しいハードウェアでは任意の幅と高さを持つことができます (または、これは嘘ですか?)
- テクスチャはクレイジーなフォーマットにすることができます (ARGB 8888、ABGR 8888、ABGR 2 10 10 10)
また、テクスチャ トゥ テクスチャ ブリットを行うことはできませんか? HWのテクスチャAからBへの60x40のコピーのように?また、テクスチャをパレットに入れることはできますか? (私はこれをサポートしません) そして最後に、シェーダーについて覚えておく必要があります 8)
他に何が欠けていますか?
java - What's the best way of reading a sprite sheet in Java?
私は自分の娯楽のために、また Java の 2d API に慣れるために、基本的なスプライト エンジンを作成しています。現在、必要なアニメーションのさまざまなスプライトとさまざまなフレームを表すために、背景が透明な多数の個別の .png ファイルを使用しています。ほとんどの「現実世界」のゲーム開発プロジェクトでは、1 つのファイル内に複数のスプライトまたはアニメーション フレームを含む「スプライト シート」を使用しているようです。また、ネイティブの画像透過サポートを利用するのではなく、スプライト パレットに表示されない任意の色を透過色として指定することがよくあります。このようなファイルをプログラムでどのように管理しますか?
- あるスプライトの開始位置と次のスプライトの開始位置をどうやって知るのですか?
- 透明性をどう扱うか
私がここで考えていなかった他の要因があるかもしれないので、私が物事を考えたり、人々が提案したりしたときに、上記のリストに追加するかもしれません (コメントでそうしてください)。
performance - 画像内の最も近い黒以外のピクセルをすばやく見つける
私は2D画像をランダムにそしてまばらにピクセルで散らばっています。
画像上の点を指定して、背景色(黒)にない最も近いピクセルまでの距離を見つける必要があります。
これを行うための最速の方法は何ですか?
私が思いつくことができる唯一の方法は、ピクセルのkdツリーを構築することです。しかし、私は本当にそのような高価な前処理を避けたいと思います。また、kd-treeは私に必要以上のものを与えてくれるようです。私は何かまでの距離が必要なだけで、これが何であるかは気にしません。
opengl-es - OpenGL を使用した 2D ゲームでの 3D 効果
私は OpenGL ES を使用して 2D ゲームに取り組んでいます。正投影を使用すると、2D が簡単になるためです。ここで、単純な 3D 効果を作成したいと思います。たとえば、Y 軸を中心にスプライトを回転させます (カバー フローのようなもの)。私の理解が正しければ、これはオルソ図法ではできません。残りのコードを台無しにすることなくそれを行うことは可能ですか? フレームの途中で投影を切り替えるように、現在のフレーム画像を背景として扱い、背景の上に 3D のものを描画しますか?
graphics - Windows Mobile に最適な 2D グラフィックス ライブラリは?
タイトルはそれ自体を物語っています...私はそのような別の質問を見つけようとしましたが、存在する場合は見逃していたに違いありません. GAPI を置き換えるコア ライブラリから .net ラッパーまで、あらゆるものを探しています... 素敵な UI を構築するためのものなので、3D は必要ありません...