私は以下のシリンダーを持っています。私はOpenGLでワームを描いており、頂点の法線を計算したいと思います。円柱の頂点法線を計算する方法は?
0
A
答えて
2
(三角形)すべての顔のための法線を計算し、どこかに保存します。現在、すべての頂点について、頂点を共有するいくつかの面があります(典型的な6面)。最終的な頂点の法線は、面の法線の平均です。 6つの顔のために、あなたが計算します。このような配列でfaceNormals
を入れないでください:
int faceCount = 6;
float sum = 0.0f;
for(int face = 0; face < faceCount; ++face)
sum += faceNormals[face].x;
normal.x = sum/faceCount;
// and so on for y and z
をその長さは1
NOTEあるように、得られたベクターを正規化することを忘れないでください。実際のコードでは、すべての法線の単一のvector
コンテナと、どの法線がどの頂点に関連するかを示すロジックが必要です。シリンダーリング上のすべての点については
3
、vertexNormal = normalize(vertexPosition - ringCenter);
または通常はこの頂点を含むすべての顔のためのすべての面の法線の正規化された和である場合、あなたは、通常、それらを計算することができます。
+1
上記の数式を使用して頂点を作成するのと同時に、頂点ごとに1つの法線を作成します。これは説明されているようにシリンダーで動作します。 –
関連する問題
- 1. 球の頂点法線を計算する
- 2. Three.js /変位後に頂点シェーダ内のインデックス付きPlaneBufferGeometryの頂点法線を計算する
- 3. Javascript - 円柱の平方根を計算する
- 4. 円柱の表面で法線を計算するにはどうすればよいですか?
- 5. 内側の円の接線に続く外側の円の上にある点を計算する方法
- 6. 楕円弧の点を計算する方法
- 7. 積算棒グラフの頂点に計算値を表示する方法
- 8. バウンディングボックスの頂点を計算する
- 9. 頂点の数を計算するアルゴリズム
- 10. graph-toolの特定の頂点の中心を計算する方法は?
- 11. 楕円弧に近似する3次曲線の制御点を計算する方法は?
- 12. 円上の点から接線を計算しますか?
- 13. 法線行列の計算方法は?
- 14. Gremlin-特定のプロパティを持つ頂点のパーセンテージを計算する方法
- 15. 楕円上の点を計算する
- 16. 3D点が円柱の中にあるかどうかをチェックする方法
- 17. パーリンノイズの頂点ごとの法線?
- 18. CALayerとして円の点線を作成する方法は?
- 19. 円グラフを円柱に描く方法は?
- 20. QtOpenGLで頂点線をパンしたりズームする方法
- 21. 頂点の再計算位置のタイリングアルゴリズム
- 22. 楕円の周長の計算方法
- 23. 円の円周上の点の(xまたはy)座標を計算する方法は?
- 24. maya api対pythonコマンド:頂点法線
- 25. N次元グリッドの頂点計算
- 26. Matplotlib:ドット(円)からなる点線を作る方法は?
- 27. 接線空間を計算するときに「頂点テクスチャ」が持つプロパティ
- 28. 円の円周上の3次元点を角度で計算する方法は?
- 29. 法線を再計算するには?
- 30. THREE.js 3D円の回転位置を計算する方法は?
これは実際には機能しますか?私のテストのために、それは動作しないようです...これは私がしたものです: 'normal.x =(V1.x + V2.x + V3.x)/ 3.0f'(三角形のために)そして、私は最後に正規化しました。どうしたんだ? – Rookie
@Rookieこれは頂点から三角形ノーマルを計算するための公式ではありません。このためには、[クロスプロダクト](http://en.wikipedia.org/wiki/Cross_product)が必要です。私の答えはいくつかの法線ベクトルを平均化することです。 – Fiktik
申し訳ありませんが、私はOPを理解するので、ノーマルを計算する方法ではなく、滑らかな法線を計算する方法を尋ねるので、私は誤解しました。 – Rookie