問題タブ [culling]

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

directx - 視錐台カリングのバウンディング ボックスを変換するにはどうすればよいですか?

変換とバウンディング ボックスを保持するノードを含むシーン グラフと、viewProjection マトリックスから各フレームを構築するビュー フラスタムがあります。ただし、ボックスには、ボックスのローカル空間に 4 つの頂点の座標があります。視錐台と同じ空間にそれらを取得するために、それらを変換して、視錐台との交差を確認できますか?それらをワールド空間に持ち込もうとしましたが、50 個のワールド マトリックスがあるので、それは奇妙でした(私はインスタンス化され、各インスタンスには独自のワールド/トランスフォーム マトリックスがあります)

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

c++ - 奇妙な結果を引き起こすOpenGL背面カリング

単純なセルシェーダー効果を作成しようとしていますが、これには背面と前面のカリングが含まれます。しかし、これまでのところ、私のカリングの結果はかなり奇妙です。

OpenGLソースコードを設定します。

ソースコードをレンダリングする:

これは私が得たものです:

ここに画像の説明を入力してください

どういうわけか、それは立方体の右側だけを描いています。変。glCullFace(GL_BACK);を変更しました。glCullFace(GL_FRONT);へ 私のレンダリング関数で。私はこれを得た:

ここに画像の説明を入力してください

今、それはあらゆる側面を描いていますか?立方体の右側は後ろ向きと前向きの両方であり、立方体の残りの部分は後ろ向きであると思われるようです。カリングを無効にした場合も、上の写真に示されているのと同じ結果が得られます。

私が考えることができる他の関連情報は、私がSDLを使用していることであり、これは2台の異なるコンピューターで実行したため、それぞれ同じ結果が得られるため、これはグラフィックカードの問題ではないと確信しています。

プリミティブの法線を設定する方法を学び始めたばかりなので、これは大きなn00bの間違い、またはいくつかのばかげたエラーである可能性があります。私が最も思慮のない明らかな間違いをするたびにペニーを手に入れ、何時間もそれに固執していたら、私は億万長者になるでしょう。

それで、一言で言えば、私は何を間違えましたか、そしてどのように私は適切な顔の側面を適切な方法でカリングするか、またはカリングしないようにするのですか?

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

android - AndroidOpenGLESがcompexオブジェクトを正しくレンダリングしない

複雑な非凸オブジェクトを描画するプログラムを作成しようとしています。しかし、私には問題があります-いくつかの顔は透明に見えます。追加することでこれを部​​分的に解決しました GLES20.glEnable(GLES20.GL_CULL_FACE);

しかし、その後、法線の方向が同じで、一方が他方の後ろに配置されている2つの面があると、機能しないことがわかりました。この場合、OpenGLは正しくレンダリングされません。また、私は追加しようとしました GLES20.glEnable(GLES20.GL_DEPTH_TEST)

しかし、私は目的を達成しませんでした。さらに、オブジェクトの半分が消えました。どこが間違っているのか説明してもらえますか?

PSオブジェクトの頂点を取得するために、Blenderを使用しました(データをobjファイルにエクスポートしました)。また、このデータを確認しました-頂点(CCW)の正しい順序があります。

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

vector - ベクトルの説明

錐台カリングに関するこの記事を読んでいますが、その背後にあるベクトル計算を理解するのに助けが必要です。より具体的には、彼が話している「上」と「右」のベクトルは何ですか? 彼らはどのような価値を持っていますか?簡潔で刺激のない質問で申し訳ありませんが、私は本当にこれにこだわっています。どんな助けでも大歓迎です!ありがとう

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

javafx-2 - JavaFX での錐台カリング

シーンの外に大量のノードが存在する可能性がありますが、ドラッグなどのマウスイベントがシーンに戻る可能性があるため、JavaFX アプリケーションにフラスタムカリングを実装したいと考えています。JavaFX フレームワークに既にいくつかのメソッドがありますか、それとも自分で実装する必要がありますか。シーン外のノードを削除するクリッピング メソッドを実装しようとしましたが、マウス イベントの後にシーンを更新するのは困難です。

どんな助けでも感謝しますありがとう

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

opengl - openGLの時計回りの顔は何ですか

背面カリングでは、面法線を使用して、面がカメラから離れているかどうかを確認したり、三角形が時計回りまたは反時計回りに描かれている場合に何らかのテクニックを実行したりできます。

