問題タブ [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.
opengl - OpengGL シェーダー スペル チェッカーはありますか?
eclipse などの OnpenGL シェーダーでテキストのスペルをチェックするツールが見つかりませんでした。次のようなテキストベースのシェーダーでのスペルミスの処理:
非常に時間のかかる作業です。
それで、誰かがそれを助ける何らかのツールを知っているのだろうか。
opengl-es - 骨格マトリックスを使用して拡散/指向性ライティングを行う場合、シェーダーはどのように見えるべきですか?
拡散照明を実行する方法の例をオンラインで見つけましたが、骨格マトリックスを使用したときに物事がどのように変化するかについては何も見つからないようです。
誰かが私が見ることができる例を持っていますか?
拡散照明を学習するための例として、このページを具体的に使用しました: http://learningwebgl.com/blog/?p=684
opengl-es-2.0 - 頂点シェーダーを使用してテクスチャをピクセルの中心に移動する
ここに記載されているように、テクスチャをピクセルの中心に移動しようとしていますピクセル空間のOpenGLテクスチャ座標しかし、そうするのに苦労しています。中央に配置しようとしているピクセルは、テクスチャまたは画面上にありますか? それらにどのようにアクセスしますか?ここに私の頂点シェーダーがあります:
私はGLを開くのが初めてで、頂点シェーダーの研究を始めたばかりなので、提案やヒントをいただければ幸いです。
編集:私が経験する問題は、スケーリングするとテクスチャのピクセルが変形することです。通常のテクスチャはきれいに見えますが、4x4 マトリックス (モデル ビュー マトリックス) で scaleM コマンドを使用してスケーリングすると、ランダムな行と列に同じピクセルの 2 つの列または 2 つの行があるように見えます。
c - OpenGL (Ubuntu): glGetError() が GL_INVALID_OPERATION を返す
OpenGL の学習については、openglbookを参照しています。現在、第 2 章で、参照用にここに貼り付けられているコードを実行しようとしています。
私が直面している問題は、以下の機能にあります。
上記の function( glew.h
) に示されているように、なぜ が返されるの"GL_INVALID_OPERATION"
でしょうか?
これらの行にコメントを付けると、機能しますが、空白のウィンドウが表示されます。
これが私のglxinfoです。私のバージョンは 2.2 で、このコードは 3.3 以降を対象としているため、失敗を避けるために以下のコードを削除しました。
更新: @Tim の回答からの提案に従った後、プログラムを正常に実行できました。これらの行は作成上の問題だったようです:
"#version 400\n" ("#version 130" に置き換え)
と
レイアウト (場所 = 0) (削除されました)。layout(location=1) (削除済み)。
ただし、これにより、予想される三角形がまったく同じに印刷されません。おそらく、チュートリアルは最新のopenglバージョンを念頭に置いて教えていますが、それは私が持っていないため、問題が発生します。
出力を変更せずに、コードを最新の OpenGL (4.0+) 互換コードから下位バージョン (たとえば < 3.0) に変更する方法はありますか? グラフィックハードウェアをアップグレードできません。
directx - ピクセル シェーダーが呼び出されていないようです
私は DirectX をいじり回してきましたが、しばらくの間、この奇妙なアイデアに取り組んできました。奇妙な理由でピクセル シェーダーが呼び出されていないようです。それが可能かどうか、それとも私の愚かな間違いかどうかはわかりません。コードは次のとおりです (ほとんどをチュートリアルからコピーしました)。
シェーダー (HLSL) コードは次のとおりです。
DirectX の初期化とレンダリング コードは次のとおりです。
画面に何もレンダリングされません。ドットまたは大きな白いパッチが表示されるはずですが、表示されるのはレンダリング ターゲットのみです。私は Pix を実行してきましたが、PreVS と PostVS の変換は問題ないようです。助けてください!
shader - 複数のテクスチャからのフレームごとの WebGL アニメーション
私は現在、一連の高速交換画像から作られた短いインタラクティブ フィルムを作成することを目的としたプロトタイプに取り組んでいます。各フレームに魚眼後処理効果を適用し、WebGL を利用してこの計算を GPU ユニットにオフロードする予定です。WebGL を使用してリアルタイムで適用されたこの効果の例は、ここにあります。
ここでの主な課題は、大量の 512x512 ピクセルの画像 (2000 画像以上) をユーザー ブラウザーにダウンロードし、生成されたシーケンスで許容可能なフレームレートを維持することです (5 ~ 10 fps のフレームレートが許容され始めます)。これは探索実験であるため、Chrome とのみ互換性があり、画像シーケンスはユーザー入力に応じて変化するように作成できます。そのため、シーケンスをビデオに事前にレンダリングすることはできません。テクスチャに使用される各画像の重量は平均 25KB で、関連する大量のトラフィックに対処するように設計された堅牢な CDN から提供されます。
比較的短いプリロード時間 (60 秒以下) は、エクスペリエンスの最初の部分でユーザーを楽しませている間に一部の画像をキャッシュできるようにするために許容されます。
これは可能ですか?これを手伝ってくれる人はいますか?
webgl - glDisableVertexAttribArray()を呼び出すことは重要ですか?
頂点属性配列を有効にする範囲については完全には明確ではありません。頂点属性の数が異なるいくつかの異なるシェーダープログラムがあります。glEnableVertexAttribArray
呼び出しはシェーダープログラムに対してローカルですか、それともグローバルですか?
現在、シェーダープログラムを作成するときに頂点属性配列を有効にしていて、無効にすることはありません。すべてが機能しているようですが、描画呼び出しの直前/直後に有効/無効にする必要があるようです。これに影響はありますか?
(私はWebGLを使用しているので、実際に話し合っていますgl.enableVertexAttribArray
。オレンジ色の本であるOpenGL Shading Languageは、これらの呼び出しについてまったく情報がないことgl.disableVertexAttribArray
にも注意してください。)
c++ - GLSLで頂点属性として4x4行列を使用するには?
次のコードを使用して、頂点属性として 4x4 マトリックスを使用しようとしています。
しかし、画面に表示されるのはゴミだけです。
opengl - OpenGLのGo行列関数(Perspective / Frustum&Lookat行列)の何が問題になっていますか?
まず、非常に単純な「初心者標準」の頂点シェーダーを次に示します。
今私がレンダリングしているのは、単純な6面の立方体です。36の頂点座標に適用または固有の回転はありません。標準のチュートリアルスタイル-0.5..+0.5のもの。ここでは頂点配列を割愛しますが、ご安心ください。それはそれと同じくらい簡単です。
- uMatModelは今のところ単なる単位行列であり、スケーリング/変換/回転はまだありません
- uMatViewは、pos = {0.1、0.1、-3.0}、target = {0.1、0.1、0.1}、up = {0、1、0}で呼び出されるLookAt行列(以下のGoコード)です(立方体の頂点座標はすべてであることに注意してください)すべての次元で-0.5から0.5の間なので、0.1は「ほぼ中央」になります)
- uMatProjは、fov =45アスペクト=winwidth/ winheight near = 0.1 far = 100で呼び出されるパースペクティブマトリックス(以下のコードを参照)です。
理論的には、「カメラ」は、真っ直ぐに面している立方体の「後ろ」に約2〜3ユニットあるはずです。代わりに、私は...
ローテーションはどこから来ているのだろうか...私はまだローテーションを実装していません。
要約すると、私は必要な行列関数をGoで自分で実装しようとし、数学を処理しました。しかし、どこかで私はバグを抱えていたに違いありません。誰かが私の以下のコードで行列理論上の問題を見つけることができますか?
ここのVec3は同じパッケージのカスタムタイプであることに注意してください。ここには含めていません。今のところ、Vec3関数は正しいと思います(検証もはるかに簡単です)。マトリックス構造体のLookAtアルゴリズムやPerspectiveアルゴリズムをどういうわけか台無しにしたのではないかと思います。
shader - 1行を変更すると、シェーダーでエラーが発生します
私は3Dとシェーダーを学んでいて、何週間もかけて作成したシェーダーを持っています。
IDirect3DDevice9::CreateVertexShader()
このシェーダーの1行に問題があります。コメントを付けて別のシェーダーに置き換えると、が呼び出されたときにエフェクトが失敗します。すべてのフィールドが設定されています。この動作は、すべてのboneTransforms
とviewProj
を単位行列に設定した場合にも発生します。モデルが表示されますが、その1行(コメント付き)を変更すると、頂点シェーダーがコンパイルされなくなります。なぜこれが起こるのですか?私はこれをデバッグするのに何日も費やしましたが、理由を見つけることができません!
ありがとうございました!