問題タブ [pixelformat]
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.
directx - 新しいTexture2Dを作成するときにピクセル形式を選択するにはどうすればよいですか?
SharpDX Toolkitを使用していて、Texture2Dをプログラムで作成しようとしているので、すべてのピクセル値を手動で指定できます。そして、それを作成するためのピクセル形式がわかりません。
SharpDXは、ツールキットのPixelFormatタイプについても文書化していません(別のPixelFormatクラスの文書はありますが、ツールキットではなくWIC用です)。ラップするDirectX列挙型DXGI_FORMATを見つけましたが、そのドキュメントには、フォーマットの選択方法に関する有用なガイダンスがありません。
私は、カラーチャネルあたり8ビットと8ビットアルファを備えた古い32ビットビットマップ形式に慣れています。これで十分です。ですから、最も簡単な選択肢はR8G8B8A8またはB8G8R8A8だと思います。どちらを選ぶかは重要ですか?両方ともすべてのハードウェアで完全にサポートされますか?
そして、それらの1つを選択した後でも、それがSInt、SNorm、Typeless、UInt、UNorm、またはUNormSRgbのいずれであるかをさらに指定する必要があります。sRGB色空間は必要ありません。Typelessが何のためにあるのかわかりません。UIntは最も単純なように見えますが、単純な古い符号なしバイトですが、機能しないことがわかりました。エラーは発生しませんが、テクスチャが画面に何も描画しません。UNormは機能しますが、UIntが機能しない理由を説明するドキュメントはありません。だから今、私はUNormが他のビデオカードでは動作しないかもしれないという妄想を抱いています。
誰かがそれを見たいのなら、これが私が持っているコードです。SharpDXフルパッケージをダウンロードし、SharpDXToolkitSamplesプロジェクトを開き、SpriteBatchAndFont.WinRTXamlプロジェクトに移動し、SpriteBatchAndFontGameクラスを開き、示された場所にコードを追加します。
これにより、画面の左上に対角線のある小さな長方形が描画されます。テストしているラップトップで動作しますが、それがどこでも動作するかどうかを知る方法も、最もパフォーマンスが高いかどうかもわかりません。
アプリがすべてのハードウェアで動作することを確認し、最高のパフォーマンスを得るには、どのピクセル形式を使用する必要がありますか?
c# - より良いPixelFormat.ToString出力
System.Drawing.Imaging名前空間からのPixelFormat列挙には、 ToStringメソッドを呼び出すときに表示されるFormat32bppArgbやFormat8bppIndexedなどのメンバーがあります。
PixelFormat値を24BPPや24bppなどのグラフィックプログラムでの表示により適した文字列に変換する組み込みまたはその他の方法を知っていますか?
opengl-es - 透明なEAGLViewによるfpsの大幅な低下
私はCocos2dプロジェクトを持っており、アプリ全体で一定のバックグラウンドが必要です。そのデリゲートのapplicationDidFinishLaunching
方法で、私は次の行を置き換えました:
glViewのpixelFormatをからkEAGLColorFormatRGB565
に変更しましたkEAGLColorFormatRGBA8
。その変更を行うと、glViewは透明になり、透けて見えますが、fpsは劇的に低下します。その変更を行わないと、ビューは透明になりませんが、fpsの大幅な低下は見られません。59.0〜60.0から約35.0〜42.0へのfpsの大幅な低下について話しています。
ビューを透明にするために、上のaddSubview行のすぐ下にあるこのコードを使用しています。
applicationDidFinishLaunchingメソッド全体は次のようになります。
なぜこれが起こっているのかについてのアイデアはありますか?必要に応じて、より多くのコードを提供できます。
私が行ったもう1つのコード変更について言及するのを忘れました。CCDirector.msetGLDefaultValues
で、この行を次のように変更しました。
これに:
python - 新しい pygame サーフェスは .convert() する必要がありますか?
新しい Pygame サーフェスを作成する場合:
.convert()
ピクセル形式を変更するには、それを呼び出す必要がありますか?それとも、作成時に既に行われていますか?
textures - Ogre3D のキュービック テクスチャとピクセル フォーマット
Ogre マテリアル ファイルでは、キュービック テクスチャは次のように定義されています。
これは、通常のテクスチャのようにピクセル形式を設定できないということですか?
wpf - ファイル PixelFormat からの BitmapImage は常に bgr32 です
次のコードを使用して、ファイルから画像をロードしています。
ロードしている画像の種類 (24 ビット RGB、8 ビット グレー、12 ビット グレーなど) に関係なく、.EndInit() の後、BitmapImage は常に bgr32 形式であるという事実を除いて、期待どおりに動作します。ネット上で議論があったことは知っていますが、この問題の解決策は見つかりませんでした。まだ解決されているかどうか知っている人はいますか?
ありがとう、
タビナ
wpf - BitmapSource からの BitmapImage は常に Bgr32
BitmapSource から BitmapImage をロードしていますが、BitmapImage のフォーマットが BitmapSource の Bgra32 ではなく Bgr32 であることが常にわかります。ここに同様のスレッドがあります: BitmapImage from file PixelFormat is always bgr32
しかし、スレッドで提案されているように、 BitmapCreateOptions.PreservePixelFormat を使用してもうまくいきませんでした。ここに私がやっていることがあります:
BitmapSource から BitmapImage を作成し、アルファ チャネルを維持する方法はありますか?
更新: 他のスレッドに投稿された同じコードを使用してファイルから testbmp2.bmp をロードしました。ロード後、Format プロパティは Bgr32 です。
だから多分私は FileStream/MemoryStream を正しく保存していませんか? FileStream を保存した後、Photoshop で testbmp2.bmp を開いてアルファ チャネルを確認できるため、これは正しくないようです。
更新 2: 私が抱えている問題を言い直す必要があると思います。テクスチャの個別のチャンネルを表示しようとしています。Image コントロールを介してビットマップを表示しています。チャネル ベースのユーザー入力をマスクする Image の Effect プロパティに割り当てられた単純な HLSL コンパイル済みシェーダーがあります。アルファ チャネルを保持しながら BitmapSource を BitmapImage に取得できないことは、問題の一部に過ぎませんでした。元の BitmapSource の Format は Bgra32 だったので、それを Image の Source プロパティに直接割り当てることができることに気付きました。問題は、Image オブジェクトが事前に乗算されたアルファを持つテクセルのみを表示することです...? ここに私のシェーダーコードがあります:
私はそれをかなり広範囲にテストしましたが、outCol 値が適切に設定されていることを確信しています。(1.0, 1.0, 1.0, 0.0) のチャネル マスク値を渡すと、表示されるイメージは RGB チャネルで、アルファの領域が黒く描画されます。 RGBチャンネルに。事前に乗算されたアルファなしで Image に BitmapSource を表示する方法を知っている人はいますか? もっと言えば、アルファの事前乗算が発生する前にエフェクトにテクスチャを受け取る方法はありますか? どのような順序で処理が行われるかはわかりませんが、テクスチャが s0 レジスタに書き込まれ、シェーダーが処理を開始する前に事前乗算が行われるようです。
android - SurfaceView PixelFormat の混乱
SurfaceView PixelFormat の問題に関して誰かが私を助けてくれれば幸いです。RGBA8888 が最高の品質を提供することはわかっていますが、少しパフォーマンスも必要です。RGBA4444 が非推奨であることは知っていますが、現在、私のニーズの品質とパフォーマンスに最適です。透明度のあるビットマップがあり、SurfaceView PixelFormat を RGBA4444 に設定すると機能しません。エラーも何もありません。ビットマップが存在しません。RGBA8888 または TRANSPARENT に設定すると、すべて問題ありません。
RGBA4444 が機能する必要があります - なぜ機能しないのですか? バックグラウンドで何が起こっているのですか? バックグラウンドで行われている他の面白いことはありません。surfaceCreated メソッドでキャンバスを描画する単純な SurfaceView だけです。
ありがとうございました!
PS は、考えられるすべてのビットマップのバリエーション (32 ビット、16 ビット、8 ビットなど) を使用しようとしました。