問題タブ [vertex-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.

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

opengl - 2D用のGLSLでのモデルビュー変換の最適化

したがって、頂点を変換してからGLSLのフラグメントシェーダーに渡す標準的な方法は次のようになります。

ただし、私は2Dで作業しているため、4x4マトリックスには冗長性があります。これを行う方が効率的でしょうか?

gl_Positionには4成分ベクトルが必要なため、出力時に追加の操作が必要です。ただし、行列の乗算は16ではなく9要素用です。これ以上のことはできますか?

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

opengl - OpenGL 頂点シェーダーの変換と出力

私は単純な頂点シェーダーを持っています

私のクライアントコードでは

ここで私の質問は、シェーダーで行列乗算を使用せず、クライアント コードで使用しない場合、画面全体をストレッチする素敵な三角形をレンダリングするので、頂点シェーダーが座標系で画面に与えられた座標をマップしx=-1..1y=-1..1

シェーダーで行列乗算を行うと、すべてがうまく機能します。しかし、示されているようにシェーダーのコードをコメントアウトしてクライアントで実行すると、奇妙な結果が得られます。それは同じ結果をもたらすべきではありませんか?

gl_Position頂点シェーダーの出力が 2D 座標であるにもかかわらず、間違っていると思いましたvec4か?

助けてくれてありがとう。頂点シェーダーの出力が頂点位置に関して正確に何であるかを理解したいと思っています。

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

opengl - frag&vertシェーダーを有効/無効にします

現在使用しています

しかし、正しく元に戻らず、これらの行に沿って「無効な操作glError」が発生します

それを行うための適切な/正しい方法は何ですか(シェーダーを有効/無効にする)?

[私のコードファイル(一時的なリンクが削除されました)] [1]

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

opengl - openGLでベクトルに「ModelViewProjectionMatrix」を掛けるにはどうすればよいですか?

頂点シェーダーに線があります

次のように、シェーダーなしで同じ計算を行う必要があります。

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

math - 等長関数

曲げ技術を GPU に組み込む予定です。棒を曲げるように。実際の物理演算を行う必要はありませんが、曲げ関数 (頂点を変位させるため) を同じ長さにしたいと考えています。

私の関数は2つのコンポーネントから構築されます:

  • スティックの y 位置
  • 棒にかかる力 (風のように特定の場所ではなく、一般的なもの)

私は x 方向に曲がっています。x = y * force数式を作成することはできますが、問題は、オブジェクトの長さが変形することです。

実際の長さを維持しながら、オブジェクトを変形するにはどうすればよいですか? 関数を制約するにはどうすればよいですか?

または別の方法で:

y 区間の長さを維持しながら、多項式関数の累乗を調整するにはどうすればよいですか? 例えば。[0,1]

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

c++ - glCreateShaderの呼び出しでこのOpenGLシェーダーセグメンテーション違反が発生するのはなぜですか?

OpenGLシェーダーの書き方を学ぼうとしています。私のマシンで実行すると、このコードセグメンテーション違反が発生するのはなぜですか?(私はUbuntu 10.04を使用しており、shader.cppと呼んでいます。)

次のMakefileを使用してコンパイルしています。

glCreateShaderを呼び出す回線でのセグメンテーション障害のようです。私はこの問題の原因を見つけることができませんでした。私は初心者です。ありがとう!

注:このコードが表すのは、OpenGLを使用して単純なシェーダーを作成する最初の試みです。それがすべて間違っている場合は、いくつかの実用的なコードを投稿してください。私が本当に欲しいのは、コンパイルして実行できるものを手に入れることです。

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

glsl - GLSL: バーテックス シェーダーからフラグメント シェーダーへの変化なし

変更せずに頂点シェーダーからフラグメントシェーダーにデータを転送する方法は? 頂点ピクセルにこの色があることを伝える必要があります。頂点シェーダーでしか得られないこの色。

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

graphics - ジオメトリシェーダーの実行回数?

したがって、頂点シェーダーは頂点ごとに実行され、フラグメントシェーダーはフラグメントごとに実行されます(右?)。

ジオメトリシェーダーは何回実行されますか?

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

opengl - GLSL頂点シェーダーからのデータの取得

描画する前に並べ替えたい透明なプリミティブがたくさんありますが、並べ替えキーであるZ座標を取得するために、ハードウェアの頂点シェーダーによって実行されるすべての変換をソフトウェアで実行しました。

シェーダーからZ座標を取得し、それを使用して次のフレームのプリミティブを並べ替えることで、プロセスを最適化できると思いました。プリミティブの順序はフレーム間で大幅に変わることはないと予想されるため、十分に公平な順序を提供する必要があります。だから、頂点シェーダーからZ座標のバッチを取り戻す方法を知りたいですか?出来ますか?

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

macos - 頂点シェーダーは正しいのですが、私のハードウェアでは動作しませんか?

このシェーダーの何が問題なのかわかりません。それは正しく、コンパイルされ、リンクされますが、私のハードウェア (NVidia GeForce 9400 を搭載した MacBook pro、特別なことは何もありません) では動作しません。完全にGLSL 1.2に準拠しているようです

ここに何か問題があるように見えますか? 提案/アドバイスをありがとう。