問題タブ [spritebatch]

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 投票する
1 に答える
948 参照

c# - テクスチャをタイリングするより経済的な方法は何ですか?

タイルベースの 2D ゲームを開発しています。skybackground、landbackground、town、UI などのコンポーネントに分割し、各コンポーネントが描画を処理します。描画呼び出しを呼び出す前にspritebatch.Begin()、デフォルト値を使用して、すべてを 1 つのバッチで描画します。

土地の塊を描くために、私はそれがいっぱいになるまで、その領域全体に正方形の土地テクスチャを繰り返し描きます。ただし、まさにそれを行うというspriteBatchモードがあります。linear wrap欠点は、1 つのグローバルspritebatch.begin()を各コンポーネントに何度も分割して設計を変更する必要があることです。

begin()だから私の質問は、テクスチャを手動でタイリングするか、サブコンポーネント間で分割するか、どちらがより良い/より経済的かということend()です?

単一の を分割する必要がある他の問題もありspriteBatch.Begin()ますspriteBatch.Begin()。またはさらに10?それとも100以上?さらに追加することを心配するには、どの規模から始めればよいか知りたいbegins()です。

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

java - libgdx: PerspectiveCamera で SpriteBatch が表示されない

私は OpenGL の基本的な知識を持っていますが、libgdx から始めたばかりです。

私の質問は、まったく同じコードを使用しているのに、 OrthographicCamera から PerspectiveCamera に切り替えるだけで、 SpriteBatches が表示されなくなるのはなぜですか?

私が使用するコードは次のとおりです。

create() メソッド:

そして render() メソッド:

ここで、 resize(int width, int height) メソッドの場合、次のようにカメラをセットアップします。

私はこれを得る:

ここに画像の説明を入力

しかし、カメラの種類を変更すると:

私はこれを得る:

ここに画像の説明を入力

私が尋ねている理由は、OpenGL でテキスト (フォント) を描画する libgdx の組み込み機能が本当に気に入ったからです。しかし、彼らの例では、Font インスタンスにパスする SpriteBatch を使用し、常に Ortho Camera も使用しています。SpriteBatch と Font の描画機能が PerspectiveCamera で動作するかどうかを知りたいです。

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

c# - Viewport.Project の問題

私の XNA ゲームでは、Viewport.Project を使用して、太陽の 3D 座標の 2D 画面座標を取得しています (主に見栄えが良いため)。私はこれを機能させましたが、太陽の反対方向を見ると、そのうちの 2 つ (技術的には 1 つ) が見えます。ここで何が起こっているのかわかりません..

何が起こっているか知っている人はいますか?どうすればこれを防ぐことができますか?

これを視覚化するために、私が話していることのイメージを 次に示します。

これはコードです:

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

c# - XNA-カリングパフォーマンスの問題

私のタイルを描画するこの方法は非常に遅いようです。何が間違っているのか正確にはわかりません。私のカリング方法が機能しておらず、画面外に何かを描画していると信じていますが、完全にはわかりません。ここにあります:

GetTileSetTypesは、DirtBlock_North、DirtBlock_Centerなどのさまざまなテクスチャについて、周囲のタイルを取得する関数です。

タイルコンテンツは、私のブロックテクスチャを含む単なるクラスです。

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

c# - Spritebatch 設定で、後方の面のカリングなどを引き起こしているもの

私が作成したセル シェーダーでは、エッジ検出は 2D テクスチャ/レンダー ターゲットでのみ機能します。そこで、レンダリング メソッドを調整して、テクスチャに設定され、SpriteBatch で描画されるレンダー ターゲットにテクスチャを描画するようにしました。

ただし、SpriteBatch (らしい?) は私の設定を無視しているようです:

明らかにオブジェクトを正しく描画します。しかし、そうではありません。

ここに画像の説明を入力

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

c# - SpriteBatchを使用したXNABlendState

次のように機能するには、BlendStateが必要です。

  • 透明なPNGは期待どおりに描画され、背後にあるものはすべて保持されます
  • Color.WhitePNGをそのまま描画するために使用します
  • 色のアルファチャネルを変更して、テクスチャの「不透明度」を変更します

この効果を得るには、BlendState.AlphaBlendは近いですが、アルファを100または255以外の数値に設定すると、透明な部分として白が描画されます。

だから私たちはこれを試みました:

