默认情况下,对象似乎是从前往后绘制的。我正在绘制一个2D UI对象,并希望从后往前创建它。例如,我可以先创建一个白色正方形,然后再创建一个稍小的黑色正方形放在其上方,从而创建一个带有白色边框的黑色面板。这篇文章对此进行了一些讨论,并将此顺序描述为“Painter's Algorithm”,但最终他们提供的示例只是反向渲染对象以获得所需的效果。我认为可以通过一些变换(gOrtho?)实现从后往前(首先将对象放在后面,随后的对象在其之上绘制)的渲染?
我还要提到,我不想使用类似于GLUT的封装库来解决这个问题。
我还发现,在Mac上使用Cocoa NSOpenGLView时,默认行为似乎是从后往前绘制的,而在Windows中我无法获得这种行为。我使用的Windows设置代码是:
我还要提到,我不想使用类似于GLUT的封装库来解决这个问题。
我还发现,在Mac上使用Cocoa NSOpenGLView时,默认行为似乎是从后往前绘制的,而在Windows中我无法获得这种行为。我使用的Windows设置代码是:
glViewport (0, 0, wd, ht);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho (0.0f, wd, ht, 0.0f, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();