問題タブ [vertex-attributes]
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.
c++ - アラインメントを達成するために手動で頂点構造をパディングする
頂点データをシェーダーに渡すとき、アラインメント (16 バイト) を達成するために頂点構造にパディングを適用するのが賢明ですか、それともハードウェアが実行しているものですか?
たとえば、これら 2 つの頂点構造は同等に効果的ですか?
ありがとうございました!
r - 必要な頂点のみラベルを表示
次数が 50 を超える頂点のラベルのみを表示したいです。次のコードを試しました。
plot(g, vertex.label=(V(g)$id[which(degree > 50)]))
ただし、目的の頂点にラベルを付けるだけでなく、次数が 50 を超えるラベルのみを使用してすべての頂点にラベルを付け直すようです。
目的の頂点のみにラベルを付けるプロットを表示するにはどうすればよいですか? または、不要なラベルを非表示にする方法はありますか?
javascript - テクスチャと属性の位置へのレンダリング
私は webgl を使用しています。私がやりたいことは、最初にテクスチャにレンダリングし、次にそのテクスチャを使用して画面にレンダリングすることです。最初のステップのレンダリングで属性に問題が発生します。
私がやろうとしていることを少しの言葉で説明しようと思います。最初に、フラグメント シェーダーを使用して属性を使用するテクスチャにレンダリングし、次にそのテクスチャを使用して画面にレンダリングし、次のフレームの手順を繰り返します。しかし、属性 (pos) が無効な値を持つフレーム バッファ バウンドでレンダリングしようとすると、値がまったくありません。
私の問題を示す小さなデモを書きました:
javascript コードの 38,39 行目 (frameBuffer のバインディング) と 54 行目 (別のプログラムを実行するスクリーン コードへのレンダリング) にコメントを付けると、正しくレンダリングされ、「pos」という名前が付けられていることがわかります。適切な値。
私はそれがどのように機能するのかについてあまり知りません。私は少し暗闇の中にいます。何か重要なものが欠けていると確信していますが、どこにも何が見つかりません。どんな助けでも大歓迎です。
python - subgraph() を使用し、igraph python で頂点属性を保持する
切断されたグラフをブロックに分割したい (community_spinglass を使用するため)。ただし、サブグラフを取得して community_spinglass() を使用すると、元のグラフの頂点のラベルが失われます。40 以上の頂点を扱っているため、それらを追跡するのは簡単ではありません。これが私の問題の「おもちゃの例」です。
ブロックとコミュニティを取得した後:
しかし、頂点が以前のラベルではなく v_name リストに順番に従っていることがわかります。さらに、コミュニティを取得すると、次のようになります。
サブグラフのインデックスを取得しますが、元のグラフのインデックスと関連付けるのは困難です。
元のグラフのインデックスまたはラベルを参照してコミュニティを取得する方法はありますか?
前もって感謝します。
c++ - 頂点属性 - 頂点位置に float ではなく short を使用
現在、私は次のセットアップを持っていますが、これはうまく機能しています。
頂点属性:
ここで、頂点属性を float から short に変更して、パフォーマンスを向上させたいと考えています。頂点の位置から始めようとしました。
OpenGL の Vertex Specification Best Practicesは、次のことを教えてくれます。
位置[...] これを行うには、モデル空間データを再配置して、すべての位置が原点の周りの [-1, 1] ボックスにパックされるようにします。これを行うには、すべての位置の中で XYZ の最小値/最大値を見つけます。次に、最小/最大ボックスの中心点をすべての頂点位置から差し引きます。次に、最小/最大ボックスの幅/高さ/深さの半分ですべての位置をスケーリングします。中心点とスケーリング係数を維持する必要があります。モデルからビューへのマトリックス (またはモデルからその他のマトリックスへ) を作成するときは、中心点のオフセットとスケールを変換スタックの一番上に適用する必要があります (つまり、最後に、描画する直前に)。
私もこのスレッドを読みました。
そのため、すべての頂点を [-1,1] にマッピングするこの前処理ステップを追加しました。
頂点シェーダーで再スケーリングします
GL_SHORT
の代わりに頂点属性を使用しGL_FLOAT
、正規化を次のように設定しGL_TRUE
ます。
その結果、三角形のカオスが得られますが、fps が増加したモデルは得られません。
これは頂点属性を短く設定する正しい方法ですか?
または、Vertex 構造全体を変更する必要がありますか? はいの場合、これを行うための最良の方法は何ですか (ショーツ付きの glm ベクトル?)。
実際の例は素晴らしいでしょうが、見つかりませんでした。
opengl - 1 つの Vertex Array オブジェクトに複数のストレージ レイアウトを含める方法は?
ストレージ レイアウトとは、 で定義するものを意味しますglVertexAttribPointer
。この状態は、現在バインドされている VAO またはバインド先のバッファーに保存されGL_ARRAY_BUFFER
ますか?
c++ - GL シェーダー ストレージ バッファー オブジェクトを開いて頂点属性を置き換える
私は基本的に、ここで尋ねた人と同じ質問を受けました: OpenGL ES頂点シェーダーの動的サイズの配列。ブレンド シェイプ/モーフ ターゲットに使用されます。特に彼の最後の未回答の質問は私も気になります。
そのため、処理しているメッシュごとに任意の数のブレンドシェイプも使用したいと考えています。現時点では固定数を使用しており、形状を頂点属性として扱っています。ここでの利点は、現在の頂点に関連するデータを常に利用できることです。ここで、任意の数の形状を使用したい場合は、SSBO を使用すると考えました。その手がかりは、まさに私が必要としているものである、つまり動的サイズのデータだからです。しかし、私が理解している限り、SSBO は静的であり、シェーダーで処理された頂点ごとに、メッシュ全体のブレンドシェイプ データを利用できます。つまり、ある種のカウンターを導入し、頂点ごとに SSBO から正しいデータを選択する必要があります。
この理解は正しいでしょうか?これが最適な解決策かどうかはわかりませんが、ヒントを教えてください。