このテクニックと時計回りについて混乱しています。この方法では、グラフィックス カードに送信される頂点データの順序によって、カメラに向いているか離れているかが決まるようです。カメラは任意の方向を見ることができるため、これがどのように理にかなっているのかわかりません。まるでカメラの位置に基づいて頂点データを変更する必要があり、それは明らかに CPU では行われません。

どうすればこれを理解できますか?

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

opengl - フラスタムカリングへの「レーダーアプローチ」:最初の簡単なテストで失敗?

少なくとも、Lighthouse3D Radar Frustum Culling チュートリアルの非常に単純な パート 1 を機能させようとしています...そして、その部分を自分のレンダラーで機能させることさえできないことに完全に困惑しています。

したがって、最初のステップは次のとおりです。ポイントがニアプレーンの前にあるかファープレーンの後ろにあるかをテストし、そうであれば早期カリングします。(そうでない場合は、さらにテストを実行しますが、最初の部分だけで行き詰まっています。)

2x2 の立方体のワールド空間の中心 (x1y2z3) を使用し、自由に移動および回転できるカメラを持っています。レンダラーはそれ以外の場合は問題なく動作するため、すべてのベクターとマトリックスのものはかなりしっかりしている必要があります。したがって、この最初の部分である単純な「Z vs Near-or-far」テストの (Go での) 私の見解は次のとおりです。

では、なぜ ref の Z を逆にするのでしょうか? チュートリアルでは、彼らは次のように書いているからです。もちろんこれは逆効果ですが…

上記のように Z を反転すると、約 50% の確率で必要以上にカリングされます。そうしないと、約 98% の確率で「過剰選別」されます。

何が欠けていますか?

0 投票する
0 に答える
411 参照

wpf - WPF レンダリング パイプラインの置き換え

WPF は、レンダリング中に可視性情報を伝達しないように見えるため、カリングを行わないため、パフォーマンスが低下する可能性があります。したがって、WPF の通常のレンダリング パイプラインを回避して、より効率的なパイプラインに置き換えるというアイデアに興味があります。

たとえば、コントロールのグリッドを含むスクロール ビューアがある場合、スクロール ビューア内の可視領域を指定して、潜在的に可視のコントロールのみをレンダリングするために、グリッド内のコントロールの位置を事前に計算したいと思います。したがって、スクロール ビューアのレンダラーをその可視性情報を渡すレンダラーに置き換えてから、グリッドのレンダラーをその可視性情報を使用して完全に可視領域外にあるコントロールを選別するレンダラーに置き換えます。

これは可能でしょうか?もしそうなら、どのようにそれを達成することができますか?

0 投票する
0 に答える
97 参照

algorithm - スレッドプール付き錐台カリング?

私はMinecraftのようなゲームに取り組んでおり、プレイヤーが歩いている間にチャンクを生成する効率的な方法について疑問に思っています. 特に、プレイヤーが後ろにあるチャンクより前に見ているチャンクを描画したいと思います。

私は現在、各領域が異なるスレッドによって非同期的に生成されるスレッド プールを作成することを計画しています。フラスタムカリングなどのアルゴリズムを使用してタスクを効率的にソートする方法はありますか?

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

android - OpenGL ES で、描画を四角形に「クリップ」するにはどうすればよいですか?

単一の OpenGL ES インスタンスを使用している Android アプリケーションに取り組んでいます。場合によっては、スクロールするテキストや線などを使用して、他のすべての上にカスタム (長方形) ダイアログを描画しています。ダイアログは画面全体を占有せず、ダイアログ ボックスよりも大きなコンテンツを描画しています。マーキーのように、ダイアログを横切ってスクロールしています。

もちろん、このダイアログを最後に (他のすべてのビューの上に) 描画しているので、描画しているすべての頂点が表示されますが、OpenGL にそのレンダリングのダイアログの四角形の外側に描画しないように指示したいと思います。コマンド。このような...

長方形へのカリング

私の描画のほとんどは、配列をglDrawArrays(...)使用して行われます。FloatBuffer私が望むのは、指定した領域の外では描画を非表示にすることを OpenGL に指定する方法です

カリングについてはよくわかりませんが、これは私が探しているものと非常に関連しているようです。ただし、カリングは、3D のカメラ ビューから「見えない」三角形の描画をスキップするためだけのようですが、ビューポート内の任意の長方形の外側にある三角形の描画を「スキップ」したいと思います。 .