0

私は webgl を初めて使用します。頂点シェーダーとフラグメント シェーダーの値がどのように生成されるのか疑問に思っていました。私はいくつかのサンプルを見ていましたが、これらの値の巨大な配列を見ることができました.これらの値がどのように生成されているかを理解できませんでした.これらの値を生成するツールはありますか. 何か不足していますか?これらのシェーダー値を作成する方法について説明したチュートリアルはありませんでした。これについての助けをいただければ幸いです。

4

2 に答える 2

3

最も可能性が高いのは、それらの頂点またはインデックス バッファー情報です。これらは通常、次のように float または int の大きな配列として格納されます。

[1.0、2.0、3.0、0.5、0.5、1.0、0.0、0.0]

これは、頂点レイアウトの表現に応じて、次のように、単一の頂点の位置、テクスチャ座標、および法線を表すことができます。

位置: (x: 1.0, y: 2.0, z: 3.0) Texcoord: (u: 0.5, v: 0.5) 法線: (x: 1.0, y: 0.0, z: 0.0)

そして、通常、それらのすべてが 1 つの大きな長い配列にまとめられます。これらは非常に読みにくいですが、通常はモデリング ツールのエクスポーターによって生成され、GPU に直接送信されるため、通常は人間の介入はあまりありません。

WebGL にこれらの値を解釈するように指示する方法について少し前に少し書きましたが、3D ジオメトリについてどれだけ知っているか正確にはわからないので、少し高すぎるかもしれません。初期の Learning WebGL レッスンのいくつかでは、もう少し詳しく説明しています。

レッスン 1レッスン 2

于 2011-11-05T04:31:24.763 に答える
0

Blender、Maya、3D Studio Max、Google Sketch up などの 3D モデリング ツールを使用するだけで問題ありません。

あなたが話しているこれらの値は、魚を作成したい場合など、モデルを作成するときにこれらのプログラムによって生成され、3Dモデリングツールを開いてそこで作業を行い、これを多くのファイルの1つにエクスポートします3D モデルのフォーマットには、.x、.fbx、collada などがあります。結果のファイルには、この 3D 魚を必要な場所にレンダリングするために必要なすべての情報が含まれます。頂点の位置、テクスチャ座標、法線 (照明に使用) が含まれます。主に)、多分色と他のものの束。

したがって、これらのファイル形式のいずれかを選択し、そこから必要なデータを取得する方法を学び、javascript (あなたが言った配列) で評価できるように配置し、情報を頂点/フラグメントに渡すだけです。シェーダー。

于 2011-11-08T08:21:20.953 に答える