問題タブ [vertex]

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

directx - directx ピクセル/頂点シェーダーをデバッグしていますか?

DirectX でピクセル シェーダーと頂点シェーダーをデバッグする方法を見つけようとしています。Windows 用の Pix を使用してみましたが、非常にバグが多く、実質的に操作できないことがわかりました。自分のアプリケーション内でこれらのシェーダーをデバッグできる代替手段はありますか?

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

opengl - 頂点シェーダーを使用してモデルの法線を表示できますか?

現在、「glDrawArrays(GL_TRIANGLES, ...);」で描画している (3DS) モデルのテクスチャ座標、法線、および頂点に VBO を使用しています。デバッグのために、モデルを描画するときに法線を (一時的に) 表示したいと考えています。vert から vert+normal までの各線を描画するために即時モードを使用する必要がありますか? -または- 別の VBO に vert と vert+normal を詰めて、すべての法線を描画します... -または- 頂点シェーダーが頂点を使用する方法はありますか?法線を描画するときに使用される V+N を計算するためにモデルを描画するときに、法線データが既に渡されていますか?

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

iphone - openglを使用して、背景画像と小さな歪んだテクスチャを組み合わせるにはどうすればよいですか?

iPhoneで画像ストレッチ効果を作ろうとしています。頂点配列を作成し、背景画像の任意の半径内の各インデックスのテクスチャデータをシフトします。次に、次の呼び出しを行って表示します。

私の問題は、引き伸ばされた領域の端が32x32や64x64のような比較的小さなグリッドサイズで非常に途切れ途切れに見えることです。大きくするとスムーズになりますが、はるかに遅くなります。

そこで、背景画像のコピーを追加して、頂点配列を影響を受けるインデックスのみに制限してみました。私ははるかに小さいグリッドサイズを使用しますが、より小さな領域に使用します。上記の描画コードは次のようになります。

影響を受けた領域は表示されますが、背景画像が点滅して消えるように見えます。引き伸ばされた領域は黒い背景に浮かんでいます。明らかに、私の背景が最初にレンダリングされ、次に上記のコードが頂点配列のデータのみを上書きしてレンダリングします。

画像の描画を効率的に組み合わせる方法について誰かアドバイスがありますか?

背景用に2番目の単純な頂点配列を作成し、ifステートメントの直前にglDrawArrayを呼び出して、すべての描画が1つのメソッドで行われるようにする予定です。これはこれについて行く正しい方法ですか?もっと良い方法はありますか?どういうわけか、すべての画像データを1つの単純な頂点配列に結合する必要がありますか?

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

opengl - CocoaとOpenGL、配列を使用してGLSL頂点属性を設定するにはどうすればよいですか?

私はOpenGLにかなり慣れていないので、いくつかの問題が発生しているようです。GLSLで単純なシェーダーを作成しました。これは、指定されたジョイントマトリックスによって頂点を変換し、単純なスケルタルアニメーションを可能にすることになっています。各頂点には、最大2つのボーンインフルエンス(Vec2のxおよびyコンポーネントとして格納)、変換行列の配列に関連付けられたインデックスおよび対応する重みがあり、シェーダーで「属性変数」として指定され、設定されます。 「glVertexAttribPointer」関数を使用します。

ここで問題が発生します...行列の「UniformVariable」配列を適切に設定できました。シェーダーでこれらの値を確認すると、すべてが正しくインポートされ、正しいデータが含まれています。ただし、ジョイントインデックス変数を設定しようとすると、頂点に任意の変換行列が乗算されます。これらは、空間内のランダムな位置(毎回異なる)にジャンプします。これは、インデックスが正しく設定されておらず、シェーダーがジョイントマトリックス配列の終わりを超えて次のメモリに読み取っていると想定しています。理由はよくわかりません。このテーマについて見つけたすべての情報を読んだときに、同じ(あまり似ていない場合でも)コードが例に含まれているのを見て驚いたのですが、それはうまくいったようです。

私はかなり前からこの問題を解決しようとしましたが、本当に神経質になり始めています...行列が正しいことはわかっています。シェーダーのインデックス値を手動で任意の整数に変更すると、次のようになります。正しい行列値と正常に機能し、すべての頂点をその行列で変換しますが、作成したコードを使用して属性変数を設定しようとすると、機能しないようです。

変数を設定するために使用しているコードは次のとおりです...

そして、私の頂点シェーダーは次のようになります...

これは本当に私を苛立たせ始めています、そしてどんなそしてすべての助けも感謝されるでしょう、

-アンドリュー・ゴトウ

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

opengl-es - 法線レンダリングを使用した OpenGL ES ポリゴン (「ES!」に注意してください)