これは機能しますが、2つのPNGが互いに重なっている場合に望ましくない効果が発生する場合を除きます。基本的に、ピクセルデータが追加されているように見える奇妙な線がいくつか表示されます(または何か)。

例:

ここに画像の説明を入力してください

事実上、BlendState.AlphaBlendこれは次のとおりです。

画像は上より良く見えます:

ここに画像の説明を入力してください

ただし、アルファは機能しません。アルファとして100を使用すると、背景が白に置き換えられます。

BlendStateSpriteBatchから目的の効果を得るには、何を使用する必要がありますか?Color.Black別の方法で機能させるなど、別の色を使用してもかまいません。

Color.Red* PS-もう1つの優れた機能は、テクスチャを「色付け」するために使用できる場合ですが、最初に一般的に機能させたいと考えています。

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

xna - Vector2 (XNA のライブラリから) が int ではなく float を使用するのはなぜですか?

Vector2 (XNA のライブラリから) がintではなくfloatを使用するのはなぜですか?

コンピュータ画面上の位置はピクセル単位で与えられるため、カーソル位置は 2 つの整数で定義できます。半画素なんてものはありません。では、なぜフロートを使用するのでしょうか。

SpriteBatchクラスで、 Draw と呼ばれる 7 つのオーバーロードされたメソッドを見つけまし。それらの2つ:

したがって、 Drawはint座標とfloat座標の両方を受け入れることがわかります。

ゲームのオブジェクトの画面座標を実装しているときに、この問題に遭遇しました。オブジェクトのサイズと画面座標を保持するには、 Rectangleが適切な選択であると想定しました。しかし、今はよくわかりません...

0 投票する
2 に答える
1950 参照

c# - RenderTarget2D は、すべてのアルファ パープルを濃くします

そのため、ゲームプレイを XNA の RenderTarget2D にレンダリングして、シーンにシェーダーを適用できるようにしようとしています。ある程度は機能していますが、255 以外のアルファ レベルで描画されたものはすべて紫色に着色されているようです。アルファ効果は効いていますが、紫がかっています。解決策を探してみましたが、全画面が紫色にレンダリングされているか、アルファが紫色に置き換えられているように見えるだけです。

私の問題は、それらのどちらでもありません...

紫染め!

これは、何が起こっているかを示すために投げたシーンです。ご覧のとおり、アルファ効果は機能していますが、オブジェクトは紫色に着色されています。

レンダリングコードを投稿する部分は次のとおりです。

これは私が使用している初期化です。

renderEffect はエフェクト ファイル、Sprite は想定される画面サイズ (さまざまな解像度に対応するため) に対する描画を処理するクラスです。

私は XNA 3.1 で作業しています。今では 4.0 を使用する必要があることはわかっていますが、特定の状況で役立つ 3.1 に関する本を持っているため、使用していません。

とにかく、ここでいくつかの助けをいただければ幸いです...

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

c# - XNA は参照として SpriteBatch と Content を渡します

最近、MonoMac で XNA を使い始めました。授業に問題があります。テクスチャと位置情報を内部に持つクラスを作成したい。また、描画機能を作りたいです。

私の考えは、spriteBatch と Content を周りに渡して、テクスチャを読み込んで後で描画できるようにすることでした。ただし、このオブジェクトに渡す Content オブジェクトはテクスチャをロードしません。クラス外で Content を試したところ、テクスチャが正常にロードされたので、テクスチャがそこにある必要があります。

これは私がインスタンスを作成する方法です:

多分私は間違ったモデルを使用しようとしています..クラス内でスプライトバッチとコンテンツを使用したくないかもしれませんが、スプライトバッチとコンテンツをグローバルにすることはできますか?

ご協力ありがとうございました

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

android - LibGDX SpriteBatchマルチテクスチャは可能ですか?

LibGDXフレームワークのSpriteBatchクラスをうまく使用しています。私の目的は、シェーダーを介してスプライトの表現を変更することです。

SpriteBatchクラスからデフォルトのシェーダーをコピーし、別の均一なサンプラー2dを追加しました

シェーダーにテクスチャを与えるための実用的な方法はありますか?このようにすると、常にClearColor画面になります。

各テクスチャだけが機能しています。メッシュクラスを使用して手動で描画すると、期待どおりに機能します。では、SpriteBatchの便利さを利用するにはどうすればよいですか?

ヘルプのためのTHX