考虑到标准的OpenGL 4.0 +函数和规范,我发现可以用两种方式创建几何体和形状:
1.利用VAO和VBO。 2.使用着色器程序。
哪一种是创建形状的标准方法?它们是否互相一致或者它们是创建几何体和形状的两种不同方式?
1.利用VAO和VBO。 2.使用着色器程序。
哪一种是创建形状的标准方法?它们是否互相一致或者它们是创建几何体和形状的两种不同方式?
VAOs和VBOs是关于如何绘制几何图形(指定每个顶点的数据)的,而着色器程序则是关于如何绘制它们的(哪个程序应用于每个提供的顶点、每个片段等)。
使用VAO和VBO将几何图形加载到GPU中。
我强烈(真的非常强烈)建议您阅读这篇文章:http://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/
我曾看到过创建几何形状的两种方法:
不是两者之一。在现代OpenGL-4中,你需要同时使用数据和程序。
VBOs和VAOs包含原始几何数据。着色器是程序(通常在GPU上执行),将原始数据转换为屏幕上的像素。
顶点着色器可用于位移顶点,或者从内置公式和顶点索引生成它们,后者在较新的OpenGL版本中作为内置属性可用。
顶点着色器和几何着色器之间的区别在于,顶点着色器是1:1映射,而几何着色器可以创建更多的顶点--可以用于自动细节级别生成,例如NURBS或基于perlin噪声的地形等。