問題タブ [texture2d]

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 に答える
3516 参照

c# - バイト配列を texture2D XNA に変換する

画像を表すバイト配列があります。

各バイトは、特定のピクセルの R、G、または B の強度値 (0 ~ 255) を表します。したがって、640x480 の画像の場合、バイト配列のサイズは 640*480*3 になります (各ピクセルには、それを表す 3 バイトがあります)。

バイトはピクセル順です。例えば:

等々。

XNAでこれを画面に描画する最も効率的な方法は何ですか?

私の考えは、次のことを行うことです。

  1. 新しい Texture2d オブジェクトを作成する
  2. draw() メソッドの間、バイト配列をループし、Texture2D オブジェクトに値を設定します。
  3. この塗りつぶされたオブジェクトを画面に描画します。

これはこれを行うための最速の方法ですか?より効率的であれば、バイト配列を別の順序/形式で格納することもできます。draw() メソッド中にループを実行することの欠点はありますか? update() 中に実行したほうがよいでしょうか?

編集:

バイト配列が更新されるたびに (通常はフレームに 1 回) 新しいテクスチャを作成するために、Texture2D で setData() を使用しようとしました。fps は 15 未満になりましたが、以前は 60 でした。コードは次のとおりです。

draw() サイクルごとに呼び出されます。

確かに、これを行うためのより効率的な方法が必要ですか?

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

android - Android OpenGL ES 2.0 テクスチャ

私は OpenGL ES の世界に入ろうとしてきましたが、今まではすべて問題ありませんでした (次の本「OpenGL ES 2.0 プログラミング ガイド」は素晴らしいです!)。描画したプリミティブにテクスチャを追加しようとしましたが、以前のバージョンの OpenGL ES と WebGL を使用して成功しました。

次のようにJavaコード内に「テクスチャ」を配置すると、テクスチャを完全に描画できます。

しかし、外部ファイルからテクスチャを読み込もうとすると、黒く表示されます。以下は、テクスチャをロードして使用するために使用しているコードです。

マイ アクティビティ:

シェーダーローダー:

テキストリーダー:

レンダラー:

そしてもちろん

頂点シェーダー:

フラグメント シェーダー:

そのコードを実行した結果、黒い画面とカスタムログが表示されます

私もlegenを使ってみました...待ってください... dary neheのテクスチャですが、どちらも表示されませんでした

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

c# - XNAの2Dテクスチャのフラッシュのようなグローフィルター

XNAフレームワークを使用して、Flashで行ったのと同様の「グローフィルター」をどのように適用できるのでしょうか。

これが私が達成しようとしていることの例です:

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

これは、ActionScript3で次のコードを使用して適用されます。

XNAに似たようなものはありますか?

前もって感謝します。

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

xna - jpg Byte[] を Texture2D に変換

関連するメタデータを使用して WP7/XNA アプリに jpeg 画像をインポートする必要があります。これらの画像を管理するプログラムは、jpg ファイルのバイト [] をエンコードした XML ファイルにエクスポートします。

再シリアル化されたオブジェクトを XNA プロジェクトに正常にインポートするカスタム インポーター/プロセッサを作成しました。

私の質問は、jpg の byte[] を考えると、それを Texture2D に変換する最良の方法は何かということです。

どうもありがとうございました。:-)

DS

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

c# - C#/XNA - RenderTarget2D.GetData()、RenderTarget2D.SetData(): フレームごとにテクスチャを複製するのは効率的ですか?

そのため、最後の質問以降、参照の問題を防ぐためにテクスチャを複製することが私の解決策であることがわかりました。しかし、私は質問しています:

まず、1 秒間に 60 回実行した場合、これは効率的ですか? 1 つのテクスチャを設定していますが、私はパフォーマンスに偏執的であり、パフォーマンスを適切または最高の状態に維持したいと考えています。「主に目立つフレームドロップ」などを引き起こしますか?

次に、新しい Color 配列を作成する代わりに、1 つをリサイクルするとパフォーマンスが向上しますか?

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

c# - XNA:テクスチャ2Dアンチエイリアスを縮小しますか?

私はXNAでプロジェクトに取り組んでおり、かなり大きなテクスチャを使用しています。これは、Texture2Dオブジェクトとしてゲームにロードし、ロードされているよりもはるかに小さい画面に描画します。これは、さまざまな場所にさまざまなサイズで描画する必要があります。これは複数のテクスチャで実行できますが、実際には実行できません。

私の問題は、XNAがこれらのTexture2Dオブジェクトを縮小してもアンチエイリアス処理しないように見えることです。私は設定しました:

そしてまた

しかし、役に立たない。また、GraphicsDeviceのフィルターに関連するさまざまなことを試しましたが、正直なところ、自分が何をしているかを実際には知りませんでした。

明らかに、私はこれをspriteBatchを使用して描いていますが、それを除けば、私が描いている方法で特に興味深いものは何もありません。

これが起こっていることの(拡大された)例であり、私が起こそうとしていることは次のとおりです。

実結果 望ましい結果

ご覧のとおり、XNAは、画像を再スケーリングするときにアンチエイリアシングを提供していません。エッジをきれいに見せるために、強制的にそうする方法はありますか?

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

c# - XNAとファイルからの画像の読み込み

ファイルから直接画像をロードする方法を見つけましたが、ロードする画像は青です(元の画像は緑です)。保存方法が悪いと思ったので、フォトショップで保存しましたが、何も変わりませんでした。私のプログラムはうまくいかないと思います。どうすれば変更できますか?ファイルから画像をロードするのに良い方法ですか?texture2dメソッドへのビットマップ:

画像行の読み込み:

テクスチャの描画方法:

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

c# - Content.Load の変更フォーマット

XNA でいくつかのゲームを開発しています。Mono+MonoGame+MonoForAndroid のおかげで、3 つの主要なモバイル プラットフォームすべてで利用できるようになります。問題は、デバイスのクラッシュを避けるためにできるだけ少ないメモリを使用する必要があるため、テクスチャ フォーマット Bgra5551 を使用することを選択したことです。

残念ながら、コンテンツ マネージャーは、Load メソッドを呼び出すときに、テクスチャ (A8R8G8B8) にカラー フォーマットを使用します。

私の質問は、どうにかして Content.Load を使用して 5551 テクスチャを取得できますか?

32 ビット テクスチャを 16 ビット テクスチャに変換するコードは既にあります。Load メソッドをオーバーライドする方法を考えていましたが、何も見つかりませんでした。

どうすればいいですか?

どうもありがとうございます、

-ニコラ・マルケサン

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

c# - XNA-HeightDataからheightMapimg

こんにちは私はメモリにheightDataを持っています、そして時々(私がそれを編集するとき)私はそれをjpgに保存したいです。これは私のコードです:

私はheightMapColorsにデータがあると100%確信していますが、保存されたjpgは黒だけです。:/それはそれを行う良い方法ですか、それとも何かが間違っていますか?

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つの優れた機能は、テクスチャを「色付け」するために使用できる場合ですが、最初に一般的に機能させたいと考えています。