2016-04-01 9 views
-1

OpenTK(OpenGLのc#ラッパー)を使用して、Cox-deBoorアルゴリズムで計算されたNURBSサーフェスを描画しています。このアルゴリズムは、表面上の個々の点を与える。これらの点から全面をどのようにレンダリングできますか?また、どのようにこれらの点のワイヤフレームを描くことができますか?計算された点からNURBSサーフェスメッシュをレンダリングする方法は?

ありがとうございます!

+0

だから、何を試しましたか?コードはどのように機能していませんか?あなたはOpenGLに慣れていますか? –

答えて

0

まず、サーフェス上の個々の点のグリッドを生成する必要があります。サーフェスパラメータが0と1の間にある場合、0.05点ごとに点を生成するとします。そうすれば、200x200 = 40000ポイントのグリッドが得られます。 (あなたの投稿から私はあなたがすでにこれをしていることを知っています)

グリッド内の4つのグループすべてについて、GL_QUADSを使用してサーフェスを描くことができます。たとえば、あなたの最初のQUADは次のようになります。

  • Surface.Evaluate_UV(0、0)
  • Surface.Evaluate_UV(0.05、0)
  • Surface.Evaluate_UV(0.05、0.05)
  • Surface.Evaluate_UV (0、0.05)

グリッド内の「セル」ごとに同じ操作を行う必要があります。

最後に、サーフェスをワイヤフレームとして表示するには、次の2つのオプションがあります。 1番目のオプション。

// This option renders the surface in wireframe mode GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line); // This option renders the surface in shaded mode GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);

第二オプション:コードを使用してください。 GL_QUADSの代わりにGL_LINESを使用して、ワイヤフレームモデルを形成する線を描画します。

関連する問題