1

我在 OpenGL 3.2+ 程序中使用 Win32 创建了一个窗口,我正在试验一些东西。目前我正在使用reshape()下面的函数来调整窗口等。

我在视口中添加了一个边框,因此它在视口周围留下了一个 50px 的边框,这符合我的预期。

    void reshape(int width, int height, int pers_Dist)
    {
      screenWidth = width;
      screenHeight = height;
      float border = 50;

      glViewport(0+border,0+border,width-(border*2),height-(border*2));

      MatrixRoutines<float>::perspective(pers_Dist, (GLfloat)screenWidth/(GLfloat)screenHeight, 1, 200, ProjectionMatrix);
    }

背景颜色在init()函数内部使用: glClearColor(0.0,0.0,0.0,0.0);, 设置为黑色。

我的问题是,可以为边框分配与背景不同的颜色吗?(如果我改变颜色,背景和边框总是颜色集)。

4

1 回答 1

1

使用剪刀区域告诉 OpenGL 在哪里清除:

  1. glDisable( GL_SCISSOR_TEST )
  2. 用边框颜色清除
  3. 将剪刀设置为边界区域
  4. glEnable( GL_SCISSOR_TEST )
  5. 内色透明
  6. 渲染场景
于 2013-10-07T20:44:41.687 回答