問題タブ [render-to-texture]
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.
iphone - OpenGL ES テクスチャは置換ではなく結合します (シミュレータではなくデバイスで動作します)
UIView を OpenGL テクスチャに繰り返しレンダリングしています。デバイスは正常に動作しています (テクスチャは期待どおりに更新されます)。シミュレーターでは、テクスチャは最初は正しい (正しいアルファと色) ですが、その後のテクスチャの更新は、既存のテクスチャを置き換えるのではなく、既存のテクスチャと結合しているように見え (既存のテクスチャに「貼り付けられた」ように)、徐々に醜い混乱を引き起こします。
いくつかの(おそらく)関連するコンテキスト:
- OpenGL ES 1.1 を使用しています
- 2007 MBP (Radeon X1600 ビデオ) の OSX 10.6.8 で Xcode 4.0.2 (ビルド 4A2002a) を実行しています。
- プロジェクトは iOS SDK 4.3 を使用し、デプロイ ターゲットは iOS 4.0 です。
ビューをテクスチャにレンダリングするコードを次に示します (同じコードが最初のレンダリングとその後の更新を担当します)。
最初はシミュレーターとデバイスの違いを気にしていませんでしたが、今はシミュレーターを使って説明動画を作る必要があります。
(興味深いことに、シミュレータ デバイスが iPhone (retina) に設定されている場合よりも iPhone に設定されている場合、上書きには追加の RGB ノイズがあります)
iphone - レベルの静的部分を事前に描画する
私はそれらのレベルを提示するためにタイリングエンジンを使用しているレベルベースのゲームを持っています。レベルの大部分は、地面や空のようにレベルを通して静止したままです。
タイルデータからレンダリングテクスチャに地面と空を事前にレンダリングし、フレームごとにプレハブの束を描画するのではなく、フレームごとに描画することを考えました。
レベル全体が常に表示されるので、描画されないものについての心配はありません。
私が見ることができるレンダリングテクスチャの唯一の欠点は、プレハブが小さく、あちこちにコピーされているのに、メモリ内のスペースが必要になることです(グラフィックの1つですが)。
何が良いですか?全体を事前に描画しますか、それともすべてのプレハブをフレームごとに描画しますか?
opengl-es - cocos2dx のクワッド画面サイズの glOrtho のパラメータ
2048x2048 のレンダリング テクスチャを作成し、レンダリング テクスチャ全体を覆うサイズ 2048x2048 のスプライトをレンダリングしています。glOrtho(..) のパラメータはどのように計算されますか? glOrtho((float)-1.0f , (float)1.0f , (float)-1.0f , (float)1.0f, -1, 1) は、サイズ 1024x768 および 512x512 のスプライトで機能します。レンダー ターゲットの最大解像度の制限は何ですか?
ios - iOS OpenGL ES でのテクスチャへのレンダリング — シミュレーターでは機能しますが、デバイスでは機能しません
iPad 用の OpenGL ES アプリケーションのパフォーマンスを向上させるために、めったに更新されないがレンダリング時間のかかる要素をテクスチャに描画することを計画していたので、要素を再描画する必要がない限り、テクスチャをそのまま使用できます。ただし、テクスチャはシミュレータとデバイスの両方で正しくマッピングされますが、実際にテクスチャにレンダリングされるのはシミュレータだけです。
以下は、プロジェクトに追加したコードです。シーンのセットアップ中に、必要なバッファーとテクスチャを作成します。
新しい FBOの AglFramebufferStatusOES
は (もちろんアンバインドされる前に)、シミュレーターとデバイスの両方で「framebuffer complete」の戻り値を生成します。テクスチャが実際にレンダリングされていることを確認するために、テクスチャにピンクのクリア カラーを設定していることに注意してください。問題は、実際にはテクスチャがまったく描画されないことです。
テクスチャを再描画する必要があるときはいつでも、要素をレンダリングする前にこれを行います。
実際のレンダリング後は次のようになります。
最後に、画面が再描画されるたびに、次のように、テクスチャを画面上の適切な位置にあるクワッドにマップします。
iPhone および iPad シミュレーター (4.2、4.3) では、コードは期待どおりに機能します。動的にレンダリングされたテクスチャがそれぞれの位置に表示されます。もちろん、デバッグ ステートメントにより、背景が透明ではなくピンクになります。ただし、私の iPad 4.2 デバイスでは、ピンク色の四角形のみがレンダリングされ、レンダリングからテクスチャへのステップで描画されるべきものはレンダリングされません。したがって、テクスチャは画面に正しくレンダリングされますが、何らかの理由で、デバイス上でテクスチャへのレンダリング コードが実際にテクスチャに何もレンダリングできません。
デバイスで利用できない機能を使用しているか、どこかで誤った仮定をしていると思いますが、それが何であるかわかりません。また、OpenGL ES アナライザーで実行してみましたが、基本的なパフォーマンス最適化のヒントしか得られません。どこで問題を探す必要がありますか?
lwjgl - シーンをFBOにレンダリングしようとすると白が返されます
これが私がやろうとしていることです。画像をタイルとして使用して動的に生成された地形を持つLWJGLを使用して2Dゲームを作成しようとしています。正常に動作しますが、ズームしようとすると、タイルの端に暗い色合いが表示され、タイルの間に余分なピクセルが表示されます。ズーム前後のスクリーンショットは次のとおりです。
ズームの前後のスクリーンショット:http://postimage.org/image/rhuc9744/
私は見てみましたが、インターネットで少し集めたところから、ズームがピクセル精度の問題を引き起こしていて、ブレンド後に悪化していることが要点だと思います。タイル間でいくつかのピクセルを重ねることができるというブログを見ましたが、複雑すぎるようです。私はすべてのブレンドオプションを試しましたが、どれも機能しませんでした。だから私は、すべてのタイルをバッファ、FBOにレンダリングし、それを1つの大きなテクスチャとして適用する必要があると考えました。したがって、ズームしても、すべてが1つの巨大な画像になるため、暗いエッジは表示されません。だから私はFBOに関する多くのチュートリアルを読みましたが、それらのすべてではないにしてもほとんどが3Dを対象としており、実際に作業を開始しました。問題は、2Dオルソに適用する場合です。コードが壊れて、私が得るのは白いボックスだけです。私はこの問題に何日も立ち往生していて、グーグルを使って答えを見つけることができないようです。ここ'
このコードは、resource / lamp.pngに画像をロードします。これは任意の.pngファイルであり、FBOにレンダリングしてから、2Dクワッドのテクスチャとして適用します。何らかの理由で、FBOをテクスチャとしてバインドしようとすると、白い空白のクワッドしか表示されません。FBOに正しくレンダリングされていないのか、正しくバインドされていないのかわかりません。draw()メソッドをチェックして、私が何について話しているのかを知ることができます。私が言ったように、私はこの問題で一日立ち往生しているので、どんな助けでも大歓迎です。
resources / lamp.png:http ://s3.postimage.org/rhpdn5ms/lamp.png?noCache=1315464566
shader - テクスチャ OpenGL ES 2.0 へのレンダリング
ハードウェアに最適化された 2D ライブラリを使用して、画像を拡大または縮小しようとしています。今、私は
- 元の画像の読み込み
- 元の画像のコピーを作成する
- 2D ライブラリを使用してコピーを「ズーム」する
- 画像から glTexImage2D を使用してテクスチャを生成する
- 私が描いた長方形にそれらを適用する
(まだ)画像をアップロードできませんが、スクリーンショットへのリンクを次に示します。 http://img.photobucket.com/albums/v336/prankstar008/zoom.png
右側の画像をフレームごとに一定量ズームインおよびズームアウトし、毎回 glTexImage2D を使用してパフォーマンスを低下させるのではなく、テクスチャにレンダリングしたいと考えています。私の質問は
- これはテクスチャへのレンダリングの有効なアプリケーションですか? 明確にするために、2D ライブラリは未加工の RGB(A) データで満たされたバッファーへのポインターを受け取り、2D 操作が適用された新しいデータへのポインターを返します。
- 私の混乱のほとんどは、テクスチャがシェーダーと相互作用する方法に関係していると思います。GLES2 で表面にテクスチャを適用する最も簡単な方法を誰か説明できますか? 私は明らかに何かが機能しており、必要に応じてコードのスニペットを投稿できます。
- また、明確にするために、問題があるかどうかはわかりませんが、これは Android で実行されています。
ありがとうございました。
xna - レンダーターゲットを再利用すると「ペイントがこぼれる」?
次のようなコードがあります。
(注:これは、私が実際に使用しているものではなく、最小限の再現コードに切り詰められています)
コードの 2 番目のブロックの前に aRegularTexture を画面にレンダリングすると、問題なく、そのままの状態で表示されます。しかし、コードの 2 番目のブロックの後にレンダリングすると、aModifiedTexture の内容に設定されます。なんで?(XNA 3.1 を使用)
c++ - OGREで動的テクスチャを作成しているときに間違ったRGBを取得する
こんにちは、鬼のウィンドウの背景として割り当てる動的テクスチャを作成しようとしているときに問題が発生しました。テクスチャの各ピクセルに動的に値を割り当てたいので、このテクスチャを背景として使用します。このコードを使用して動的テクスチャを作成します。
このコードでは、各値に青(R:0 G:0 B:255)を割り当てます。私は青い窓でいっぱいになることを期待していますが、青い背景の代わりに、写真に見られるこの背景を取得します。
青い背景の代わりに、私が得たテクスチャには3つの異なる色のタイプがあり、それらは常に連続して繰り返されます。青いピクセルは真ですが、他の2色も同様に青になります。この問題の原因を見つけることができません。私に何ができる?間違った部分は何ですか?
xna - RenderToSurface で描画中の透明度の問題
RenderToSurface で半透明のオブジェクトを描画しているときに問題に直面しています (デバイス上で直接オブジェクトを描画しているときにファイルを操作している間)。問題は、RenderToSurface でアルファ値が 50% のオブジェクトを描画しているときに、サーフェスをデバイスに描画しているときに、オブジェクトの透明度が無効になることです。私のコードは次のとおりです。
[コード] RenderingSurface.BeginScene(RenderTexture.GetSurfaceLevel(0), ビュー);
RenderSurface は 50% の透明度で同じ形状をしています。
サーフェスを描画するコード。
python - Blenderはテキストファイルに基づいてシーンを生成できますか?
私はPythonで、テクスチャ、温度、標高などの特性を持つ各タイルで10,000タイルの座標平面を生成するプログラムを作成しました。これをプロジェクトで行っており、プロジェクトのこの部分を表示するためのより良い方法は次のようになります。それの3Dレンダリングを表示し、そのために私が知っている最高のプログラムはBlenderです。私はBlender用のPythonでスクリプトを書くことができることを知っていますが、私のPythonプログラムが書き込むテキストファイルに基づいてBlenderがどのように物事を生成できるかわかりません。Blenderがテキストファイルやその他の方法で物を生成できるかどうか、そしてどのように生成できるかを誰かが知っているなら、PythonプログラムをBlenderに書き込むことができれば素晴らしいでしょう!
〜ありがとう