OpenGL是一个编程接口,允许软件应用程序创建快速高效的三维场景。在OpenGL®中处理顶点时,可用于生成具有一定平滑度的球体的最少点数为12,创建一个具有20个三角形面(称为二十面体)的对象。如果不进行进一步处理,以这种方式构造的OpenGL®球体将在边缘周围具有可见的锐角,这可能是某些应用程序可以接受的。要获得更圆的球体,每个面都需要进一步细分细分二十面体以增加其包含的顶点数量并形成更平滑的OpenGL®球体需要在每个现有三角形的每个边的中心创建新顶点。这意味着每个三角形面现在将包含四个三角形。细分可以根据需要继续进行,尽管以指数方式添加点可以快速创建一个渲染时间较长且难以转换的对象。尽管OpenGL®sphere为程序员提供了一些数学上的便利,例如表面法线可以很容易地从顶点坐标计算出来,对球体进行纹理处理会带来一些复杂性。使用投射到球体上的标准二维(2D)纹理意味着纹理图像的顶部和底部区域将被压缩,因为三角形的形状靠近球体的极点球体本身是被压缩的。为了克服这个问题,可以使用立方体映射,或者程序员可以手动为对象生成纹理坐标。关于使用实用程序库生成OpenGL®需要注意的一个因素球体。由GLUT或类似工具包生成的球体有时很难在OpenGL®中修改、优化和管理。因此,有时使用自定义编写的代码来生成OpenGL®球体是有益的,这样就可以在程序中以最有效的方式创建并使用它。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!