わかりました... 6 つの異なる法線を持つ比較的単純なソリッドがあるとしますが、実際には 48 面 (方向ごとに 8 面) 近くの面があり、面間に多くの共有頂点があるとします。OpenGLでそれをレンダリングする最も効率的な方法は何ですか?

頂点を配列に配置し、インデックス配列を使用してそれらをレンダリングできることはわかっていますが、法線を変更するには、レンダリング手順を分割し続ける必要があります (つまり、法線 1 を設定... 8 つの面をレンダリング... 法線を設定) 2... 8 つの面をレンダリングするなど) そのため、インデックス配列の配列を維持する必要があります...法線ごとに 1 つです! 良くない!

別の法線配列と頂点配列を使用する (またはそれらをインターリーブする) こともできますが、これは、法線と頂点の比率を 1 対 1 にする必要があることを意味し、法線が 8 倍以上複製されることを意味します。必要以上に!球面または曲面のあるものでは、すべての法線が異なる可能性が最も高いですが、これについては、メモリの無駄のように思えます.

完璧な世界では、頂点と法線配列の長さが異なるようにしたいので、三角形または四角形を描画するときに、その頂点の各配列へのインデックスを指定します。

OBJ ファイル形式では、正確にそれを指定できます... 頂点配列と異なる長さの法線配列を指定すると、レンダリングする面を指定するときに、頂点と法線インデックス (および場合は UV 座標) を指定します。あなたもテクスチャを使用しています)これは完璧なソリューションのようです! 48 個の頂点がありますが、法線は 8 個しかありません。次に、シェイプの面を定義するインデックスのペアです。しかし、OpenGL ES でそれをレンダリングする方法がわかりません (繰り返しますが、'ES' に注意してください)。現​​在、法線を 1 対 1 に戻す必要があります頂点配列、次にレンダリングします。記憶を無駄にするだけです。

誰か助けて?ここで非常に単純なものが欠けていることを願っています。

マーク

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

java - Java OpenGL Vertex Buffer オブジェクトが機能しない

初めて Open GL の Vertex Buffer Objects を実装しようとしましたが、黒い画面しか表示されません。

glPerspective の代わりに glOrtho で試してみましたが、うまくいきませんでした。

助けてくれてありがとう

私のコードは次のとおりです。

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

opengl-es - Opengl ES - 複数の頂点の平面を描く

Android 用の Opengl ES を使用すると、テクスチャで正方形を描画するときに問題が発生します。遠くから見るときれいに見えますが、モデルに近づくとテクスチャが台無しになります。これは、モデルが 4 つの頂点のみで構成されていることが原因であると考えられます。

float[] 座標 = {

-1、1、0.0f、

1、1、0.0f、

-1、-1、0.0f、

1、-1、0.0f、
};

そのため、モデルを拡張して 10x10 のポリゴンで構成する必要があります。問題は、次のような平面を作成するために頂点をどの順序で描画する必要があるかということです。

http://cocktailgenerator.net/cis4/plan.png

GL_TRIANGLE_STRIP を使用すると、(1x10) のような多角形の長方形を描くことができ、うまく機能しますが、それを 10x10 に拡張するにはどうすればよいでしょうか?

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

iphone - 頂点を表すためにGLshortを使用する際に問題が発生し、Normal

プロジェクトが最適化段階に近づくにつれて、Vertexメタデータを減らすと3Dレンダリングのパフォーマンスが大幅に向上する可能性があることに気付きました。

最終的に、私は心から探し回って、stackoverflowからの次のアドバイスを見つけました。

OpenGLES頂点配列でGL_FLOATの代わりにGL_SHORTを使用する

GLshortsを使用して、法線座標またはテクスチャ座標をどのように表現しますか?

iPhoneでOpenGLES1.1を高速化するためのアドバイス

簡単な実験では、頂点と法線を「FLOAT」から「SHORT」に切り替えるのは難しいことではありませんが、頂点を元のサイズ(glScalefを使用)に縮小する場合、法線に逆数を掛けるのが問題です。スケールの。これに対する自然な救済策は、GPUに送信する前に、法線をスケールで乗算することです。すると、スケールファクターは通常0より小さいので、私の短い法線はほぼ0になります。

頂点と法線の両方に同時に「短い」をどのように使用しますか?これとあれを丸一日ほど試してきましたが、今のところ「フロート頂点w/バイトノーマル」または「ショート頂点w/フロートノーマル」しか行けませんでした。

よろしくお願いします。

0 投票する
5 に答える
5347 参照

math - 頂点の従法線は、その法線と接線の間の交差ですか?

グラフィックプログラミングのコンテキストで従法線が何であるかを調べようとしていますが、手短に言えば、あるサイトで、従法線が法線と接線の間の外積として計算されているのを見ました (つまり、クロス(法線、接線) )、これは従法線を計算する正しい方法ですか?