【发布时间】:2014-03-31 06:47:49
【问题描述】:
我正在按照本指南http://open.gl/ 学习如何使用现代 opengl 进行编程。我被困在一件事上。早期使用较旧的 opengl Api,我曾经创建不同的函数来绘制不同类型的形状。像drawRect()、drawCircle()等。我需要做的就是在glBegin()和glEnd()中以不同的组合使用glVertex3f()。
但是在OpenGl3.2+中,即使是画一个矩形,我们也得写很多代码。我知道它可以让您更好地控制渲染,但是当您同时渲染多个东西(例如绘制矩形、圆形等)时,我对该怎么做感到困惑。我是否需要多次编写所有代码,包括着色器,或者我可以重复使用这些代码。
我已经实现了这段代码http://open.gl/content/code/c2_triangle_elements.txt 这个例子画了一个矩形,但是如果我想在这个矩形上画一个三角形,那我该怎么做呢。
【问题讨论】:
-
我认为您需要充分了解着色器和缓冲区如何以更深入的方式工作。使用顶点缓冲区绑定,您可以映射顶点并像那样更改它们,或者使用模型矩阵和着色器中的制服来移动形状并使用不同的模型矩阵绘制两次。