問題タブ [geometry-shader]
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.
opengl - GLSL ジオメトリ シェーダーで生成できるよりも多くの頂点を通過するのはなぜですか?
ジオメトリ シェーダー N (N は 10000 などの非常に大きな数) の頂点を渡して、次のようにレンダリングできるのはなぜですか。
...しかし、このような N 個の頂点を生成することはできません (単一の頂点を渡すだけの場合):
OpenGL はどうすればこの 2 つを区別できるのでしょうか?
*注: gl_PositionIn[0] などにアクセスするようにコードを変更しましたが、それでも 2 番目のコードでエラーが発生します。
opengl - ジオメトリ シェーダーを使用した OpenGL ジオメトリの押し出し
GLE Tubing and Extrusion Library ( http://www.linas.org/gle/ ) を使用すると、OpenGL を使用して 2D 輪郭を 3D オブジェクトに押し出すことができます。ライブラリはすべての作業を CPU で行い、OpenGL 即時モードを使用します。
GPU で Geometry Shaders を使用して押し出しを行うと、特に多くのジオメトリをレンダリングする場合に高速になると思います。私はまだ OpenGL でジオメトリ シェーダーを使用した経験がないので、それが可能かどうか、何に注意する必要があるかを知りたいです。これらの計算を GPU に移行することは良い考えであり、パフォーマンスが向上すると思いますか? おそらく「Render to VBO」を使用して、レンダリングされたジオメトリを GPU から CPU に戻すことも可能です。
c++ - ジオメトリ シェーダーを使用してポイント データから正方形を描画する方法
ジオメトリシェーダーで点データから正方形を描きたいです。
では、vertex shader
一点を放出します。
ジオメトリ シェーダーで、正方形を形成する三角形のストリップを作成したいと考えています。
現時点ではサイズは関係ないので、モデルのサイズは1
((-0.5, -0.5) から (+0.5, +0.5) までの範囲) である必要があります。
コードに表示されているように、放出された頂点の位置を計算するのに助けが必要です:
trans
初期点を目的の座標に変換するために使用することを考えました。どうすればこれを理解できますか?
明確にするために編集する
頂点バッファによって他に何が与えられるかを単一の点から生成したい。単一の平面:
代わりに、これらのポイントの中間にあるポイントのみを指定し、中心の差 (0.5 と -0.5 など) を減算および加算して実際のポイントを生成したいと考えています。必要なのは、この変換をコード (どこにあるのか) に適用する方法を知ることだけ???
です。
opengl - 法線ジオメトリ シェーダーの計算
私は現在、独自の GLSL シェーダーを作成しており、スムーズなシェーディングが必要でした。シェーディングは、VBO に送信する前に法線を計算したときに機能しましたが、ここでの問題は、ボーン マトリックスを使用してアニメーションを実装すると、法線が正しくないことです。
ジオメトリ シェーダを使用して法線を計算していますが、法線を滑らかにする方法がわかりません。
ここに私のジオメトリシェーダーがあります:
法線を計算する面の隣に面が必要ですが、それらを取得する方法がわかりません。
geometry - フラグメント シェーダで 4 つの頂点間の補間位置を見つけるにはどうすればよいですか?
頂点シェーダーの出力からセグメント( 2 ポイント) を取得し、それらをジオメトリ シェーダーに渡す SharpDX (C# の DirectX11) を使用してシェーダーを作成しています。ジオメトリ シェーダーは、この線を四角形( 4 ポイント) に変換して割り当てます。四隅はテクスチャ座標。
その後、「長方形の背骨」(つまり、長方形の中央を通る線) で深さをチェックするフラグメント シェーダー(補間された位置と補間されたテクスチャ座標を受け取る) が必要です。
問題は、対応するフラグメントの位置を矩形のスパインで抽出する方法がわからないことです。これは、テクスチャ座標が補間されているために発生しますが、それらを使用して必要なフラグメントを取得する方法がわかりません。a) テクスチャの座標系と b) 画面空間でのフラグメントの位置が異なるためです。同じ。
助けてくれてありがとう。
opengl - ジオメトリ シェーダーと lines_adjacency を使用して四角形と三角形を組み合わせて描画する
私の現在のレンダリングの実装は次のとおりです。
- すべての頂点情報を三角形ではなく四角形として保存します
- 三角形の場合は、最後の頂点を繰り返すだけです (つまり
v0 v1 v2 v2
) lines_adjacency
ジオメトリ シェーダーに関する頂点情報を渡す- 四角形か三角形かを確認し、次のように出力します
triangle_strip
このルートを選択した理由は、ワイヤーフレーム シェーダーを実装していて、四角形を対角線なしで描画したかったからです。しかし、それ以来、私はその機能を破棄しました。
単純な描画に戻りGL_TRIANGLES
、ジオメトリ シェーダーを式から除外する必要があるかどうかを考えています。しかし、それで考えさせられました...パフォーマンスの観点から、実際により効率的なものは何ですか?
- 平均して、私のシーンは四角形と三角形が同じ量で構成されています。
- すべての三角形で描画すると、四角形ごとに 6 つの頂点、三角形ごとに 3 つになります。
- lines_adjacency で描画すると、クワッドごとに 4 つの頂点、三角形ごとに 4 つの頂点を意味します。
- (これはインデックス付きの描画であるため、頂点バッファーは両方で同じサイズです)
したがって、頂点の比率は 9:8 (三角形 : lines_adjacency) です。
インデックス付きの描画では、各頂点が (インデックスごとに 1 回ではなく) 頂点シェーダーによって 1 回だけ処理されると仮定するのは正しいでしょうか? その場合、三角形の描画はより効率的になります (追加のジオメトリ シェーダー ステップを実行する必要がないため)。唯一の欠点は、インデックスが余分なメモリをわずかに消費することです。
次に、頂点がインデックスごとに 1 回処理される場合、頂点シェーダーがより集中的なライティング計算を実行している可能性がある一方で、ジオメトリ変換が非常に単純であることを考慮すると、lines_adjacency メソッドを使用してエッジを確認できます。
以上が私の質問の要約です: 頂点はインデックス付きの描画でどのように扱われるのでしょうか? また、単純なジオメトリ シェーダーを含めると、どのようなパフォーマンスへの影響が予想されるでしょうか?
sql - 円周セクタ内の座標を取得
稲妻の座標を持つデータベース(PostgreSQL)があります。円周セクタ内の座標が欲しい(SQLクエリ)。円周の半径、角度 (Z) と点 A、および極値点 ([lat1,lng1]、[lat2、lng2]) の座標があります。
どうもありがとう!