問題タブ [rendertarget]
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.
c# - RenderTarget2D は、すべてのアルファ パープルを濃くします
そのため、ゲームプレイを XNA の RenderTarget2D にレンダリングして、シーンにシェーダーを適用できるようにしようとしています。ある程度は機能していますが、255 以外のアルファ レベルで描画されたものはすべて紫色に着色されているようです。アルファ効果は効いていますが、紫がかっています。解決策を探してみましたが、全画面が紫色にレンダリングされているか、アルファが紫色に置き換えられているように見えるだけです。
私の問題は、それらのどちらでもありません...
これは、何が起こっているかを示すために投げたシーンです。ご覧のとおり、アルファ効果は機能していますが、オブジェクトは紫色に着色されています。
レンダリングコードを投稿する部分は次のとおりです。
これは私が使用している初期化です。
renderEffect はエフェクト ファイル、Sprite は想定される画面サイズ (さまざまな解像度に対応するため) に対する描画を処理するクラスです。
私は XNA 3.1 で作業しています。今では 4.0 を使用する必要があることはわかっていますが、特定の状況で役立つ 3.1 に関する本を持っているため、使用していません。
とにかく、ここでいくつかの助けをいただければ幸いです...
directx - 画面の一部にのみDirectX11がありますか?
DirectXが画面の半分にしか参加しないウィンドウを設定しようとしています。
スワップチェーンの説明の幅は半分の画面で、ビューポートの幅は半分の画面ですが、レンダリングターゲットを青にクリアすると、使用するように指定した半分ではなく、画面全体が青になります。
c# - RenderTarget2D から Color Array エラーへのレンダリングの保存
そのため、レンダー ターゲットからの結果を色の配列に格納して、反復子で個別に操作できるようにしようとしています。何らかの理由で、以下のコードは配列内のすべての値を R=0、G=0、B=0、A=0 に設定します。まるで初期化されていないかのように。GetData メソッドの使い方が間違っていませんか? それは何か他のものですか?それは非常にカラフルな画像でなければならず、絶対に透明ではありません.
問題は、テクスチャが正しく描画されていないことではなく、レンダー ターゲットを設定せずに (デフォルトのバックバッファを使用して) コードを実行したところ、ゲームは完全に正常に実行されました。
c++ - RenderTarget の切り替え時の OMSETRENDERTARGETS_INVALIDVIEW (DirectX)
後処理に使用するためにテクスチャにレンダリングしようとしていました。私はこのことについて多くのチュートリアルを読み、今自分で試してみましたが、明らかに私は何か間違ったことをしています. 私はすでにこのトピックに関して別の質問をしていましたが、この質問は別の質問であるため、新しい質問を作成することをお勧めします。まず第一に、これらは何度も繰り返されるエラーメッセージです:
と:
このレンダーターゲットの切り替えなどの主要な側面を誤解していると確信しています。私のDirectXデバイスが作成されるとき、私はこれも作成しています:
だから私はShaderResourceViewとRenderTargetViewだけでなく、テクスチャが描画されるこのキューブを描画するための頂点バッファを持つキューブを作成しています。
すべての他のものがこれを使用して描画された後、すべてのフレーム更新で今:
ここでの主なエラーであると推測する depthStencilView を明示的に作成していません。しかし、このようなものを正しく作成する方法がわかりません。これがバックグラウンドでどのように機能しているかについて、私はかなり混乱しています...おそらく誰かがこれを説明したいと思っています。私はここで何かをしていますか、それとも単に間違っていますか? :p
助けてくれてありがとう。
xna - xna 4.0 スプライト + MRT + ピクセルシェーダー
拡散雷のために、色と法線の2つのレンダーターゲットを組み合わせて、結果を画面にレンダリングしようとしています。アイデアは、ピクセル シェーダーのみを含む効果を持つスプライトを使用して、テクスチャのレンダー ターゲットを結合することです。XNA コード:
何らかの理由で spriteBatch.Draw() で使用される rendertarget が結果に影響します。
ピクセル シェーダー:
両方のレンダー ターゲットのアルファ値は常に 1 です。エフェクトに頂点シェーダーを追加すると、結果は黒になります。spriteBatch.Draw() で何の効果もなしにレンダー ターゲットを 1 つ描画すると、各レンダー ターゲットのコンテンツが問題ないことがわかります。私はこれを理解することはできません。何か案は?
graphics - directx 11のgetBuffer()とCreateRenderTargetViewの違いは何ですか?
私は DirectX11 が初めてで、それを学んでいます。(私はopenGLのバックグラウンドから来ました)。
私は混乱しており、次の API 呼び出しが正確に何を行い、それらの違いは何なのかを理解しようとしています。
と
とはどういう意味GetBuffer
ですか? pBackBuffer
では、 inをどのように使用していCreateRenderTargetView
ますか? また、誰かが説明したり、レンダー ターゲット ビューとは何かを説明するリンクを教えてもらえますか? msdn docは私にはあまり意味がありませんでした。
webgl - 新しいバージョンでの粒子システムの問題
雲のようなテクスチャをレンダリングする方法を探していたときに、テクスチャなどを使用して次のフレームのデータを保存する必要があることを理解しました。これをさらに調査すると、パーティクルに FBO と webgl rendertarget を使用するいくつかの例にたどり着きました。素晴らしいように聞こえたとしても、どの例も新しいバージョンの threejs (50 や 51 など) で動作するようです。もし私が three49 に切り替えるなら、それはどうあるべきかをレンダリングするでしょう。
この問題を説明するために、これを作成しました(fiddle):
これは mrdoob が使用するコードでmagicdust
あり、すべてのパーティクルではなく 1 つのパーティクルのみがレンダリングされる様子を確認できます。さらに、https://github.com/mrdoob/three.js/issues/1183の例のすべてではないにしても、ほとんどが機能していません。
だから私の質問は:
- この問題について私に何ができるか教えてもらえますか?
- (タイトルに記載されていなくても)最後のフレームを使用して次のフレームを計算する方法について、基本的でシンプルだが関連性のある例を誰か教えてもらえますか? これは、クラウド シミュレーションに必要なものだと思います。
編集1:
問題を調査したところ、すべてのパーティクルが同じ場所にレンダリングされているようです。また、パーティクル システム オブジェクトのスケールは、1 つの軸または別の軸でのみ移動します。(まるでジオメトリの境界によってそれらが一緒に押されているかのようです...)
これを解決する方法を知っている人はいますか?
編集2:
なんとなくレンダリングされているようですが、バージョンごとに次元や縮尺が異なります。カメラを 0,0,0 の非常に近くに移動し、そこにある場所に移動しましたが、期待どおりの立方体であり、単純な平面でした。three51では、私が使用する必要があるものは、まったくありませんでした。
では、パーティクル システムの操作方法を誰か教えてもらえますか?
resources - RenderTargetViewからShaderResourceViewへ
私はXNA出身で、rendertargetを簡単に作成して、単純な「Texture2D」として使用できました。ID3D11RenderTargetViewオブジェクトとID3D11ShaderResourceViewオブジェクトを作成しました。スプライトをレンダーターゲットに描画し、それをShaderResourceViewとして使用してシェーダーに送信します。
次のようにrendertargetのインターフェイスをクエリしてみました。
上記のコードは、フレームごとにシェーダーに送信したい「リソース」オブジェクトに使用可能な値を生成しません(単純なリフレクションを実行しようとしています)。
gpu - ID2D1DCRenderTarget と ID2D1HwndRenderTarget の比較
一部の GDI/GDI+ コードを Direct2D に移植しようとしていますが、どちらのタイプのターゲット (DC または Hwnd) を使用するのが適切かについてまだ少し混乱しています。 GPU。特に、次の問題が見つかりました。
DCRenderTarget を使用すると、ハードウェア アクセラレーション (またはデフォルト) を使用できません。これは、メモリの保護領域の違反が続いているためです。HwndRenderTarget を使用すると、これは発生しません。
HwndRenderTarget を使用する場合、通常はすべて問題ありませんが、ウィンドウ (ボタンなど) が多数ある場合、KeyPressed メッセージを認識しないメイン ウィンドウへのフォーカスが失われ、Gpu を使用するとパフォーマンスが低下します。多く、アクティブなターゲットの数に大きく依存します (ソフトウェア アクセラレーションを使用している場合は発生しません)。
誰かが同じ問題に遭遇しましたか? それについて何かお勧めできますか?
どうもありがとう!
c# - その場でテクスチャのサイズを動的に変更
画面にレンダリングする前に RenderTarget2D を使用してマップを描画しています。これは、マップ自体が非常に小さなタイルで構成されているためです。したがって、フレームごとにすべてのタイルをバッファーに描画するのではなく、それらを RenderTarget2D に描画し、それをバッファーに描画します。
私の質問は、RenderTarget2D の「テクスチャ」に関するものです。プレーヤーがウィンドウのサイズを変更する場合、少なくとも少しは再生できるようにしたいのですが、寸法に関して RenderTarget2D オブジェクトを変更する適切な方法は何ですか?
現時点では、ウィンドウのサイズが変更されるたびにオブジェクトを再作成しているだけですが、これは問題ないかもしれませんが、安全であることを確認する必要があると考えました。