問題タブ [textures]
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 - PVRTC テクスチャの使用に関する問題
PNG の代わりに PVRTC 画像を使用しようとしています。問題は、それらを地図で見ることができないことです。
これが私のコードです:
このコマンドを使用して、圧縮テクスチャを作成します。
glGetError()は 1281 を返します (テクスチャのバインドに失敗しました)。ただし、glIsTexture()で確認すると、true が返されます。
何か案は?ああ、私はiPhoneでOpenGL ESを使用しています。
iphone - Quartz はテクスチャ圧縮をどのように処理しますか?
私は iPhone で開発しており、ゲームの大部分は OpenGL ES を使用していますが、CGImage と Quartz を使用して表示するメニューもあります。OpenGL ES では、どのような画像圧縮 (JPG、PNG など) を行っても、テクスチャとしてメモリに格納されたデータは 8 ビット テクスチャであることがわかっています。 2 ビットまたは 4 ビット。大きな CGImage が原因でメモリの問題が発生しているので、私の質問は... Quartz と CGImage はどのような最適化と圧縮を使用するのですか? Appleのドキュメントで詳細を見つけることができません.256色の画像を配置することで違いが生じるかどうか、またはJPGとPNGを2のべき乗で使用する場合に違いがあるかどうかを本当に知りたいのですが、速度は重要ではありません。ここではメモリがボトルネックです。
ありがとう。
opengl - GPU内でテクスチャを作成する方法
誰かplsがOpenGLでテクスチャを作成するためにハードウェアメモリを使用する方法を教えてもらえますか?現在、ゲームをウィンドウモードで実行していますが、ハードウェアを使用するにはフルスクリーンに切り替える必要がありますか?
ハードウェアでテクスチャを作成できる場合、(ハードウェアメモリ以外の)テクスチャの数に制限はありますか?次に、テクスチャをハードウェアにキャッシュするにはどうすればよいですか?ありがとう。
c++ - 任意のサイズの DirectX9 テクスチャ (非 2^n)
私は DirectX に比較的慣れておらず、既存の C++ DX9 アプリケーションで作業する必要があります。アプリはカメラ画像を追跡し、いくつかの DirectDraw (つまり 2d) コンテンツを表示します。カメラの縦横比は 4:3 (常に) で、画面は未定義です。
テクスチャをロードし、このテクスチャをマスクとして使用したいので、コンテンツの追跡と表示は、テクスチャのマスクされた領域内でのみ行われます。したがって、カメラ画像とまったく同じサイズのテクスチャをロードしたいと思います。
テクスチャをロードするすべての手順を実行しましたがGetDesc()
、フィールドWidth
と構造体Height
を呼び出すD3DSURFACE_DESC
と、次に大きい 2 の累乗のサイズになります。テクスチャに使用される実際のメモリがグラフィックス カード用に最適化されているかどうかは気にしませんが、ハードディスク上の元の画像ファイルのサイズを取得する方法が見つかりませんでした。
コードに新しい依存関係を追加せずに、コンピューターのRAMのみにイメージをロードする可能性を検索します(グラフィックカードは必要ありません)。それ以外の場合は、OpenCV を使用する必要があります (追跡に関しては、とにかく良い考えかもしれません) が、現時点では OpenCV を含めないようにしています。
ヒントをありがとう、ノーバート
opengl - アルファテストによるOpenglの選択
私がインターネットで見てきたことから、この問題は私のアプローチでは本当に解決することはできません。
私は現在、シーン内のすべてのオブジェクトに対して選択バッファーパスを使用するプログラムを作成しています。ただし、オブジェクトの1つは、その大部分がアルファ0であるテクスチャです。レンダリング時には正常に機能し、アルファ値は表示されませんが、選択モードでは、アルファテストはスキップされ、マウスを上に置きます。透明な領域は、背後にあるものではなく、オブジェクトを選択します。
選択モードでアルファテストを有効にする方法はありますか?
opengl - OpenGLESテクスチャの2^nピクセルサイズ要件に対処するためのより効率的な方法はありますか?
質問が不明な場合は申し訳ありません。詳しく説明させてください。
サイズが100x200の長方形があり、その長方形に合うグラフィックサイズが100x200です。OpenGLではすべてのテクスチャの幅と高さが2^nである必要があるため、基本的に100x200のグラフィックを128x256の画像に配置します。長方形に必要なテクスチャの一部のみを描画するように要求しただけなので、OpenGLでは正常に機能します。しかし、私を悩ませているのは、128 x 256のテクスチャには、未使用のスペースがたくさんあるということです。
この場合、これらの未使用のスペースを処理するためのより良い方法はありますか?それとも、これが進むべき道であると思われますか?
direct3d - Direct3D テクスチャを更新する最良の方法
CPU で生成された画像を Direct3D 9 でレンダリングする必要がありますが、テクスチャ データをグラフィックス カードに取得する最善の方法がわかりません。多くの方法があるようです。
私の使用パスは、フレームごとに次の行に沿って進みます
- テクスチャを使ってたくさんのものをレンダリングする
- テクスチャのいくつかの部分を更新します (以前のレンダリングで使用された可能性があります)。
- テクスチャでさらにいくつかのものをレンダリングする
- テクスチャの別の部分を更新する
- 等々
これを行うにはいくつかの方法を考えましたが、どれを使用すればよいかわかりません。各方法のベンチマークを検討しましたが、取得した結果が一般的なハードウェアを表しているのか、それとも自分のハードウェアのみを表しているのかを知る方法はありません.
- このタスクのテクスチャに最適なプールは?
- このテクスチャを更新する最良の方法は何ですか?
- 更新する必要があるリージョンごとに LockRect と UnlockRect を呼び出します
- テクスチャ全体に対して LockRect と UnlockRect を呼び出す
- D3DLOCK_DISCARD を使用してテクスチャ全体の LockRect と UnlockRect を呼び出し、RAM からビットマップにコピーします。
- 「更新」する必要があるたびに、まったく新しいテクスチャを作成する
- 1、2、または 3 を使用して D3DPOOL_SYSMEM のサーフェスを更新してから、UpdateSurface を使用してこのサーフェスからテクスチャのレベル 0 を更新します
- 5 と同じですが、RECT を指定して必要な領域全体をカバーします
- 5 と同じですが、更新した地域ごとに 1 つずつ、複数の呼び出しを行います
- おそらく私がまだ考えていないこれを行う別の方法...
更新する領域は通常、テクスチャ全体のサイズに比べてかなり小さいことに注意してください。たとえば、テクスチャが 1024*1024 で、5 つほどの 64*64 領域を更新したい場合があります。
c++ - D3DFMT_UNKNOWNをIDirect3DDevice9::CreateTexture()に渡す
CreateTexture関数を使用してDirectXのメモリにテクスチャを作成する場合、これについてはちょっと疑問に思います。
...そして、D3DFMT_UNKNOWN
正確に何が起こると思われるかをフォーマットで渡しますか?第1レベルまたは第2レベルの表面を取得しようとすると、エラーが発生しますか?失敗することはありますか?グラフィックデバイスは、選択したランダムな形式を選択するだけですか?これにより、異なるグラフィックカードモデル/ブランド間で問題が発生する可能性がありますか?
iphone - iPhone で圧縮テクスチャを使用するにはどうすればよいですか?
プログラムでミップマッピングを使用する方法を教えてくれるチュートリアルはありますか? ミップマップを生成する方法は既に知っていますが、プログラムで pvr ファイルを読み取り、ロードし、使用する方法を知りたいです。
iphone - OpenGLESテクスチャが消えます
OpenGLESビュー(EAGLViews)の切り替えに少し問題があります。EAGLViewにサブビューを追加すると、ビューに表示されているテクスチャが消えます。どうしてか分かりません。テクスチャをロードするためにチュートリアルのコードを使用しています。
ビューがあり、テクスチャを表示しています。次に、addSubviewメソッドを呼び出して、このビューにサブビューを追加します。次に、前のビューに戻りたい場合は、サブビューでremoveFromSuperviewメソッドを呼び出すだけです。そして問題は、スーパービューにはもうテクスチャがないということです。私が何を間違っているのか分かりませんか?
ここにすべてのコードを投稿したくはありません。これはXCodeのテンプレートであり、前述したように、テクスチャの読み込みはインターネット上のチュートリアルから取得されます。
なぜこれが起こっているのかわからない場合は、少なくとも、EAGLViewの切り替えについてのアドバイスとアドバイスをお願いします。(より良い方法がある場合は、addSubviewを実行してからremoveFromSuperviewを実行します)。
どうもありがとう。