Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从计算点渲染NURBS曲面网格?_C#_Opengl_Opentk_Surface_Nurbs - Fatal编程技术网

C# 如何从计算点渲染NURBS曲面网格?

C# 如何从计算点渲染NURBS曲面网格?,c#,opengl,opentk,surface,nurbs,C#,Opengl,Opentk,Surface,Nurbs,我正在使用OpenTK(OpenGL的c#包装器)绘制一个使用Cox-deBoor算法计算的NURBS曲面。该算法给出了曲面上的各个点。如何从这些点渲染整个曲面?此外,如何绘制这些点的线框 谢谢 首先需要生成曲面上各个点的栅格。如果曲面参数介于0和1之间,假设每0.05生成一个点。这样,您将拥有200x200=40000点的网格。(从你的帖子中我得知你已经做到了这一点) 然后,可以使用GL_四边形为栅格中的每组4个点绘制曲面。例如,您的第一个四边形将是: 表面。评估紫外线(0,0) 表面。评估

我正在使用OpenTK(OpenGL的c#包装器)绘制一个使用Cox-deBoor算法计算的NURBS曲面。该算法给出了曲面上的各个点。如何从这些点渲染整个曲面?此外,如何绘制这些点的线框


谢谢

首先需要生成曲面上各个点的栅格。如果曲面参数介于0和1之间,假设每0.05生成一个点。这样,您将拥有200x200=40000点的网格。(从你的帖子中我得知你已经做到了这一点)

然后,可以使用GL_四边形为栅格中的每组4个点绘制曲面。例如,您的第一个四边形将是:

  • 表面。评估紫外线(0,0)
  • 表面。评估紫外线(0.05,0)
  • 表面。评估紫外线(0.05,0.05)
  • 表面。评估紫外线(0,0.05)
您必须对网格中的每个“单元”执行相同的操作

最后,如果要将曲面视为线框,则有2个选项: 第一种选择。使用以下代码:

//此选项以线框模式渲染曲面
GL.PolygonMode(MaterialFace.FrontAndBack,PolygonMode.Line);
//此选项以着色模式渲染曲面
GL.PolygonMode(MaterialFace.FrontAndBack,PolygonMode.Fill)


第二种选择。使用GL_线而不是GL_四边形来绘制将形成线框模型的线。

那么,您尝试了什么?你的代码怎么不起作用?你对OpenGL有任何了解吗?