問題タブ [z-order]

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 投票する
4 に答える
4778 参照

opengl - OpenGL では深度テストがデフォルトで反転されていますか、それとも間違っていましたか?

私は OpenGL を丸 1 週間、またはそれと同等のもので遊んでいます。2Dの次は3Dに挑戦中です。http://johnnylee.net/projects/wii/の 3 番目のビデオで見られる 3D シーンを再現したいと思います。
テクスチャと深度ですべてを適切に機能させるのに苦労しました。

最近、視覚的に同じ影響を与える2つの問題が発生しました。

  • 2D で見つけた手法を使用しても、3D ではうまくブレンドできないテクスチャを持つもの。
  • オブジェクトが上から下に表示されるもの。ここで公開されている問題のように: OpenGL の深度バッファ

私は両方の問題を解決しましたが、特に 2 番目の点について、問題が解決したかどうかを知りたいです


最初のものについては、私はそれを持っていると思います。ディスクの外側にアルファがある丸いターゲットの画像があります。OpenGL内で問題なくロードされます。(Z オーダーの問題により) その背後にある他のターゲットの一部は、ペイントに使用した自然に正方形の四角形の透明な領域によって隠されていました。

その理由は、深度バッファに関して、テクスチャのすべての部分が完全に不透明であると想定されているためです。glEnable(GL_ALPHA_TEST)をテストで使用するとglAlphaFunc(GL_GREATER, 0.5f)、テクスチャのアルファ レイヤーがピクセルごとの (ブール値) 不透明度インジケーターとして機能するため、ブレンドがまったく役に立たなくなります (私の画像にはブール値の透明度があるため)。

補足質問:ちなみに、ブレンドに使用するアルファレイヤーとは別のソースをアルファテストに指定する手段はありますか?


第二に、問題の解決策を見つけました。色と深度のバッファをクリアする前に、デフォルトの深度を 0 に設定しglClearDepth(0.0f)、「より大きな」深度関数を使用しましglDepthFunc(GL_GREATER)た。

私にとって奇妙に見えるのは、深さが 1.0 であり、深さ関数がGL_LESSデフォルトで「少ない」ことです。オブジェクトが反転して表示されないように、基本的に反転しています...

私はそのようなハックをどこにも見たことがありませんが、一方、描画する順序に関係なく、オブジェクトが間違った順序で体系的に描画されるのを見たことはありません!


わかりました、ここにコードの一部があります(必要以上に削除されていないことを願っています)。これは現在、私が望むように機能しています。

0 投票する
3 に答える
32230 参照

java - Java Swing コンポーネントの Z オーダー

これについての言及を探していますが、それに関する実質的な情報は見つかりません。Swing コンポーネントの z オーダーを変更する方法、または少なくとも描画順序を変更して、他のコンポーネントの上に表示されるようにする方法はありますか?

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

cocos2d-iphone - Cocos2d タイル マップにスプライトを追加

cocos2d-iphone のアイソメ タイル マップの z オーダーの例では、プレイヤー スプライトとして既にタイルマップにあるオブジェクトを使用し、木の間を移動するようにレンダリングします。

CCNode(tmx ファイルではなく、スプライト シートの一部ではなく) コードで作成された random を使用し、タイルマップで正しく z オーダーする方法はありますか? addChild は ではサポートされておらず、CCTMXLayerはそれを使用すると次のエラーを返します: 'addChild: is not supported on CCTMXLayer. Instead use setTileGID:at:/tileAt:'

cocos2d の API または Z バッファ技術を使用して、タイルマップで Z オーダーCCNode(単純なものとしましょう) を正しく設定する方法が必要です。CCSpriteポインタはありますか?

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

java - MigLayoutと絶対測位を使用するときにZオーダーを設定する方法はありますか?

MigLayoutと絶対測位を使用して、ビジーインジケーターをパネルにオーバーレイしています。インジケーターがパネルの後ろに表示されることもあれば、前に表示されることもあります。インジケーターが常に前面に表示されるようにZオーダーを指定する方法はありますか?

「zオーダーはレイアウトマネージャー次第ではない」という投稿を見ました。これが事実である場合、それは誰までであり、それを制御することができますか?

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

.net - 「全画面モード」が終了した後に「TopMost」ウィンドウの動作を復元する (.NET)

