OpenGL入门学习笔记(三)

多边形的绘制


(一)多边形的两面与其绘制方法

从三维的角度来看,一个多边形具有两个面。
每一个面都可以设置不同的绘制方式:

  1. 填充;
  2. 只绘制边缘轮廓线;
  3. 只绘制顶点;

其中“填充”是默认的方式。

可以为两个面分别设置不同的方式。
glPolygonMode的原型是:void glPolygonMode(GLenum face,GLenum mode); 用于控制多边形的显示方法。

face将确定显示模式将适用于物体的哪些部分,控制多边形的正面和背面的绘图模式:

参数 含义
GL_FRONT 显示模式将适用于物体的前向面(也就是物体能看到的面)
GL_BACK 显示模式将适用于物体的后向面(也就是物体上不能看到的面)
GL_FRONT_AND_BACK 显示模式将适用于物体的所有面

mode这个参数确定选中的物体的面以何种方式显示(显示模式):

参数 含义
GL_POINT 显示顶点,多边形用点显示
GL_LINE 显示线段,多边形用轮廓显示
GL_FILL 显示面,多边形采用填充形式
glPolygonMode(GL_FRONT, GL_FILL); // 设置正面为填充方式
glPolygonMode(GL_BACK, GL_LINE); // 设置反面为边缘绘制方式
glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); // 设置两面均为顶点绘制方式

(二)反转

正面

按照约定,如果多边形的顶点以逆时针顺序出现在屏幕上,它便称为“正面”。
但也有一些表面比较特殊。例如“麦比乌斯带”(请自己 Google 一下),可以全部使用“正面”或全部使用“背面”来表示。

glFrontFace

glFrontFace是opengl的初级命令,有两个基本作用,一是可以用来用在某些特殊场合(比如剔除面片),二是可以提高渲染效率。
函数原型:
void glFrontFace(GLenum mode);
作用是控制多边形的正面是如何决定的。在默认情况下,mode是GL_CCW。
mode的值为:

参数 含义
GL_CCW 表示窗口坐标上投影多边形的顶点顺序为逆时针方向的表面为正面。
GL_CW 表示顶点顺序为顺时针方向的表面为正面。

顶点的方向又称为环绕。

实例
void myDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPolygonMode(GL_FRONT, GL_FILL); // 设置正面为填充模式
    glPolygonMode(GL_BACK, GL_LINE); // 设置反面为线形模式
    glFrontFace(GL_CCW); // 设置逆时针方向为正面
    glBegin(GL_POLYGON); // 按逆时针绘制一个正方形,在左下方
    glVertex2f(-0.5f, -0.5f);
    glVertex2f(0.0f, -0.5f);
    glVertex2f(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值