「TopMost」プロパティが設定された単一のウィンドウで構成される (Windows フォーム) アプリケーションがあります。アプリケーション (PowerPoint など) が一時的にフル スクリーン モードになると、ウィンドウの "TopMost" 動作が復元されません (つまり、最大化された PowerPoint ウィンドウで非表示のままになります)。興味深いことに、これは私のアプリケーションが他のアプリケーションよりも前に開始された場合にのみ発生します。他のアプリケーションが私のものよりも前に開始された場合、期待どおりに動作します。ウィンドウをアクティブにする (手動でクリックする) と、目的の動作が復元されますが、残念ながらこれは解決策ではありません。

この問題の原因がわからないため、修正または回避策に非常に関心があります。

これは OS 関連の問題である可能性があるため、Windows 7 64 ビットを使用していることを指摘しておく必要があります。

ありがとう、ピーター

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

c# - DirectX Z オーダー

Managed DirectX でマップを描画する必要があります。マップは MapInfo 形式 (ライン、ポリライン、リージョン/ポリゴン) で届きました。ポリゴンは既に三角形化されています (GLUtesselator で行われます)。

アイデア:

  1. GPS 座標は x、y ポイントに変換されます (メルカトル図法)
  2. 私は PositionColored VertexFormat を使用しています
  3. ビューの中心は [x,y] (マウス移動で変更可能)
  4. カメラは常に [x,y,z] に配置されます。z はズームです (デフォルトでは -100、マウス ホイールで変更できます)。
  5. カメラ ターゲット: [x,y,0]、カメラ アップ: [0,1,0]
  6. マップのレイヤーは Z (+1.0、0.99、0.98、0.97...など) によって配置されます。

私はすでにできる:

  1. ラインとポリラインを描く
  2. 1 層のポリゴンを描画する

私の問題は、すべてのレイヤーを描画したいときに、そのうちの 1 つしか表示されないことです。zオーダーに問題があると思います。これを解決するにはどうすればよいですか?RenderState を変更しますか? GDI のように描画できれば最高です (最初は背面、最後は前面)。

その他の質問: マウス カーソルの下のピクセルの座標を取得するにはどうすればよいですか? (マップの GDI バージョンでは、レンダリングに独自のビューポートを使用したため、それを行うことができましたが、今では directx がすべてを行います)

ありがとう!

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

android - Android ViewFlipper ZOrder

ビュー フリッパーを使用して、2 つのビュー間の遷移をアニメーション化しようとしています。デフォルトでは、ViewFlipper は Out アニメーションを In アニメーションの上に Z オーダーで配置するようです。着信アニメーションを発信アニメーションの上に表示する方法はありますか?

ありがとう

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

wpf - WPFグリッドでのZOrderの動作?

以下のコードには、グリッドの中央の列にボタンがある単純なグリッドが含まれています。ボタンの幅は (意図的に) 配置されている列よりも大きくなっています。ボタンの左側の部分が表示され、右側の部分は表示されないことに注意してください。左右のボタン部分を非表示にするにはどうすればよいですか? ボタンの右側の部分は、右側のグリッド列の z-下にありますが、ボタンの左側の部分は、左側のグリッド列の z-上にあります。左のボタン部分も左のグリッド列で非表示にする必要があります。

これは、一種の「フィルム ストリップ」をアニメーション化しようとしている XAML の簡略化されたバージョンです。フィルムは、左右のグリッド列の Z 軸下、中央部分の Z 軸上に配置する必要があります。アニメーションはうまく機能しますが、左側のグリッド列によって「カバー」されている必要があるため、ユーザーはしばらくの間、左側のコントロールを表示する必要はありません。

0 投票する
5 に答える
8297 参照

.net - Word をアクティブにしても、Word が前面に表示されないのはなぜですか?

私たちの winforms アプリケーションは MS Word と対話し、ドキュメントが生成され、アプリケーションの前に Word で表示したいときにこのコードを実行します。

Office 2007 を実行している XP マシンにロールアウトすると、これは意図したとおりに機能します。

Office 2010を実行している Win7 マシンでは、ドキュメントがアプリケーションの背後に読み込まれ、タスク バーで点滅します。

何か案は?

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

.net - WPFでウィンドウを一番後ろに保つにはどうすればよいですか?

フルスクリーン ウィンドウを生成する小さな .NET プログラムがあります。このウィンドウを一番後ろのウィンドウに保ちたいです (つまり、他のウィンドウがその上に開き、クリックしても前面に出ないようにする必要があります)。Windows Presentation Foundation でこれを行う実用的な方法はありますか?